我对堆栈段(ss)和堆栈指针(sp)寄存器有点困惑。
当堆栈为空时,sp值等于ss值吗?
我读到,当我们将一个字(2字节)推入堆栈时,sp会减2,如果第一个语句为真(sp=ss),那么我可以说,如果堆栈不为空,堆栈指针的值总是较小或等于堆栈段的值是这样的吗??
如果我们影响 sp 的值使其大于 ss 会发生什么? IE:
移动SS,200小时
移动SP,400小时
移动斧头,1010h
推斧
请纠正任何错误,提前致谢
No, ss
是一个段寄存器,就像其他寄存器一样,例如cs
or ds
。它们按照通常的实模式规则参与形成物理地址:address = 16 * segment + offset
,堆栈情况下的偏移量来自哪里sp
。因此,压入堆栈的最后一项具有地址16 * ss + sp
。你不知道堆栈何时为空,除非你有a priori堆栈末尾的知识以及数值ss
相比sp
没有任何意义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)