堆栈

滴水逆向三期-堆栈

内存和寄存器都是用来存储数据的,假设我们想临时存个数据,我们用,然后用完就不要了,如果存储的东西有点多的话,那么寄存器肯定是装不下的,解决方案就是用内存取存储这些数据,能够去记录存储多少数据,然后还能快速找到某个数据,假设一共有50个数据,我现在想用第X个,怎么才能快速的找到?
如图:

在这里插入图片描述
假设寄存器有个BASE底部 TOP顶部,内存连续存储,地址大小看自己设计,如果往上存储值的话,可以把top里存的值移动,移动到当前地址的编号,以此类推,这样设计的好处:目的是可以存储多个数据,可以存X个,可以记录多少个数据,中间各自的数量,TOP和BASE地址一减就是多少个了,快速找到数据,因为地址编号都是连着的,比如说我们的地址编号越往上越小(在windows里,堆栈时候是向低位扩展的)他会从大的地址往小的地址去存,从最低往上减就好(不看图)假设BASE - X 那么X就是偏移通过BASE和偏移的方式去找到这个值,还可以用TOP+X去找到这个值,所以我们通过这个结构来存储的话,我们可以解决很多临时的数据,能清晰的知道存储了多少个,而且还可以快速的找到某一个的值(两种方式)如果这些数据不想要了,那我们直接将TOP的值去加上X,然后回到这里,然后上面的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值