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



我目前是汇编新手。我知道我们首先需要分配堆栈的维度(在下面的示例中是 1000)。但是,我很难理解为什么我们应该添加一个值(在本例中为 #999)来初始化堆栈指针。 下面是伪程序集:

STACK: .RES 1000
MOV #STACK, SP
ADD #999, SP 

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

最新更新