回 帖 发 新 帖 刷新版面

主题:一道课后题遇到错误提示,请大侠们帮帮忙呀?

王爽的汇编语言 88页实验3
用debug跟踪程序的执行过程
assume cs;codesg
codesg segment
    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
codesg ends
end

在add sp,4 后执行到pop ax时 提示 NTVDM CPU遇到无效指令。关闭
我往后看书说是因为该内存处有系统数据,可运行整个程序却没问题,用debug跟踪程序就有这种现象,还是我的机器有毛病。各位能否解答,不胜感激。

回复列表 (共2个回复)

沙发

因为你事先没有定义堆栈,在push或者pop的时候可能会改变系统数据吧??
这是我的理解.....
在纯DOS下内存单元好像是可以随便访问的,你应该是在W平台下进行的吧??

板凳

我也觉得堆栈这样乱放不行.

我来回复

您尚未登录,请登录后再回复。点此登录或注册