鱼C论坛

 找回密码
 立即注册
查看: 1896|回复: 0

[技术交流] 【探究】当SS和SP的值都为0时入栈然后弹出 为什么值没有变化--请看我的分析!

[复制链接]
发表于 2014-1-19 20:56:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
首先打开你的Debug。
让我们用神奇的A命令敲入一下代码
mov ax,0
mov ss,ax
mov sp,0
mov ax,2014
push ax
xor ax,ax ;清空AX 不习惯的话 你可以用 mov ax,0 或者是 sub AX,AX子类的!
;现在你可以用d 0:0 10  命令查看一下, 没有一点关于2014的值
pop ax ;好了,执行玩这一步,你看看AX的值,是不是又回来了?
压栈的数据到那里去了?被吞了?那为什么可以还原?
首先:
压栈的数据在内存的最顶端。
大家不妨用 D fff:0 10 来查看,找到了2014数据吗?呵呵,这里有很多压栈数据,比如:中断保存的CS和IP,标志寄存器之类的!
119-2.png
具体原理不妨去看看这个帖子(2楼回复的内容):
问一个关于单步中断压栈的问题
http://bbs.fishc.com/thread-42984-1-1.html


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 11:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表