单片机指令与机器码详细参考表

需积分: 27 11 下载量 93 浏览量 更新于2024-07-22 收藏 44KB DOC 举报
"单片机指令功能及其机器码一览表" 单片机编程中,指令系统是其核心组成部分,它定义了计算机可以执行的操作。本资源提供了一个详细的单片机指令功能及其对应的机器码列表,方便学习者快速查询和理解。以下是一些主要的指令和它们的功能: 1. **数据转移指令**: - `MOVA,Rn` (E8~EF):将寄存器Rn中的数据转移到累加器A。 - `MOVA,direct` (E5):将直接地址dircet中的数据转移到累加器A。 - `MOVA,@Ri` (ER~E7):将通过寄存器Ri间接寻址的RAM中的数据转移到累加器A。 - `MOVA,#data` (74):将立即数data转移到累加器A。 - `MOVRn,A` (F8~FF):将累加器A中的数据转移到寄存器Rn。 - `MOVRn,direct` (A8~AF):将寄存器Rn中的数据转移到直接地址dircet。 - `MOVRn,#data` (78~7F):将立即数data转移到寄存器Rn。 2. **存储器到存储器的数据转移**: - `MOVdircet,A` (F5):将累加器A中的数据转移到直接地址dircet。 - `MOVdircet,Rn` (88~8F):将寄存器Rn中的数据转移到直接地址dircet。 - `MOVdircet1,dircet2` (85):将直接地址dircet1中的数据转移到直接地址dircet2。 - `MOVdircet,@Ri` (86~87):将间接通过寄存器Ri的RAM中的数据转移到直接地址dircet。 - `MOVdircet,#data` (75):将立即数data转移到直接地址dircet。 - `MOV@Ri,A` (F6~F7):将累加器A中的数据转移到通过寄存器Ri间接寻址的RAM。 - `MOV@Ri,#data` (76~77):将立即数data转移到通过寄存器Ri间接寻址的RAM。 3. **数据指针操作**: - `MOVDPTR,#data` (1690):将16位常数data15~816赋值给数据指针DPTR。 4. **程序存储器访问**: - `MOVCA,@A+DPTR` (93):从((A)+(DPTR))寻址的程序存储器字节中选择数据并送入A。 - `MOVCA,@A+PC` (83):从((A)+(PC))寻址的程序存储器字节中选择数据并送入A。 5. **外部数据存储器访问**: - `MOVXA,@Ri` (E2~E3):将外部数据(8位地址)送入累加器A。 - `MOVXA,@DPTRE0`:将外部数据(16位地址)送入累加器A。 - `MOVX@Ri,A` (F2~F3):将累加器A中的数据送至外部数据存储器(8位地址)。 - `MOVX@DPTR,A` (F0):将累加器A中的数据送至外部数据存储器(16位地址)。 6. **堆栈操作**: - `PUSH direct` (C0):将直接地址dircet中的数据压入堆栈,堆栈指针SP加1。 - `POP direct` (D0):将堆栈顶部的数据弹出到直接地址dircet,SP减1。 7. **数据交换**: - `XCHA,Rn` (C8~CF):交换累加器A和寄存器Rn的内容。 - `XCHA,direct` (C5):交换累加器A和直接地址dircet的内容。 - `XCHA,@Ri` (C6~C7):交换累加器A和通过寄存器Ri间接寻址的RAM的内容。 - `XCHA,@Ri` (D6~D7):交换累加器A和间接RAM的低位。 8. **算术运算**: - `ADDA,Rn` (28~2F):将寄存器Rn中的数据加到累加器A。 - `ADDA,direct` (25):将直接地址dircet中的数据加到累加器A。 - `ADDA,@Ri` (26~27):将通过寄存器Ri间接寻址的RAM中的数据加到累加器A。 - `ADDA,#data` (24):将立即数data加到累加器A。 - `ADDA,Rn` (38~3F):将寄存器Rn中的数据和进位位加到累加器A。 以上只是部分指令的介绍,实际单片机指令系统还包括逻辑操作、比较、移位、控制转移等更多指令。理解这些指令的机器码和功能对于编写单片机程序至关重要,因为它直接影响程序的执行效率和内存占用。通过深入学习和实践,开发者可以更好地掌握单片机的控制能力。