. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->第一个程序
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  第四章  实验3   运行中出错 请指点  [待解决] 回复[ 10次 ]   点击[ 1013次 ]  
qvbear
[帖 主]   [ 发表时间:2009-04-22 01:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-07-31 18:57
源代码:
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


用redasm顺利编译成  1.exe

在逐步调试的时候

运行到  pop ax   的时候
提示:
NTVDM CPU 遇到无效的指令

请问是什么原因?
qvbear
[第1楼]   [ 回复时间:2009-04-22 01:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-07-31 18:57
是第一个  pop ax的时候
mess
[第2楼]   [ 回复时间:2009-04-22 11:20 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
add sp,4 
-----------
把这个改成add sp,10.

这个涉及到操作系统的保护模式和后面的知识中断。在实dos下调试没有问题。
大概的意思是t命令也叫单步中断,执行中断时系统会保存一下数据,即执行几个push,此时如果sp过小,如sp=0,执行push后sp值发生环绕,即sp=fffeh,此时保护模式出来说你这非法了,所以提示你出错而中断了你debug调试。
2009102027
[第3楼]   [ 回复时间:2011-04-20 22:07 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-04-19 20:33
太感谢了,我也遇到这类问题了
a2163923
[第4楼]   [ 回复时间:2011-06-14 21:37 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-23 09:27
我也遇到这个问题呢· 呵呵  我去调试一下 ·
a2163923
[第5楼]   [ 回复时间:2011-06-14 21:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-23 09:27
哈哈 成功了  果然没有出现错了呵呵!!感谢  MESS
lhrlhr789
[第6楼]   [ 回复时间:2013-04-07 15:16 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-02 17:43
回复:[第2楼]
------------------
非常感謝!
在第三章末尾的試驗任務中有涉及到相關知識,看到你的解釋明白了。
wzl
[第7楼]   [ 回复时间:2013-05-02 22:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-08-29 16:45
非常感谢!
mess,你功底太厚了,让我羡慕。
tzzsj
[第8楼]   [ 回复时间:2013-06-12 08:57 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-06-12 08:49
原来是这样!
zz63948992
[第9楼]   [ 回复时间:2013-09-01 01:10 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-08-01 17:00
此回复强烈要求申精~
zjkl19
[第10楼]   [ 回复时间:2013-12-09 15:41 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:6
注册日期:2009-07-15 11:17
回复:[第2楼]
------------------
简洁易懂的解释,明白了,多谢。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved