数据结构中的栈与汇编语言中的栈的区别
2016-12-29 11:46
162 查看
在《数据结构》中,我们知道有关于栈的概念都是逻辑上的,而在《汇编语言》一门课中,关于栈的操作就是对内存的操作。以下的都是我在学习了王爽的《汇编语言》第三版以及清华大学出版社的《数据结构》第四版的有关栈的总结,如有错误,还请各位不吝赐教。
在《数据结构》中,关于进栈的操作是:
首先,top++; //为下一个元素腾出空间
然后,下一个元素进栈
出栈的话:
首先,元素出栈
然后,top--;
总之就是,进栈是先自增,再赋值,出栈是先赋值,再自减。
在《汇编语言》中,对栈的操作相当于对内存的操作,下面的是进栈图:
若刚开始sp指向1000:[12]的内存,然后,sp = sp-2,sp指向往上两个内存处;元素进入内存1000:[10]的位置;
出栈时,元素出栈,sp=sp+2,指向往下两个内存处。
总结,进栈sp先减2,再元素进栈,出栈元素先出栈,sp再加2.
在《数据结构》中,关于进栈的操作是:
首先,top++; //为下一个元素腾出空间
然后,下一个元素进栈
出栈的话:
首先,元素出栈
然后,top--;
总之就是,进栈是先自增,再赋值,出栈是先赋值,再自减。
在《汇编语言》中,对栈的操作相当于对内存的操作,下面的是进栈图:
若刚开始sp指向1000:[12]的内存,然后,sp = sp-2,sp指向往上两个内存处;元素进入内存1000:[10]的位置;
出栈时,元素出栈,sp=sp+2,指向往下两个内存处。
总结,进栈sp先减2,再元素进栈,出栈元素先出栈,sp再加2.
相关文章推荐
- 算术移位与逻辑移位有什么区别? 其他开发语言 / 汇编语言 - CSDN社区 community.csdn.net
- JAVA和数据结构和汇编语言和C++学不会怎么办
- AT&T汇编语言与GCC内嵌汇编,Linux内核数据结构之链表
- 编译原理与汇编语言的概念区别
- 经验积累之C语言与汇编语言的区别
- AT&T与INTEL的汇编语言语法的区别
- c语言和汇编语言的区别
- 汇编语言 JMP CALL RET RETF的使用与区别
- 在汇编语言里面,回车和换行的区别
- 汇编语言中 cs, ds,ss 的区别
- AT&T与INTEL的汇编语言语法的区别
- 汇编语言数据结构
- 汇编语言数据结构
- GUN ARM汇编中标号的引用在汇编和C语言中区别
- 汇编语言中溢出和进位的区别
- 微代码和汇编语言的区别
- GUN ARM汇编中标号的引用在汇编和C语言中区别
- 微代码和汇编语言的区别
- GUN ARM汇编中标号的引用在汇编和C语言中区别
- C学习笔记(一) C语言和汇编语言的区别