寄存器组使用using参考\](https://blog.csdn.net/weixin_46720928/article/details/110221835)
## keil中的using关键字参考
官方文档里关于using的说明可参阅2个地方,(1)keil软件菜单栏-\>Help-\>uVision Heip,打开帮助文件,然后依次展开Ax51 Assembler User Guide -\> Control Statement -\> Reference -\> USING,(2)帮助文件依次展开CX51 Compiler User's Guide-\> Language Extensions -\> Function Declarations -\> Register Banks
## C51单片机有关概念
### PSW:(8个bit位)程序状态寄存器(下面汇编语言中就是对这个寄存器设置后使用不同寄存器器组),下面是修改使用寄存器组用到的位

### 寄存器组
从上面的图片可以知道,有**4组寄存器** 。**每组寄存器中都有R0到R7,共8个字节**。以第0组寄存器为例,地址是00h-07h。
#### 程序寄存器组中的数据使用
(下面的程序实例中也有)从汇编中可以看出,**寄存器组** 中**只是存储了运算的数据** ,而调用的**执行命令** 是在**存储命令的(code)内存**中。存一个字节的数据使用一个寄存器组中的一个
## 汇编常用命令
参考:https://blog.csdn.net/zcx515545/article/details/26152169
MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;
MOVC(Move Code)读取程序存储器数据表格的数据传送;
MOVX (Move External RAM) 对外部RAM的数据传送;
XCH (Exchange) 字节交换;
XCHD (Exchange low-order Digit) 低半字节交换;
PUSH (Push onto Stack) 入栈;
POP (Pop from Stack) 出栈;
ADD(Addition) 加法;
ADDC(Add with Carry) 带进位加法;
SUBB(Subtract with Borrow) 带借位减法;
DA(Decimal Adjust) 十进制调整;
INC(Increment) 加1;DEC(Decrement) 减1;
MUL(Multiplication、Multiply) 乘法;
DIV(Division、Divide) 除法;
RET(Return from subroutine)子程序返回;
LCALL(Long subroutine Call)子程序长调用;
NOP (No Operation) 空操作;
## 整体c语言代码
```c
#include
在keil中debug分析单片机数据和函数调用过程(c51为例),使用寄存器组导致错误原因分析
MAR-Sky2023-10-24 17:11
相关推荐
llilian_161 天前
晶体频率测试仪 破解晶振品控核心难题:晶体频率网络测试仪深度解析 晶体网络分析仪iCxhust2 天前
将8088 BootLoader分拆烧写到8086 ROM中llilian_162 天前
晶振测量仪 晶振频率测试仪器的多领域应用解析 晶振频率测试仪器智者知已应修善业2 天前
【51单片机控制的交通信号灯三按键切换调节时分秒加减】2023-8-26iCxhust3 天前
如何在汇编中修改CS:IP国产芯片设计3 天前
小家电驱动开发实战:远乐YL1628在电饭煲显示面板的应用与调试国产芯片设计3 天前
DIY实战|0.8寸WiFi自动授时电子钟,国产数码管驱动芯片方案分享智者知已应修善业3 天前
【51单片机中的打飞机设计】2023-8-25智者知已应修善业3 天前
【51单片机按键调节占空比3位数码管显示】2023-8-24