汇编初学,调试小问题。高人指点!!!!!!!!!
assume cs:codesg
codesg segment
start:mov ax,0123h
mov bx,0456h
add ax,bx
add ax,ax
mov ax,4c00h
int 21h
codesg ends
end start
王爽书上的一段程序。编译链接都能通过,也能运行,可是在用debug跟踪调试时,出现 ntvdm cpu遇到无效指令,选择关闭终止应用程序
不知是什么问题,高人指点!!!!!!!!!!
[解决办法]
呵呵,这个情况我也遇到过。
在写一个子过程的时候push es,debug调试到这行就弹那个ntvdm无效指令,直接运行是可以的,估计是虚拟8086模式安排的这个环境有问题吧。因为在别的代码我也调用这个子过程,debug时 push es就没有出现错误对话框。
[解决办法]
楼主的这个代码, 不应该出现问题的, 除非是给出的代码不完整
[解决办法]
程序没事!
[解决办法]
嗯,程序本省没有问题
[解决办法]
~~
[解决办法]
用debug调试时仔细观察各个段寄存器和指针寄存器的值,把各个段的内存框架图写在纸上,实时跟踪堆栈,主要是push、pop、call、ret时。只是实时跟踪堆栈比较耗费时间,因为总有用d命令,其它的都很容易。如此以往,必能增加功力!