从出错处的cs:ip看,程序跳到了0000:0077这个地址处,一般来说程序自己正常的跳转不会跑到0段去;而且这个位置按说是实模式下BIOS的中断向量表INT 1D服务程序地址的第4个字节,无论是用户程序还是系统程序,跑到这里来执行代码根本就不合理,所以才有上述的怀疑。
顺便说明一下,NTVDM是winnt系列的 *** 作系统用来运行msdos下的应用程序所使用的虚拟机,例如提供对dos的功能调用,象int 21h等api的支持。
这是个远调用子程序,你把调用者偏移地址搞错了。push ds 正确
mov ax,ax ;这个错了。改成:XOR AX,AX或MOV AX,0就正确了。
push ax
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)