我正在阅读一些关于处理器内存操作的基本文章,我对处理器如何处理接下来的内容感到困惑。
调用堆栈的概念很清楚,但我想知道表达式堆栈/寄存器堆栈(用于进行计算)是否是同一个堆栈,或者即使是子程序(函数)的局部变量的堆栈程序是同一个调用栈。
如果有人可以向我解释处理器如何处理其堆栈,那将对我有很大帮助。
我正在阅读一些关于处理器内存操作的基本文章,我对处理器如何处理接下来的内容感到困惑。
调用堆栈的概念很清楚,但我想知道表达式堆栈/寄存器堆栈(用于进行计算)是否是同一个堆栈,或者即使是子程序(函数)的局部变量的堆栈程序是同一个调用栈。
如果有人可以向我解释处理器如何处理其堆栈,那将对我有很大帮助。
我工作过的所有处理器都只是为这些使用了一个堆栈。
如果你想想处理器在做什么,你只需要一个堆栈。在计算期间,您可以使用与调用堆栈相同的堆栈,因为当计算完成时,堆栈将再次“干净”。局部变量也是如此,就在您离开局部变量的范围之前,您的堆栈将是干净的,允许调用正确返回。
您可以更改堆栈只需设置 SS:SP 段和指针寄存器(只需保存当前值)过程调用参数和局部变量都发生在堆栈中。动态创建的对象发生在堆中(DS:DI)。SS:SP 寄存器对移动了适当的字节数,以保留过程调用所需的内存。并且在返回时 SS:SP 设置回预调用状态。