有如下程序(王爽《汇编语言》第88页)
===============================
assume cs:codesg
codesg segment
mov ax,2000h
mov ss,ax
mov sp,0
mov sp,4
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00h
int 21h
codesg ends
end
=================
请问为什么在调试时会在执行第一条pop ax指令时出错?而导致程序退出?
在下才疏学浅,然愿闻其详,还望不吝赐教!!
------解决方案--------------------------------------------------------
老候还是很受欢迎啊
------解决方案--------------------------------------------------------
你用什么调试的啊?
在DEBUG下直接输入:
-a 100
mov ax,2000h
mov ss,ax
mov sp,0
add sp,4
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00h
int 21h
进行调试,试试!应该不会出错^_^!我试过好几次都正确无误!
------解决方案--------------------------------------------------------
是先编译成exe,
我也遇到上面的问题,昨晚看见这帖子又试了一下还是跟以前一样,
出现:NTVDM cpu遇到无效指令.
CS:0000 IP:0077 OP:F0 37 05 10 02
期待答案。。。
------解决方案--------------------------------------------------------
建议在DOS下的debug下调试,不要在2000、xp下的cmd\debug下调试,因为这个环境就不太真实,再说指令没错,是环境的错误,何必在意呢?