| 累加器
累加器(Accumulator)一般以A或Acc简称,是使用频率最高的暂存器,许多算数运算、逻辑运算及资料搬移等工作,都需要藉由累加器来完成。
工作暂存器
在8051中共有8个8位(bits)工作暂存器,分别为0、1、2、3、4、5、6及7。这些工作暂存器可用以辅助累加器在运算上的不足,如储存即将被处理的资料,或已完成的结果及迴圈数值控制等。
由于在撰写较复杂程序尤其是呼叫副程序时,为了避免工作暂存器之内容遭到破坏,在8051中提供四个暂存器库,分别为RB、RB1、RB及RB3,每一个暂存器库均有个8位工作暂存器,并可经由工作暂存器0~7来存取,但程序执行中只能选择四个暂存器库中的一个暂存器来使用,而其选择方法则可透过设定RS1与RS0此两位来选择:
RS1 RS0 暂存器库 位址
0 0 RB0 00H~07H
0 1 RB1 08H~0FH
1 0 RB2 10H~17H
1 1 RB3 18H~1FH
当8051选择使用RB0时,程序中存取R0~R7暂存器的值,实际上是在存取数据存储器位址00H~07H的内容;而使用RB1时,程序中存取R0~R7暂存器的值,实际上是在存取数据存储器位址08H~0FH的内容;而使用RB2时,程序中存取R0~R7暂存器的值,实际上是在存取数据存储器位址10H~17H的内容;而使用RB3时,程序中存取R0~R7暂存器的值,实际上是在存取数据存储器位址18H~1FH的内容。所以在复杂程序中,主程序与副程序可分配使用不同暂存器库,即可避免暂存器的值被破坏。
输出/输入口暂存器
8051具有4个8位(bits)的输出输入口,经由这四个输出输入口与外界进行资料交换因此在8051内部用个暂存器来记录输出/输入接脚的状态,分别为数据存储器80H、90H、A0H、B0H等四个位组(byte),并一输出/输入口分别命名为P0、P1、P2及P3。当软体程序对输出输入口P0~3作输出/输入的动作,即是对80H、90H、A0H及B0H等四个位组作写入/读出的动作。 |