![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 15
|
![]()
здравствуйте!
задача: написать код ассемблера, который вычисляет значение выражения, к примеру c+((a*7)/(k-8)) вот я написала такой код: ;formula.asm .model tiny .data a dw 1 c dw 3 k dw 9 y dw 0 .code org 100h ;начало СОМ-файла start: ;умножение mov ax,7 imul a push ax mov y,ax ;вычитание sub k,8 push k mov dx,k mov y,dx ;деление pop bx pop ax xor dx,dx idiv bx push dx mov y,dx ;сложение pop dx add c,dx mov bx,c --- вот тут mov y,bx mov ah,4ch; int 21h; ret end start получается, что при просмотре регистров в программе td.exe я доложна видеть --- вот тут значение 10, лежащее в регистре bx. я же вижу FFF8, что явано побольше, чем 10. помогите, пожалуйста. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 13.09.2009
Сообщений: 75
|
![]()
mov ax,6
mov bx,7 mul bx ;ax=42 a*7 mov bx,10 sub bx,8 ;bx=2 k-8 div bx ;ax=21 add ax,11 ;ax=32 c+(()/()) |
![]() |
![]() |
![]() |
#3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
То ты либо не туда смотришь либо...
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 13.09.2009
Сообщений: 75
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 02.10.2009
Сообщений: 15
|
![]() Цитата:
спасибо большое, но мне нужно использовать переменные. по заданию. и цифры, и буквы. http://freespace.by/download/6cfc7a75e4 : не скачивается, т.к. я в России, а этот ресурс, как написано, только для Белоруссии. у меня при компиляции tasm никаких трешек нет. |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 15
|
![]()
Пожалуйста, помогите...
|
![]() |
![]() |
![]() |
#7 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
![]() Код:
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4 Последний раз редактировалось Goodwin98; 04.05.2010 в 18:31. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 15
|
![]()
я поменяла в делении регистр делимого на ах.
удалила все действия, содержащие у, т.к. он мне не нужен просто. код выглядит так: ;c+((a*7)/(k-8)) .model tiny .data a dw 1 c dw 3 k dw 9 y dw 0 .code org 100h ;начало СОМ-файла start: ;умножение mov ax,7 imul a push ax ;вычитание sub k,8 push k mov dx,k ;деление pop bx pop ax xor dx,dx idiv ax push ax ;сложение pop dx add c,dx mov bx,c mov ah,4ch; int 21h; ret end start При открытии моей программы в td.exe выдается сообщение: "program has no symbol table". что бы это могло значить? затем я иду по коду. после операций ;умножение mov ax,7 imul a значение регистра ах не изменяется, хотя в учебнике написано, что именно в этом регистре хранится результат умножения. (IMUL источник: источник (регистр или переменная) умножается на AL, АХ или ЕАХ (в зависимости от размера операнда), и результат располагается в АХ, DX:AX или EDX:EAX соответственно. ) - или я не правильно поняла? после прохождения строки idiv ax мне выдается сообщение: "terminated. exit code 256" помогите, помогите...пожалуйста!!! |
![]() |
![]() |
![]() |
#9 | ||||
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
![]() Цитата:
![]() Цитата:
ax=7 a*ax == 1*7 = 7 Цитата:
Цитата:
|
||||
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 15
|
![]()
это понятно, вот только при пошаговом проходе этот результат - 7 - должен отражаться в регистре ах. у меня же этот результат умножения 7 ни в каком из регистров не отобразился.
идем дальше. после выполнения действий Код:
может, мои числа, записанные в десятичной форме, воспринимаются не как десятичные? откуда может взяться dx FFF8 в результате вычитания из к=9 восьмерки? |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дано n. Вычислить формулу | ArcaN0id | Помощь студентам | 2 | 02.12.2009 13:43 |
Не могу вычислить формулу для расчёта координат камеры | anyx | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 6 | 16.09.2009 16:44 |
Вычислить х в системе (assembler) | JaZZ_XVIII | Помощь студентам | 1 | 10.06.2009 08:08 |
как вычислить формулу? | Sergeus | Microsoft Office Excel | 2 | 26.02.2008 23:56 |