文章目录
片内RAM中的寄存器
内容介绍
- 初步介绍89C51/S51中各个寄存器的基本概念和其作用。
- 参考李朝青等单片机原理及接口技术第四版
低128字节片内RAM
- 在低128字节片内RAM中 00H ~ 1FH 地址包含四组工作寄存器区,每组有8个工作寄存器(R0 ~ R7),总共占32个单元;
- 通过对程序状态字PSW中RS1和RS0的设置,如下图,每组寄存器均可选作CPU当前工作寄存器组,后面会详细分析;
4组工作寄存器
RS1 | RS0 | 寄存器 | 片内RAM地址 |
---|---|---|---|
0 | 0 | 第0组 | 00H~07H |
0 | 1 | 第1组 | 08H~0FH |
1 | 0 | 第2组 | 10H~17H |
1 | 1 | 第3组 | 18H~0FH |
- 这四组工作寄存器在不用时可以作为一般的RAM单元。
高128字节片内RAM(SFR区)
- SFR区如下图所示;
- 89C51/S51片内高128字节RAM中有21个特殊功能寄存器(SFR),离散分布在80H~FFH中。
- 其中21个特殊功能寄存器中有11个具有位寻址能力。其余的特殊功能寄存器或内存空间只能直接寻址。
部分特殊功能寄存器
累加器 ACC
- 助记符: A
- 地址:E0H
- 位数:8位
- 作用:最常用的8位特殊功能寄存器,指令操作数常存放于A中以及许多运算中间结果存放于A中。
寄存器 B
- 助记符:B
- 地址:F0H
- 位数:8位
- 作用:常在乘、除指令中用到,其他时刻作为一般的通用寄存器或RAM单元使用。
- 在乘指令中两个操作数即两个乘数取之于累加器A和寄存器B中,所得16位积的高8位放在B中,低八位放在A中。 附:乘法指令:MUL AB
- 在除指令中A存放被除数,B存放除数,商存放于A,商存放于B中。附:DIV AB