【发布时间】:2017-11-11 09:30:21
【问题描述】:
我有下一个问题: 当我尝试将较小的数字除以较大的数字时,我得到的商非常高,我不明白为什么。这是我试图将 1 除以 5 的程序,结果是 256。(变量 'a' 和 'b' 必须是 db 类型) 有人能帮我吗?提前谢谢你
.model small
afisareanr macro nr
local m11
local m
xor ax, ax
mov ax, nr
push ax
mov si, 10
mov di, 5
mov dx, 0
cmp ax, 0
jge m
neg ax
m:div si
add dl, 30h
mov s[di],dl
xor dx,dx
dec di
cmp ax, 0
jne m
pop ax
cmp ax, 0
jge m11
mov s[di], '-'
m11:
mov ah, 9
lea dx, s
int 21h
endm
.stack
.data
a db 5
b db 1
s db 6 dup(" "), '$'
.code
mov ax, @data
mov ds, ax
xor ax, ax
xor bx, bx
mov al, b
idiv a
mov bx, ax
afisareanr bx
mov ax, 4c00h
int 21h
end
【问题讨论】: