CPU提供的栈机制

CPU提供的栈机制


现今的CPU中都有栈的设计,8086CPU也不例外,8086CPU提供入栈和出栈指令,最基本的两个是PUSH(入栈)和POP(出栈),比如,push ax表示将寄存器ax中的数据送入栈中,pop ax表示从栈顶取出数据送入ax,8086CPU的r入栈和出栈操作都是以字为单位进行的。
我们可以将10000H—10000FH这段内存当作栈来使用
在这里插入图片描述

注意,字型数据用两个单元存放,高地址单元存放高8位,低地址单元存放低8位,看到所描述的push和pop指令,是否有一些疑惑,总结下来,大概是这两个问题。

  • 其一,我们将10000H—1000FH这段内存当作栈来使用,CPU执行push和pop指令时,将对这段空间按照栈的后进先出的规则进行访问,但是,一个重要问题是,CPU如何知道10000H—1000FH这段空间被当作栈来使用?
  • push ax等入栈指令执行时,要将寄存器中的内容放入当前栈顶单元的上方,成为新的栈顶元素,pop ax等指令执行时,要从栈顶单元中取出数据,送入寄存器中,显然,push,pop在执行的时候,必须知道哪个单元是栈顶单元,可是,如何知道?

解决方法:

  • 8086CPU中,有两个寄存器,段寄存器SS和寄存器SP,栈顶的段地址存放
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值