欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

新手求教有关问题

更新时间: 2014-01-05 03:17:56 责任编辑: Author_N1

 

新手求教问题

求教 1.为啥执行到pop bx之后没有执行push ax?
     2.为啥sp 的值最后为0002,不应该是0006吗?
     3.为啥内存单元的值会发生变化,也就是最后ax的值是20cd???
自学的,没老师指教,只能请教各位大神了
--参考方法--
堆栈太小,就容易有这样那样的异常。换本教程吧,这样的题目太 2 了。
--参考方法--

lz同志,首先“恭喜”你,你应该是学的在dos下的汇编语言编程,若是如此的话,请抛弃它。

1.为啥执行到pop bx之后没有执行push ax?
 运行pop ax后就发生了异常,而不是pop bx,此时int 3表明dos7以前的运行环境的程序在window后期的dos环境运行,这个问题主要就是给ss=2000这条语句导致的后果。乱改ss:sp导致非法访问页表指向的内存,这个问题也会导致下面2个问题的发生。

2.为啥sp 的值最后为0002,不应该是0006吗?
 估计是这段内存的page属性引起的,因为你把一段其它内存用于局部stack了

3.为啥内存单元的值会发生变化,也就是最后ax的值是20cd???
 最终原因同问题1的回答

以上需要MS才能给出真正的答案 :)
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:17:56
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20565/
本文WWW.DOC100.NET DOC100.NET版权所有。