为什么我们添加一个值以在程序集中初始化堆栈指针(R7)?

时间:2019-01-05 22:42:47

标签: assembly

我目前刚开始装配。我知道我们首先需要分配堆栈的尺寸(在下面的示例中为1000)。但是,我很难理解为什么我们应该添加一个值(在这种情况下为#999)来初始化堆栈指针。这是伪程序集:

STACK: .RES 1000

MOV #STACK, SP
ADD #999, SP 

1 个答案:

答案 0 :(得分:2)

要在堆栈上分配空间,递减堆栈指针(即堆栈向下增长)。因此,为了将缓冲区STACK用于堆栈,堆栈指针必须最初指向STACK的末尾,因此递减堆栈指针使其指向STACK的新部分。