ATtiny13 堆栈指针

来自丢石头百科
Admin讨论 | 贡献2019年11月18日 (一) 16:35的版本 (堆栈指针主要用来保存临时数据、局部变量和中断 子程序的返回地址。堆栈指针总是指 向堆栈的顶部。要注意 AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数 值将减小。堆栈指针指向数据 SRAM 堆栈区。在此 ...)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
<tbody></tbody>

堆栈指针主要用来保存临时数据、局部变量和中断 子程序的返回地址。堆栈指针总是指 向堆栈的顶部。要注意 AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数 值将减小。

堆栈指针指向数据 SRAM 堆栈区。在此聚集了子程序堆栈和中断堆栈。调用子程序和使 能中断之前必须定义堆栈 0x60 的地址 PUSH 指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。使 用 POP 指令将数据弹出堆栈时,堆栈指针加一;而用 RET 或 RETI 指令从子程序或中断 返回时堆栈指针加二。

ATtiny13的堆栈指针由I/O 8位寄存器实现。实际使用的位数与具体器件有关。请 注意某些 AVR 器件的数据区太小,用 SPL 就足够了。此时将不给出 SPH 寄存器。 ATtiny13 SPL.jpg