数据结构中的栈与汇编语言中的栈的区别

本文探讨了数据结构中逻辑上的栈概念与汇编语言中实际内存操作的栈之间的区别。在数据结构中,进栈是top先自增再赋值,出栈则是先赋值后自减。而在汇编语言中,进栈是sp先减2再存入元素,出栈时元素出栈后sp加2。内容基于《汇编语言》和《数据结构》的教材学习总结。

在《数据结构》中,我们知道有关于栈的概念都是逻辑上的,而在《汇编语言》一门课中,关于栈的操作就是对内存的操作。以下的都是我在学习了王爽的《汇编语言》第三版以及清华大学出版社的《数据结构》第四版的有关栈的总结,如有错误,还请各位不吝赐教。

在《数据结构》中,关于进栈的操作是:

首先,top++;   //为下一个元素腾出空间

然后,下一个元素进栈


出栈的话:

首先,元素出栈

然后,top--;

总之就是,进栈是先自增,再赋值,出栈是先赋值,再自减。


在《汇编语言》中,对栈的操作相当于对内存的操作,下面的是进栈图:


若刚开始sp指向1000:[12]的内存,然后,sp = sp-2,sp指向往上两个内存处;元素进入内存1000:[10]的位置;

出栈时,元素出栈,sp=sp+2,指向往下两个内存处。

总结,进栈sp先减2,再元素进栈,出栈元素先出栈,sp再加2.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值