当前位置: 代码迷 >> 汇编语言 >> 侯佩兄请赐教!该怎么解决
  详细解决方案

侯佩兄请赐教!该怎么解决

热度:2729   发布时间:2013-02-26 00:00:00.0
侯佩兄请赐教!!!
有如下程序(王爽《汇编语言》第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下调试,因为这个环境就不太真实,再说指令没错,是环境的错误,何必在意呢?
  相关解决方案