8086中的堆栈段和堆栈指针 [英] stack segment and stack pointer in 8086

查看:0
本文介绍了8086中的堆栈段和堆栈指针的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对堆栈段(Ss)和堆栈指针(Sp)寄存器有一点困惑。 当堆栈为空时,sp值是否等于ss值? 我读到,当我们把一个字(2字节)压入堆栈时,sp递减2,如果第一个语句为真(sp=ss),那么我可以说如果堆栈不为空,堆栈指针的值总是小于或等于堆栈段的值这是真的吗?? 如果我们将一个值影响到sp,使其大于ss,会发生什么??即: MOV SS,200小时 移动SP,400h MOV AX,1010h 推送AX

如有错误,请提前更正

推荐答案

否,ss是像csds这样的段寄存器。它们按照通常的实模式规则参与形成物理地址,如address = 16 * segment + offset,其中在堆栈的情况下偏移量来自sp。因此,推送到堆栈上的最后一项具有16 * ss + sp地址。除非您具有堆栈结尾的先验知识,而且sssp相比的数值根本没有意义,否则您不知道堆栈何时为空。

这篇关于8086中的堆栈段和堆栈指针的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆