Ожидается, что вывод ниже кода сборки будет 6, но он будет равен 3. Что случилось?, где остаток переходит в операцию div (X86 tasm ассемблер)
data_seg segment
msg1 db "hi",10,13,"$"
msg3 db 26
num db 10
data_seg ends
code_seg segment
assume cs:code_seg, ds:data_seg
start:
mov ax,data_seg ;init
mov ds,ax
loop1:
mov ah,0
mov al,msg3
div num
mov ah,02
int 21h
term:
mov ah,4ch ;termination code
mov al,0
int 21h
code_seg ends
end start
Вздохнуть ... посмотреть, что 'div' делит на что. В вашем случае оставшаяся часть находится в 'ah' ... поэтому вы быстро сбиваете ее. 'mov dl, ah' может исправить вас. –
О да ... если вы ожидаете увидеть число, 'add dl, '0'' ... –
Остальное будет ах, а не dl. Только что проверил – manoj