在此上下文中的堆栈是OS/EABI提供的较低级别结构.这就是为什么有一个传统的寄存器.但是,堆是OS提供的更高级别的结构.因此管理和使用它取决于与您的应用和操作系统的协议.在汇编术语中,您将使用该堆通过寄存器取消引用某些地址.
SP寄存器通常用于跟踪堆栈中的当前位置.这意味着它几乎需要始终指向堆栈.
对于堆来说同样不能说.当您需要访问变量时,该变量的地址将存储在应用程序的指针或其他内存引用中.在需要该地址时,可以使用寄存器来进行参考.但是哪个寄存器的细节不仅依赖于编译器,而且还可能取决于在从同一编译器优化代码之后哪个寄存器可用.