我目前刚开始装配。我知道我们首先需要分配堆栈的尺寸(在下面的示例中为1000)。但是,我很难理解为什么我们应该添加一个值(在这种情况下为#999)来初始化堆栈指针。这是伪程序集:
STACK: .RES 1000
MOV #STACK, SP
ADD #999, SP
答案 0 :(得分:2)
要在堆栈上分配空间,递减堆栈指针(即堆栈向下增长)。因此,为了将缓冲区STACK
用于堆栈,堆栈指针必须最初指向STACK
的末尾,因此递减堆栈指针使其指向STACK
的新部分。