鱼C论坛

 找回密码
 立即注册
查看: 2941|回复: 7

关于栈的问题

[复制链接]
发表于 2011-7-17 10:19:05 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 说了你未必会懂 于 2011-7-18 12:12 编辑

  小甲鱼说栈里的数据取出后还存在,我就实验了下,我先将栈里的一个数据取出后放入ax中,我再用mov语句修改了sp回到存放那个数据的低位,然后在一次取出放入bx中,但bx中显示的却不是ax里的数据,怎么回事?

还有sp也应该算是偏移地址为什么不用jmp命令来修改,而用Mov命令?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-17 11:26:28 | 显示全部楼层
jmp是跳过去,可不是修改他的SP
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-17 12:02:46 | 显示全部楼层
JMP是修改IP的值的  不是修改SP的  记住一个原则后进先出的顺序  如果说先push ax     push bx  push cx
出的顺序是pop cx   popbx   popax   可能是你pop的时候反了 还是pop ax  pop bx   pop  cx所得到的结果肯定不一样了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-17 13:00:22 | 显示全部楼层

不是,我没有往栈里push数据,是原来的数据,我的意思是想证明栈里的某一个数据被取出后依然存在在那个栈中(小甲鱼视频里有说,当用pop取出数据后,那个数据依然存在在那个栈中)所以我自己试了下,比如我取了ss=1000,sp=fffc的一个数据放入ax中,当取完后sp自动加2也就是fffe,然后我用mov sp,fffc把指针回到我取那个数据的地方,再一次取那个值(因为按理论那个放入ax中的值还存在在栈中)放入bx中,我猜想的结果应该是bx=ax,但实际上里面的值不相等,不晓得为什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-17 15:12:11 | 显示全部楼层
小甲鱼说的数据还在,是数据还在内存当中,但是你是没法看见的。(是物理上的存在,但是他允许你去覆盖它,所以就显示为不存在)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-7-17 21:21:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-17 23:15:04 | 显示全部楼层
lichaonetuser 发表于 2011-7-17 21:21
不用那么纠结。你用D参数查看那个内存段(栈段)就可以了。你看看里面的数据就好了。

额,也对哦,我干嘛那么纠结呢……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-7-17 23:37:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-29 22:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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