第4章  51汇编指令详解
1.指令的定义
指令是规定计算机进行某种操作的指令。一条指令只能完成有限的功能,为了使计算机完成一定 的或者复杂的功能,就需要一系列指令。计算机能够执行各种指令的集合称为“指令系统”。计算机的主要功能也是由指令系统来体现的。
80C51使用了7种寻址方式,共有111条指令。
如果按照字节分:49条单字节,46条双字节,16条3字节。
如果按照运算速度分:单周期指令64条,双周期45条,4周期2条。
用助记符形式来表示的机器指令称为“汇编语言指令”。计算机的指令一般用汇编语言指令来表示。

80C51系列单片机的指令共有111条指令,按照其功能特点分为5大类,即是:数据传送指令类、算术运算类、逻辑运算类、控制转移类和位操作类。

符号定义表符号 含义
RnR0R7寄存器n=07
Direct 直接地址,内部数据区的地址 RAM(00H7FH)
SFR(80HFFH)B, ACC, PSW, IP, P3, IE, P2, SCON, P1, TCON, P0
@Ri 间接地址Ri=R0R1 8051/31RAM地址(00H7FH)8052/32RAM地址(00HFFH)
#data8位常数
#data1616位常数
Addr1616位的目标地址
Addr1111位的目标地址
Rel 相关地址
bit 内部数据RAM(20H2FH),特殊功能寄存器的直接地址的位指令介绍指令 字节 周期 动作说明一、算数运算指令
2.指令的详解
(字节    周期)
1. ADD A,Rn11 将累加8器与寄存器的内容相加,结果存回累加器
2. ADD A,direct21 将累加器与直接地址的内容相加,结果存回累加器
3. ADD A,@Ri11 将累加器与间接地址的内容相加,结果存回累加器
4. ADD A,#data21 将累加器与常数相加,结果存回累加器
5. ADDC A,Rn11 将累加器与寄存器的内容及进位 汇编语言结束指令C相加,结果存回累加器
6. ADDC A,direct21 将累加器与直接地址的内容及进位 C相加,结果存回累加器
7. ADDC A,@Ri11 将累加器与间接地址的内容及进位 C相加,结果存回累加器
8. ADDC A,#data21 将累加器与常数及进位 C相加,结果存回累加器

//减法指令,如下,都是带借位减法,其中A为被减数,即A - Rn-CY=A
9. SUBB A,Rn 11 将累加器的值减去寄存器的值减借位 C,结果存回累加器
10. SUBB A,direct21 将累加器的值减直接地址的值减借位 C,结果存回累加器
11. SUBB A,@Ri11 将累加器的值减间接地址的值减借位 C,结果存回累加器
12. SUBB A,#data21 将累加器的值减常数值减借位 C,结果存回累加器

//INC将操作数所在指定单元内容加一,其中操作除了第一条13指令影响就标志为外,其余指令操作均不影响PSW
13. INC A11 将累加器的值加 1;
14. INC Rn11 将寄存器的值加 l
15. INC direct21 将直接地址的内容加 1
16. INC @Ri11 将间接地址的内容加 1
17. INC DPTR11 数据指针寄存器值加 1说明:将 16位的 DPTR加 1,当 DPTR的低字节(DPL)从 FFH溢出至 00H时,会使高字节(DPH)1,不影响任何标志位,此是唯一一条16位加一指令,如果低8位有进位,可以直接向高位进位。

//假发指令与假发指令类似,是将其操作数所指定的调用内容减一。
18. DEC A 1 1 将累加器的值减 1
19. DEC Rn 1 1 将寄存器的值减 1
20. DEC direct 21 将直接地址的内容减 1
21. DEC @Ri 1 1 将间接地址的内容减 1


//乘除法指令都是1个字节,4个周期
22. MUL AB 1 4 将累加器的值与 B寄存器的值相乘,乘积的低位字节存回累加器,高位字节存回,注意AB中间没有空格。
B寄存器说明:将累加器 A和寄存器 B内的无符号整数相乘,产生 16位的积,低位字节存入 A,高位字节存入 B寄存器。如果积大于 FFH,则溢出标志位(OV)被设定为 1,而进位标志位为 0
23. DIV AB 1 4 将累加器的值除以 B寄存器的值,结果的商存回累加器,余数存回 B寄存
器说明:无符号的除法运算,将累加器 A除以 B寄存器的值,商存入 A,余数存入 B。执行本指令后,进位位(C)及溢出位(OV)被清除为 0

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。