我目前是 assembly 新手。我知道我们首先需要分配堆栈的维度(在下面的示例中为 1000)。然而我很难理解为什么我们应该添加一个值(在本例中为#999)来初始化堆栈指针。这是伪汇编:
STACK: .RES 1000
MOV #STACK, SP
ADD #999, SP
最佳答案
为了在堆栈上分配空间,堆栈指针会递减(即堆栈向下增长)。因此,为了将缓冲区 STACK 用于堆栈,堆栈指针必须最初指向 STACK 的末尾,因此递减堆栈指针使其指向新部分STACK
。
关于assembly - 为什么要在汇编中添加一个值来初始化堆栈指针(R7)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54056962/