Помогите записать выражение на ассемблере
У меня проблемы с делением двойного слова. Ответ вообще не такой получается...
.model small
.stack 100h
.data
rez1 dw 0
rez2 dw 0
rez3 dw 0
result dw 0
.code
start:
mov ax, @data
mov ds, ax
xor ax, ax
mov bx, 123
sub bx, 4
mov ax, bx
mov bl, 5
div bl
mov rez1, ax
xor ax, ax
xor bx, bx
mov bx, 6
sub bx, 3
mov ax, bx
mov bl, 4
div bl
add rez1, ax ; ax ВЕСЬ ЧИСЛИТЕЛЬ
xor ax, ax
xor bx, bx
mov al, 4
mov bl, 3
mul bl ;теперь ax=12
mov bx, 36
add bx, ax
mov rez3, bx ;знаменатель ВЕСЬ 48
xor bx, bx
mov ax, rez1
div rez3 ;
sub al, 34
int 21h
end start
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Раз у вас знаменатель вмещается в байт, то делите ax на байтовый регистр или однобайтовый адрес
div bl
а если он слово (rez1 dw), то для деления используется пара dx:ax, и dx нужно перед делением обнулить
mov ax, rez1
xor dx, dx
div rez3
