### 8051汇编指令表解析 #### 数据传送指令 8051微控制器中的数据传送指令用于实现各种数据在内部RAM、特殊功能寄存器、外部RAM以及程序存储器之间的移动。 ##### 1. 数据传送指令 **1.1 寄存器与累加器A之间的传送** - **MOVA,Rn** - **说明**:将寄存器R0~R7中的数据传送到累加器A。 - **字节数**:1 - **周期**:1 - **代码**:E8~EF - **MOVA,#data** - **说明**:将立即数传送到累加器A。 - **字节数**:2 - **周期**:1 - **代码**:74 - **MOVRn,A** - **说明**:将累加器A的数据传送到寄存器R0~R7。 - **字节数**:1 - **周期**:1 - **代码**:F8~FF **1.2 寄存器与直接地址间的传送** - **MOVRn,#data** - **说明**:将立即数传送到寄存器R0~R7。 - **字节数**:2 - **周期**:1 - **代码**:78~7F - **MOVRn,data** - **说明**:将直接地址中的数据传送到寄存器R0~R7。 - **字节数**:2 - **周期**:2 - **代码**:A8~AF - **MOVdata,A** - **说明**:将累加器A的数据传送到直接地址。 - **字节数**:2 - **周期**:1 - **代码**:F5 **1.3 直接地址之间的传送** - **MOVdata,data** - **说明**:将一个直接地址中的数据传送到另一个直接地址。 - **字节数**:3 - **周期**:2 - **代码**:85 **1.4 寄存器间接寻址传送** - **MOVA,@Ri** - **说明**:将间接地址(通过寄存器R0或R1获得)中的数据传送到累加器A。 - **字节数**:1 - **周期**:1 - **代码**:E6~E7 - **MOV@Ri,A** - **说明**:将累加器A的数据传送到间接地址(通过寄存器R0或R1获得)。 - **字节数**:1 - **周期**:2 - **代码**:F6~F7 - **MOV@Ri,#data** - **说明**:将立即数传送到间接地址(通过寄存器R0或R1获得)。 - **字节数**:2 - **周期**:2 - **代码**:76~77 **1.5 程序存储器与累加器A之间的传送** - **MOVC A,@A+DPTR** - **说明**:根据累加器A和数据指针DPTR的值,寻址程序存储器中的数据,并将其传送到累加器A。 - **字节数**:1 - **周期**:2 - **代码**:93 **1.6 外部数据存储器与累加器A之间的传送** - **MOVX A,@Ri** - **说明**:将外部RAM中的数据传送到累加器A(使用8位地址)。 - **字节数**:1 - **周期**:2 - **代码**:E2~E3 - **MOVX A,@DPTR** - **说明**:将外部RAM中的数据传送到累加器A(使用16位地址)。 - **字节数**:1 - **周期**:2 - **代码**:E0 - **MOVX @Ri,A** - **说明**:将累加器A的数据传送到外部RAM(使用8位地址)。 - **字节数**:1 - **周期**:2 - **代码**:F2~F3 **1.7 栈操作** - **PUSH data** - **说明**:将直接地址中的数据压入堆栈,同时使堆栈指针SP加1。 - **字节数**:2 - **周期**:2 - **代码**:C0 - **POP data** - **说明**:从堆栈弹出数据到直接地址,同时使堆栈指针SP减1。 - **字节数**:2 - **周期**:2 - **代码**:D0 **1.8 数据交换指令** - **XCHA Rn** - **说明**:将寄存器R0~R7中的数据与累加器A中的数据进行交换。 - **字节数**:1 - **周期**:1 - **代码**:C8~CF - **XCHA @Ri** - **说明**:将间接地址(通过寄存器R0或R1获得)中的数据与累加器A中的数据进行交换。 - **字节数**:1 - **周期**:1 - **代码**:C6~C7 #### 2. 逻辑运算指令 **2.1 逻辑与操作** - **ANLA,Rn** - **说明**:将寄存器R0~R7中的数据与累加器A中的数据进行逻辑与操作。 - **字节数**:1 - **周期**:1 - **代码**:58~5F - **ANLA,#data** - **说明**:将立即数与累加器A中的数据进行逻辑与操作。 - **字节数**:2 - **周期**:1 - **代码**:54 - **ANLC,bit** - **说明**:将直接位与进位位进行逻辑与操作。 - **字节数**:2 - **周期**:1 - **代码**:A2 **2.2 逻辑或操作** - **ORLA,Rn** - **说明**:将寄存器R0~R7中的数据与累加器A中的数据进行逻辑或操作。 - **字节数**:1 - **周期**:1 - **代码**:48~4F - **ORLA,#data** - **说明**:将立即数与累加器A中的数据进行逻辑或操作。 - **字节数**:2 - **周期**:1 - **代码**:44 - **ORLC,bit** - **说明**:将直接位与进位位进行逻辑或操作。 - **字节数**:2 - **周期**:2 - **代码**:72 **2.3 逻辑异或操作** - **XRLA,Rn** - **说明**:将寄存器R0~R7中的数据与累加器A中的数据进行逻辑异或操作。 - **字节数**:1 - **周期**:1 - **代码**:68~6F - **XRLA,#data** - **说明**:将立即数与累加器A中的数据进行逻辑异或操作。 - **字节数**:2 - **周期**:1 - **代码**:64 - **CPLA** - **说明**:对累加器A中的数据进行位取反操作。 - **字节数**:1 - **周期**:1 - **代码**:F4 **2.4 其他位操作** - **SETBC** - **说明**:设置进位标志位为1。 - **字节数**:1 - **周期**:1 - **代码**:D3 - **CLRC** - **说明**:清除进位标志位。 - **字节数**:1 - **周期**:1 - **代码**:C3 #### 3. 算术运算指令 **3.1 加法操作** - **ADDA,Rn** - **说明**:将寄存器R0~R7中的数据与累加器A中的数据相加。 - **字节数**:1 - **周期**:1 - **代码**:28~2F - **ADDA,#data** - **说明**:将立即数与累加器A中的数据相加。 - **字节数**:2 - **周期**:1 - **代码**:24 - **ADDCA,Rn** - **说明**:将寄存器R0~R7中的数据与累加器A中的数据及进位标志位相加。 - **字节数**:1 - **周期**:1 - **代码**:38~3F **3.2 循环移位操作** - **RLA** - **说明**:将累加器A中的数据向左循环移一位。 - **字节数**:1 - **周期**:1 - **代码**:23 - **RRCA** - **说明**:将累加器A中的数据向右循环移一位,并考虑进位标志位。 - **字节数**:1 - **周期**:1 - **代码**:13 以上指令表涵盖了8051微控制器中常见的数据传送、逻辑运算和算术运算等基本指令。通过这些指令,程序员可以灵活地控制数据在不同的存储区域之间移动、执行复杂的逻辑运算以及进行加减乘除等数学计算。这对于开发基于8051微控制器的应用程序至关重要。











剩余11页未读,继续阅读


- 粉丝: 6
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- ctoc电子商务专题知识讲座.pptx
- C语言第7讲关系运算与逻辑运算if语句.ppt
- 基于单片机温度控制系统的设计.doc
- 基于AT89C52单片机的温室控制系统.doc
- 专题讲座资料(2021-2022年)单片机的红外防盗报警器.doc
- 购物网站策划书.doc
- 基于数据挖掘技术的负荷预测及主动设备维护可行性研究报告.doc
- 计算机教研组工作总结(2023年2023年第一学期).docx
- 【源版】第五章-数据库技术基础.ppt
- 工厂数字化网络监控系统解决方案.doc
- 网络谣言的传播与成因.ppt
- 基于GPS车辆跟踪系统的移动对象数据库应用研究.doc
- 光纤通信(第5版)课后习题答案要点.doc
- 高中数学第1章算法初步章末复习与总结课件新人教A版必修.ppt
- 网络研修学习总结.doc
- 中小型企业网站建设方案模板.doc


