汇编网首页登录博客注册
mayjian的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
最新留言
好友圈
文章收藏
友情链接

[2011-04-14 21:33] 实验四pop ax 出错的原因

在虚拟dos下,debug到pop ax 会出错,出错的原因在于现场信息的没被完全保存。t命令会产生中断,所以就需要把现场信息(标志寄存器 cs ip)依次压栈到栈段;
      当执行add sp,4后,可以用-d cs:0 5查得:
2000:0000 A7 15 89 0F 20 20 
    非常恰好的是cs=15A7 ,所以标志寄存器中内容为0F89,ip是最后压栈的,但是ip的值在栈段中是不存在的。
       把add sp,4换成add sp,m(m>=6),就不会出错。用-d查得:
 2000:0000 08 00 A7 15 89 0F 
   同样用-r...
阅读全文 | 评论次数(0) | 浏览次数(316) | 所属类型(默认类型)