来自王道+自己的笔记
堆栈寻址
堆栈——是存储器中一块特定的按 “后进先出LIFO” 原则管理的存储区,该存储区被读/写单元的地址用特定的寄存器给出,即堆栈指针(SP——Stack Pointer)
用寄存器实现堆栈——硬堆栈
硬堆栈只有取指时访存一次
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QTk6RU7N-1657508043393)(D:\EchoFile\考研\408\408.assets\image-20220710202219263.png)]](https://i-blog.csdnimg.cn/blog_migrate/a4e49be2aadc2dd754f2a62d2a72d624.png)
POP出栈,PUSH压栈
假设小地址是栈顶(SP始终指向栈顶元素),入栈时,SP先-1(上移指向空),数据再进来;出栈时数据先出去,SP再移到有数据的地方,也就是+1(因为它之前所指数已经移走了,要移到栈顶不为空的元素)
用主存实现——软堆栈
成本低
软堆栈除了取指要访存一次,执行也要访存,因为这个堆栈在主存中