我正在寻找8051嵌入式处理器系列(特别是80C32)的一个很好的参考,它将解释内部存储器映射,以及它在系列处理器之间的差异。
我正在阅读重置为07H时堆栈指针的初始化方式。但是我在文档(例如here)中看到该系列中的所有处理器,内部RAM从地址00H开始,将Bank 0的R7映射到07H位置的内部寄存器。
我对内部寄存器和堆栈的映射方式有何误解?
答案 0 :(得分:2)
答案在您链接到的页面中给出:
编程提示:默认情况下,8051初始化堆栈指针 (SP)到微控制器启动时的07h。这意味着 堆栈将从地址08h开始向上扩展。如果你愿意的话 您必须使用备用寄存器库(库1,2或3) 将堆栈指针初始化为最高寄存器上方的地址 您将使用的银行,否则堆栈将覆盖您的 备用登记银行。同样,如果你将使用位 变量通常是一个好主意,初始化堆栈指针 一些值大于2Fh以保证您的位变量 保护免受堆栈。