谢谢你的回复。我不使用STKPTR上的表,而是查看硬件堆栈内存视图。即使在表窗口中改变STKPTR,它也不会在硬件堆栈内存视图中改变(总是0)。在模拟器中,堆栈在启动时被初始化为全零。在第一个调用指令之后,STKPTR为1,但是在内存视图中,返回地址存储在位置0中。我通常的假设是堆栈指针总是指向TOS。在解释堆栈操作的细节方面,我想从这里可以省略的是,STKPTR通常指向TOS+1(至少在模拟器中)。详情不在任何参考资料中…但至少现在我能说出一个始终如一的故事。谢谢。
谢谢你的回复。我不使用STKPTR上的表,而是查看硬件堆栈内存视图。即使在表窗口中改变STKPTR,它也不会在硬件堆栈内存视图中改变(总是0)。在模拟器中,堆栈在启动时被初始化为全零。在第一个调用指令之后,STKPTR为1,但是在内存视图中,返回地址存储在位置0中。我通常的假设是堆栈指针总是指向TOS。在解释堆栈操作的细节方面,我想从这里可以省略的是,STKPTR通常指向TOS+1(至少在模拟器中)。详情不在任何参考资料中…但至少现在我能说出一个始终如一的故事。谢谢。
举报