. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->汇编语言学习交流区
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  书本程序6.4的疑问  [已解决] 回复[ 2次 ]   点击[ 385次 ]  
hzk123
[帖 主]   [ 发表时间:2010-03-27 12:16 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-03-26 18:29
在我的机子进行debug时: 
1.当栈空间至少定义11个字单元时,都可以跟踪运行,且能得到正确的结果; 
2.当栈空间定义10个字单元时,出现了两种情况: 
   1)跳出“NTVDM CPU遇到无效的指令” 
   2)在指令“loop s;mov bx,0”运行之后出现“int 3” 
 但如果用"G CS:IP"命令直接运行到“int 21”指令所在的地址时,却能得到正常的结果。 
3.当栈空间定义9个字单元时,运行到“loop s;mov bx,0”出现了“program terminated normally”;但是能得到正常的结果 

在我同学的机子进行debug时: 
当栈空间定义10个字单元时,运行到“pop [bx];add bx,2”时出现了“program terminated normally”;但是能得到正常的结果 

而在我的机子上,定义8个字单元时,运行到“pop [bx];add bx,2”时也出现了“program terminated normally”;但是能得到正常的结果 


恳请高手解析下出现这些问题的原因,谢谢!!!
hzk123
[第1楼]   [ 回复时间:2010-03-29 18:43 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-03-26 18:29
注册日期:2010-03-26 18:29 在我的机子进行debug时:  
1.当栈空间至少定义11个字单元时,都可以跟踪运行,且能得到正确的结果;  
2.当栈空间定义10个字单元时,出现了两种情况:  
   1)跳出“NTVDM CPU遇到无效的指令”  
   2)在指令“loop s;mov bx,0”运行之后出现“int 3”  
 但如果用"G CS:IP"命令直接运行到“int 21”指令所在的地址时,却能得到正常的结果。  
3.当栈空间定义9个字单元时,运行到“loop s;mov bx,0”出现了“program terminated normally”;但是能得到正常的结果  

在我同学的机子进行debug时:  
当栈空间定义10个字单元时,运行到“pop [bx];add bx,2”时出现了“program terminated normally”;但是能得到正常的结果  

而在我的机子上,定义8个字单元时,运行到“pop [bx];add bx,2”时也出现了“program terminated normally”;但是能得到正常的结果  


恳请高手解析下出现这些问题的原因,谢谢!!! 
 
 ---------------------------------------------------------

请高手帮忙解答下
hzk123
[第2楼]   [ 回复时间:2010-04-01 18:04 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-03-26 18:29
此贴由 贴主 于 [ 2010-04-01 18:04 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved