51单片机汇编指令表

admin 3 0

### 51单片机汇编指令表

在计算机与编程领域,51单片机作为一种经典的微控制器,广泛应用于嵌入式系统开发中,其汇编语言指令集是实现单片机功能的基础,通过精确控制单片机的硬件资源,实现各种复杂的逻辑和运算,本文将详细介绍51单片机的汇编指令表,包括数据传送类指令、算数操作类指令、逻辑运算类指令、控制转移类指令等,帮助读者深入了解51单片机的编程方法。

#### 一、数据传送类指令

数据传送类指令是51单片机汇编语言中最基础的一类指令,用于实现数据在单片机内部各部件之间的移动,这类指令主要包括以下几种:

1. **以累加器A为目的操作数的指令**

- `MOV A,Rn`:将寄存器Rn的内容传送到累加器A中。

- `MOV A,@Ri`:将间接寻址寄存器Ri指向的内存单元的内容传送到累加器A中。

- `MOV A,direct`:将直接地址单元的内容传送到累加器A中。

- `MOV A,#data`:将立即数data传送到累加器A中。

2. **以Rn为目的操作数的指令**

- `MOV Rn,A`:将累加器A的内容传送到寄存器Rn中。

- `MOV Rn,direct`:将直接地址单元的内容传送到寄存器Rn中。

- `MOV Rn,#data`:将立即数data传送到寄存器Rn中。

3. **以直接地址为目的操作数的指令**

- `MOV direct,A`:将累加器A的内容传送到直接地址单元中。

- `MOV direct,Rn`:将寄存器Rn的内容传送到直接地址单元中。

- `MOV direct1,direct2`:将直接地址单元direct2的内容传送到直接地址单元direct1中。

- `MOV direct,@Ri`:将间接寻址寄存器Ri指向的内存单元的内容传送到直接地址单元中。

- `MOV direct,#data`:将立即数data传送到直接地址单元中。

4. **以寄存器间接地址为目的操作数的指令**

- `MOV @Ri,A`:将累加器A的内容传送到间接寻址寄存器Ri指向的内存单元中。

- `MOV @Ri,direct`:将直接地址单元的内容传送到间接寻址寄存器Ri指向的内存单元中。

- `MOV @Ri,#data`:将立即数data传送到间接寻址寄存器Ri指向的内存单元中。

5. **16位传送指令**

- `MOV DPTR,#data16`:将一个16位的立即数data16传送到数据指针DPTR中。

6. **堆栈操作指令**

- `PUSH direct`:将直接地址单元的内容压入堆栈。

- `POP direct`:从堆栈中弹出数据到直接地址单元中。

7. **累加器A与外部数据存储器传送指令**

- `MOVX A,@DPTR`:将DPTR指向的外部数据存储器的内容传送到累加器A中。

- `MOVX A,@Ri`:将Ri指向的外部数据存储器的内容传送到累加器A中。

- `MOVX @DPTR,A`:将累加器A的内容传送到DPTR指向的外部数据存储器中。

- `MOVX @Ri,A`:将累加器A的内容传送到Ri指向的外部数据存储器中。

8. **查表指令**

- `MOVC A,@A+PC`:以累加器A的内容为偏移量,加上PC的值,得到新的地址,并将该地址单元的内容传送到累加器A中。

- `MOVC A,@A+DPTR`:以累加器A的内容为偏移量,加上DPTR的值,得到新的地址,并将该地址单元的内容传送到累加器A中。

9. **字节交换指令**

- `XCH A,Rn`:交换累加器A和寄存器Rn中的内容。

- `XCH A,direct`:交换累加器A和直接地址单元中的内容。

- `XCH A,@Ri`:交换累加器A和间接寻址寄存器Ri指向的内存单元中的内容。

10. **半字节交换指令**

- `XCHD A,@Ri`:交换累加器A和间接寻址寄存器Ri指向的内存单元中的低半字节内容。

#### 二、算数操作类指令

算数操作类指令用于实现基本的算术运算,如加法、减法、乘法、除法等。

1. **加法指令**

- `ADD A,Rn`:将累加器A和寄存器Rn中的内容相加,结果存回累加器A中。

- `ADD A,direct