【发布时间】:2015-11-07 10:55:15
【问题描述】:
在 Intel 8086 微处理器中,假设 SS=1000H 且 SP=0100H
堆栈满后,压入堆栈的额外字节将保存在哪里?给出物理地址。
【问题讨论】:
-
我的回答是“堆栈溢出”,这很有趣,因为你问这个问题 - 是的...... - 堆栈溢出
标签: stack x86-16 microprocessors
在 Intel 8086 微处理器中,假设 SS=1000H 且 SP=0100H
堆栈满后,压入堆栈的额外字节将保存在哪里?给出物理地址。
【问题讨论】:
标签: stack x86-16 microprocessors
PUSH 将 SP 减 2,然后在 SS:SP 中存储两个字节的数据。因此,如果您在 SP=0 时 PUSH,则两个字节的数据将写入 SS:0xFFFE。您现在应该可以完成剩下的工作了。
【讨论】:
25 年前我教 8086 汇编程序编程,现在有点模糊。我很确定,如果您将更多项目添加到堆栈中,它只会覆盖超出它的内容。程序员有责任确保有足够的堆栈空间可用,以免发生这种情况。并安排程序,以便您知道它不会以失控的方式继续向堆栈添加项目。或者包括您自己的检查,以便在这种情况即将发生时收到警告。如果这个答案太模糊,我会回到我的旧笔记并提出更准确的答案。
【讨论】: