1.1 PC——程序计数器
取完指令后CPU根据该指令的字节数自动增量PC,因此20位的PC(R0)的值总是指向下一条要执行的指令。
PC总是指向偶地址(bit0=0)
1.2 SP——堆栈指针
CPU使用20位堆栈指针(SP,也称为R1)来存储子例程调用和中断的返回地址。
【作用】:保护现场和恢复现场。
它使用先进后出方案。
SP由用户初始化为RAM,并且始终与偶数地址对齐。
堆栈分两种:
向上增长,栈底占用较低地址,栈顶占用较高地址 : 8051
向下增长,栈底占用较高地址,栈顶占用较低地址: MSP430、AVR
ARM支持两种增长方式的堆栈。
1.3 SR——状态寄存器
用作源或目标寄存器的16位状态寄存器(SR,也称为R2)只能用于通过字指令寻址的寄存器模式。 寻址模式的其余组合用于支持常数发生器。
SCG1:系统时钟发生器1该位可用于根据器件系列启用或禁用时钟系统中的功能; 例如,DCO偏置启用或禁用。
SCG0:系统时钟发生器0该位可用于根据器件系列启用或禁用时钟系统中的功能; 例如,FLL(频率锁定环)启用或禁用。
OSCOFF:关闭振荡器。 该位置1时,当LFXT1 CLK不用于MCLK或SMCLK时,它会关闭LFXT1晶体振荡器。
CPUOFF:CPU关闭。 该位置1时,将关闭CPU。
CPUOFF,OSCOFF,SCGO和SCG1位请求系统进入低功耗模式。
GIE:中断使能总控制位,可以使能/屏蔽可屏蔽中断。
可以使用如下指令配置SR寄存器:
//将SR某位置1
__bis_SR_register();
_bis_SR_register();
_BIS_SR();
//将SR某位置0
__bic_SR_register();
_bic_SR_register();
_BIC_SR();
上述都是内置函数
|