Записать математическое выражение на ассемблере

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Moreman32
Сообщения: 1
Зарегистрирован: 13 май 2015, 23:04

13 май 2015, 23:06

Уже десяток раз перепробовал - никак не могу понять... Может кто помочь мне?
c-5b+7a
---------
a

Я записал


mov ax,a
mov dx,7
mul dx
mov cx,c
add dx,cx
mov bx,b
mov cx,5
mul cx
sub ax,cx
div ax
mov @result,ax

Может кто подскажет, как исправить..? Уже час ломаю голову, впервые пробую писать на этом языке
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

15 май 2015, 08:20

Нельзя хранить результат суммы в AX или DX, т.к. они меняются при умножении и делении 16-разрядных и более, чисел.
Код написан с учетом того, что A,B,C - 2х байтовые беззнаковые целые
mov ax, 7
mul A
mov bx, ax
mov cx, dx
add bx, C
adc cx, 0
mov ax, 5
mul B
sub bx, ax
sbb cx, 0
mov dx, cx
mov ax, bx
div A
mov @result, ax
It's a long way to the top if you wanna rock'n'roll
Ответить