MOV A, Rn 寄存器送累加器 MOV Rn,A 累加器送寄存器 MOV A ,@Ri 内部RAM单元送累加器 MOV @Ri ,A 累加器送内部RAM单元 MOV A ,#da ta 立即数送累加器 MOV A ,direct 直接寻址单元送累加器 MOV direct ,A 累加器送直接寻址单元 MOV Rn,#da ta 立即数送寄存器 MOV direct ,#da ta 立即数送直接寻址单元 MOV @Ri ,#da ta 立即数送内部RAM单元 MOV direct ,Rn 寄存器送直接寻址单元 MOV Rn ,direct 直接寻址单元送寄存器 MOV direct ,@Ri 内部RAM单元送直接寻址单元 MOV @Ri ,direct 直接寻址单元送内部RAM单元 MOV direct2,direct1 直接寻址单元送直接寻址单元 MOV DPTR ,#da ta16 16位立即数送数据指针 MOVX A ,@Ri 外部RAM单元送累加器(8位地址) MOVX @Ri ,A 累加器送外部RAM单元(8位地址) MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) MOVC A ,@A+PC 查表数据送累加器(PC为基址) XCH A ,Rn 累加器与寄存器交换 XCH A ,@Ri 累加器与内部RAM单元交换 XCHD A ,direct 累加器与直接寻址单元交换 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 SWAP A 累加器高4位与低4位交换 POP direct 栈顶弹出指令直接寻址单元 PUSH direct 直接寻址单元压入栈顶 嵌入式C51是一种基于8051微控制器的编程语言,它的指令集是针对8051架构设计的,包含多种类型的指令,用于控制硬件操作、数据处理和程序流程控制。以下是对这些指令的详细说明: 1. **数据传送类指令**:这些指令用于在寄存器、累加器、内部/外部RAM和直接寻址单元之间移动数据。例如,`MOV A, Rn`将寄存器Rn的内容移到累加器A;`MOV direct, #data`将立即数加载到直接寻址的内存位置;`MOVX @DPTR, A`则用于通过DPTR(数据指针)地址将累加器内容发送到外部RAM。 2. **算术运算类指令**:这些指令用于执行基本的算术运算,如加、减、乘、除以及进位操作。例如,`ADD A, Rn`累加器A加上寄存器Rn的值;`INC A`累加器加1;`MUL AB`累加器A乘以寄存器B;`SUBB A, Rn`累加器A减去寄存器Rn的值并考虑进位标志。 3. **逻辑运算类指令**:这类指令涉及逻辑操作,包括与、或、异或和按位操作。例如,`ANL A, Rn`进行按位与操作;`ORL A, direct`执行按位或;`XRL A, #data`进行按位异或;`CPL A`累加器的每一位取反;`CLR A`将累加器清零。 4. **控制转移类指令**:这些指令控制程序流程,包括条件跳转、无条件跳转和子程序调用。例如,`ACALL addr11`调用2KB范围内的子程序;`JMP @A+DPTR`根据累加器A和DPTR的内容跳转到地址;`RET`用于返回从子程序调用的原点;`JZ rel`如果累加器A为零,则跳转到相对地址。 5. **位操作类指令**:这些指令用于处理单个位,包括设置、清除、测试和位移操作。例如,`RL A`将累加器A的内容左移一位;`CPL bit`翻转直接寻址单元中的位;`SETB bit`设置指定位为1;`CLR bit`清除指定位。 6. **堆栈操作指令**:`PUSH direct`将直接寻址单元的内容压入堆栈,`POP direct`则从堆栈顶部弹出数据到直接寻址单元。 7. **查表指令**:`MOVC A, @A+DPTR`和`MOVC A, @A+PC`用于在程序存储器中查表,将查找到的数据加载到累加器。 这些指令是8051微控制器编程的基础,理解并熟练掌握它们对于编写高效的C51代码至关重要。在实际编程中,开发者通常会结合使用这些指令来实现复杂的算法和控制逻辑,以满足嵌入式系统的需求。
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助