访问电脑版页面

导航:老古开发网手机版其他

学习AVR(八)堆栈指针

导读:
关键字:

堆栈主要用于储存临时数据、本地变量和中断、子程序调用产生后的返回地址。堆栈指针寄存器通常指向堆栈的顶部。注意堆栈的执行是从较高的存储器地址到较低的存储器地址。也就是说,一条堆栈PUSH命令会使堆栈指针减小。

堆栈指针指向数据SRAM堆栈区域中子程序和中断堆栈被定位的位置。在任何子程序被调用或中断被使能之前,位于数据SRAM中的这一堆栈空间必须由程序定义好。堆栈指针必须被设在0x60之上。当使用PUSH指令向堆栈中压入一个数据时,堆栈指针自动减1;而当返回地址被子程序调用或中断压入堆栈时,堆栈指针自动减2。当使用POP指令把一个数据从堆栈中弹出时,堆栈指针自动加1;而由子程序的RET或中断程序的RETI弹出数据时,堆栈指针自动加2。

AVR堆栈指针是位于I/O空间的两个8位寄存器。确切使用的位数取决于实际情况。注意,在一些AVR架构的实现中数据空间非常小,所以只需要使用SPL。这种情况下,SPH寄存器将不存在。


来源:   作者:  2006/9/25 16:50:53
栏目: [ ]

相关阅读

安森美推出新的高功率图腾柱PFC控制器,满足具挑战的能效标准

动态功耗低至60μA/MHz!助力设备超长续航,首选国民技术低功耗MCU!