猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
关于汇编指令,PUSH(入栈指令) 这是什么意思?
汇编指令。PUSH(入栈指令) 这是神马意思? 什么是入栈 简单的解释一下
慕村9548890
浏览 875
回答 2
2回答
倚天杖
不同MCU的堆栈在使用细节上有所区别,不过意思都差不多,暂时以X86为例。X86堆栈就是一段程序初始化时指定的内存空间,用来暂存需要保存的数据。这个空间访问时要涉及两个指针寄存器。一个是基点(SS),其值不变,永远指向堆栈段的最小地址;另一个寄存器(SP)的值为堆栈空间的剩余大小,两者相加就是当前生效的堆栈地址。SP在遇到PUSH时减少,在遇到POP时增加,其指向的地址在堆栈区域内不断变化;当SP的值为0时就表示堆栈用光了。入栈(PUSH)就是将一个数据存入SP指向的当前堆栈地址,然后SP指向堆栈内的下一个存储空间;出栈(POP)就是让SP返回前一个存储空间,然后读出这个地址内存储的数据。堆栈的优势就是暂存数据时不用管到底存在哪了,只要按照后进先出的原则就可以保证恢复数据;缺点就是不能通过堆栈操作跳着访问栈内数据。
0
0
0
叮当猫咪
入栈(PUSH)就是将一个数据存入当前ss:sp指向的地址,然后SP-2;出栈(POP)就是让SP+2,然后读出这个地址内存储的数据。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
数据结构
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续