汇编程序设计-27-栈的设置
最新推荐文章于 2022-08-03 22:52:01 发布
原创
最新推荐文章于 2022-08-03 22:52:01 发布
·
865 阅读
·
0
·
3
·
CC 4.0 BY-SA版权
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
文章标签:
#c语言
#链表
#开发语言
汇编程序设计
专栏收录该内容
36 篇文章
订阅专栏
本文通过示例解释了如何在CPU中使用SS和SP寄存器来表示栈顶指针,并展示了如何通过修改这些寄存器来调整栈的大小。具体演示了执行popax指令后栈的变化过程。
上图是一个栈在内存中的示意图,在cpu中栈顶指针是通过SS寄存器和SP寄存器的组合来表示栈顶指针所指地址的。
在内存中,修改2000:0000的值,既然是通过SS、SP寄存器来设置栈顶指针的,那我们可以改变栈顶的指向,从而决定栈的大小。因为栈是向下生长的,如果要全部表示刚才输入的数字。
那栈顶指针应该为起点2000:0000
接下来修改寄存器。
执行pop ax后,从运行结果可以看出sp从0000变为了0002,移动了两个内存单元。因为ax为16位。此时ax也变为0201H,满足预期结果。
修改栈底指针。