栈操作内存的方法是写入的时候把数据一个一个推进去,写一次推一个数据.而提取数据当然也是一个一个提取出来.注意:提取过的数据就会消失(实际上没有消失,可以再次提取,但....那还不如直接用正常方式操作内存呢..).不像普通内存操作可以反复读取.栈提供了一种"后进先出"的数据操作方法.把最后放进内存的数据最先拿出来.这种内存操作方法在某些方面会有巨大的用处.
使用栈来操作内存,先在内存中定义一个位置,作为"栈顶",这个定义的方法也没啥,直接把你要作为栈顶的内存地址写进SS:SP寄存器即可.这2个寄存器就是"栈顶指针寄存器组合" (一般系统会自动定义栈顶,无需自己操作,所以这步可以跳过,知道SS:SP寄存器的作用即可.)
我们用堆栈往内存里面推入数据之后,栈顶就会移动(自动的哟!).所以不用担心会把曾经推进堆栈的数据覆盖(当然,你可别因为这样就拼命往堆栈里边压数据...内存会爆掉的[=_=0])
CPU用堆栈操作内存的步骤:
数据入栈:
1:往内存的[SS:SP]写入数据
2:新的SP寄存器值=SP寄存器值-入栈数据的长度(单位:字节,一般是字形数据.也就是2个字节)
数据出栈:
1:SP寄存器值+出栈数据的长度(同上个括号)
2:在[SS:SP]读取数据
然后,用栈操作指令就能把数据推进栈里,或从栈里把数据弄出来....
上一篇:第13章 标志寄存器(X86汇编教程)
下一篇:第9章 内存操作(X86汇编教程)
推荐阅读最新更新时间:2024-03-16 14:02
设计资源 培训 开发板 精华推荐
- 精选PI InnoSwitch 产品系列文档,为您的设计添光溢彩! 下载有好礼!
- 改变你对万用表的看法!福禄克首款热成像万用表Fluke-279FC功能畅想大征集!
- 万用表,红外测温仪等你来拆!—— EEWorld拆你来玩拆解(第二期)
- MPS 隔离式稳压 DC/DC 模块——MIE系列首发,邀你一探究竟!
- 直播已结束【ADI 低噪声 Buck 稳压器如何减小电源噪声】
- 团结起来,问倒TI专家团!!!
- ST有奖直播:智能功率开关在工业自动化行业的应用
- 答题有礼|扫地机器人内部有多复杂?TI E2E 五步为你解密!
- 有奖直播 | 微软 Azure Sphere助力稳定,安全和灵活的物联网解决方案