王爽253页,由“求一word型数据的平方“引发的问题?
这是在emu8086编写的:
--------
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset sqr
mov ax,0
mov es,ax
mov di,200h
mov cx,offset sqrend-offset sqr
cld
rep movsb
;设置int 7ch入口地址
mov ax,0
mov es,ax
mov word ptr es:[7ch*4],200
mov word ptr es:[7ch*4+2],0
;测试ax=2*3456^2的结果
mov ax,0d80h
int 7ch
add ax,ax
;dx:ax存放结果,将结果乘以2
adc dx,dx
mov ax,4c00h
int 21h
;调用中断7ch的中断例程,计算ax中的数据平方
sqr: mul ax
iret
sqrend: nop
code ends
end start
---------
为什么spr子程序,运行到mul ax后,进入iret就陷入了长时间类似死循环状态?而不能迅速返回到下一步add ax,ax?
求解释? |