在《数据结构》中,我们知道有关于栈的概念都是逻辑上的,而在《汇编语言》一门课中,关于栈的操作就是对内存的操作。以下的都是我在学习了王爽的《汇编语言》第三版以及清华大学出版社的《数据结构》第四版的有关栈的总结,如有错误,还请各位不吝赐教。
在《数据结构》中,关于进栈的操作是:
首先,top++; //为下一个元素腾出空间
然后,下一个元素进栈
出栈的话:
首先,元素出栈
然后,top--;
总之就是,进栈是先自增,再赋值,出栈是先赋值,再自减。
在《汇编语言》中,对栈的操作相当于对内存的操作,下面的是进栈图:
若刚开始sp指向1000:[12]的内存,然后,sp = sp-2,sp指向往上两个内存处;元素进入内存1000:[10]的位置;
出栈时,元素出栈,sp=sp+2,指向往下两个内存处。
总结,进栈sp先减2,再元素进栈,出栈元素先出栈,sp再加2.
本文探讨了数据结构中逻辑上的栈概念与汇编语言中实际内存操作的栈之间的区别。在数据结构中,进栈是top先自增再赋值,出栈则是先赋值后自减。而在汇编语言中,进栈是sp先减2再存入元素,出栈时元素出栈后sp加2。内容基于《汇编语言》和《数据结构》的教材学习总结。
1353

被折叠的 条评论
为什么被折叠?



