在8086中定义一个堆栈段其空间最大为多大?

在8086中定义一个堆栈段其空间最大为多大?在8086cpu系统中若定义一个堆栈段其空间最大为多大?已知8086cpu中SS值为100F,SP值为1A1,此时堆栈指针指向... 在8086中定义一个堆栈段其空间最大为多大?在8086cpu系统中若定义一个堆栈段其空间最大为多大?已知8086cpu中SS值为100F,SP值为1A1,此时堆栈指针指向的绝对地址是多少? 展开
 我来答
zjr123741
2019-09-04
知道答主
回答量:10
采纳率:0%
帮助的人:4959
展开全部

由于SP的变化范围为0000H~FFFFH,(H表示16进制

其中需要注意的一点是,当栈满的时候,SP=0000H  (由于8086压栈是由高地址端(FFFFH)到低地址端(0000H),SP不断减小),继续压栈,SP溢出(不会影响SS),将会让SP从FFFFH端向0000H端环绕,能够覆盖之前的值,也就是绝对地址最大范围也就和SP的最大范围相同

SP可以指向的每个单元大小对应1Byte(这个单元大小和SP变化范围无关),由SP的变化范围可知SP可表示为16位二进制数,最大容量应该为

2^16 Byte=64KB

或者根据共有FFFFH+1个单元,

(FFFFH-0000H+1)*1 Bit=10000H(Byte)
                       =2^16 (Byte)
                       =64KB

绝对地址计算方法(其实和CS:IP的计算方法相同):

StackAddress=StackSegment*16+StackPointer;

其中*16可以表示为二进制数向左移动四位,对应16进制左移一位(加0)就可以了

StackAddress=100F0+01A1
            =10291(十六进制
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式