标签: stack push assembly cpu-registers
我正在学习汇编程序并以实模式编写一些程序。我对堆栈理解有些麻烦。如果SS不为零且SP = 0,是否有可能在堆栈中推送值。(如果可能的话,cpu如何在推送后改变寄存器的值)
答案 0 :(得分:0)
是的,这是可能的,但你通常不愿意。如果你这样做,SP将从0到65536回合,像往常一样用SS组合,你将写入任何可用的地址。在一个典型的情况下,它会覆盖位于堆栈底部的东西,当你返回到依赖于之前内容的代码时,行为将是不可预测的(快速崩溃是你可以期望的最好的崩溃)那一点)。