|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本人初学者,子程序3 dtoc有个问题想不通,想请教下各位前辈,问题是这样的:
里面有一个汇编指令mov dx,0 我放在错误位置下,编译链接都能通过,单步调试也没出错,就是运行时老提示除法溢出,我参考了正确答案后,发现把其放在正确位置就能正常运行了,这是为什么?请看我下面的汇编代码,正确和错误位置已注释
assume cs:code,ds:data,ss:stack
data segment
db 10 dup(0)
data ends
stack segment
dw 16 dup(0)
stack ends
code segment
start:mov ax,12666
mov bx,data
mov ds,bx
mov bx,stack
mov ss,bx
mov sp,32
mov si,0
mov di,0
mov bx,0ah
call dtoc
mov ax,4c00h
int 21h
dtoc:push ax
push bx
push cx
push dx
push si
push di
s1: ;mov dx,0 正确放置的位置
div bx
mov cx,ax
jcxz ok1
add dx,30h
push dx
inc di
mov dx,0 ;mov dx,0如果放在这里会除法溢出,请问是为什么?
jmp short s1
ok1:add dx,30h
push dx
inc di
mov cx,di
s:pop ax
mov ds:[si],al
inc si
loop s
pop di
pop si
pop dx
pop cx
pop bx
pop ax
ret
code ends
end start
|
|