51单片机指令系统
下面是一段汇编语言程序的书写格式:
标号 操作码 操作数
注释
START:MOV A,#00H
;0→A
MOV R7,#10
;10→R7
MOV R2,#00000011B ;3→R2
LOOP: ADD A,R2 DJNZ R7,LOOP
;(A)+(R2)→A ;R7的内容减1不为0则循环
NOP
SJMP $
RET RETurn
RETI RETurn from Interrupt
NOP No OPeration
第3章 51系列单片机指令系统
单片机按指令的字节长度划分有三种:
(1)单字节指令:只有一字节的操作码,操作数隐含其中。 如指令“INC A”,操作码04H,在ROM中占一个字节
(2)双字节指令:一个字节的操作码,一个字节的操作数。 如指令“ADD A,#22H” 操作码和操作数为24H 22H,目的操作数隐含在操作码 中,在ROM中占两个字节。
进位位为0转移
指定为为1转移 指定位为0转移
JNC
Jump if Not Carry(if Cy=0)
JB Jump if Bit is set
JNB Jump if Not Bit (if bit=0)
指定位为1转移并清该位 JBC Jump if Bit is set add Clear bit
24H
00001000B
10H
ADD A,#10H
二进制表示形式 十六进制表示 汇编格式 由英文字母、数字来表征指令功能,便于阅读、书写和
交流的表示形式。 “汇编”格式必须“翻译”为二进制“机器码”后才能
被CPU所识别和执行。
本章内容均以汇编的形式介绍指令系统。
6
第3章 51系列单片机指令系统
7
51系列单片机汇编语言操作码的英文对照表
助记符意义
助记符
对照英文
传送 代码区数据传送 外部RAM区数据传送 压栈 退栈 交换 十进制交换 加法 带进位加 带借位减 加1 减1 乘 除
MOV MOVC MOVX PUSH POP XCH XCHD ADD ADDC SUBB INC DEC MUL DIV
MOVe MOVe Code MOVe eXternal PUSH POP eXCHange eXCHange Decimal ADD ADD with Carry SUBtract with Borrow INCrement DECrement MULtiply DIVide
助记符意义 十进制调整 逻辑与 逻辑或 逻辑异或 求补 清零 置位 左移
(3)三字节指令:一个字节操作码,两个字节操作数。 例如指令“MOV 5EH,4FH” 其中操作码为85H,目的操作数5EH,源操作数4FH,在 ROM中占三个字节。
12
第3章 51系列单片机指令系统
指令系统概述
✓ 51系列使用42种助记符,有51种基本操作。 通过助记符及源和目的操作数的不同组合构成了51单片机 的111条指令。
续表2
助记符意义
助记符
对照英文
绝对转移 短转移 长转移 跳转 累加器为零转移 累加器不为零转移 进位位为1转移
AJMP SJMP LJMP JMP JZ JNZ JC
Absolute JuMP Short JuMP Long JuMP JuMP Jump if acc is Zero Jump if acc is Not Zero Jump if Carry(if Cy=1)
单片机原理与接口技术
第3章 51系列单片机指令系统
3章 51系列单片机指令系统
主要内容
指令概述 寻址方式 指令系统
2
第3章 51系列单片机指令系统
3.1 指令系统概述
一、 51单片机指令的概念 机器语言:用二进制代码来描述指令功能的语言。 目标程序:用机器语言组成的程序。 汇编语言:为方便编写, 记忆和阅读, 用助记符描述指令。 1. 指令格式 51单片机指令格式采用了单地址指令格式。
助记符意义
比较不等转移
减1不为0转移
绝对调用 长调用 子程序返回 中断返回 空操作
续表3
助记符
对照英文
CJNE
Compare and Jump if NotEqual
DJNZ
Decrement and Jump if Not Zero
ACALL Absolute CALL
LCALL Long CALL
✓ 51单片机指令系统按字节数分为: • 单字节指令49条; • 双字节指令46条; • 三字节指令16条。
✓ 按指令执行的周期划分: • 单周期指令有57条; • 双周期指令52条; • 四周期指令(乘法和除法) 2条。
24H
00010000B
10H
二进制表示的形式 十六进制表示的形式 目前极少用这种形式,只作为一种辅助调试手段。 这种形式的指令格式必须由监控程序把它们翻译成二进
制“机器码”后存入程序存储器才能运行。
5
第3章 51系列单片机指令系统
3) 指令的“助记符”方式(也称“汇编格式”):
00100100B
00100100B 操作码 OP (加法) 00010000B 操作数 DATA(10H)
特点:能被CPU直接识别并执行的形式,也称机器码、 汇编语言的目标代码。
缺点:不便于阅读、记忆和调试修改。
4
第3章 51系列单片机指令系统
2) 十六进制表示方式:
它是对二进制形式的一种简化。
00100100B
带进位左移
右移
带进位右移
(半字节)互换
助记符 DA ANL ORL XRL CPL CLR SETB RL
RLC
RR
RRC
SWAP
续表1
对照英文
Decimal Adjust Logicle ANd Logicle OR Logicle eXclusive-oR ComPLement CLeaR SET Bit Rotate Left Rotate Left throuth the Carry flag Rotate Right Rotate Right throuth the Carry flag SWAP
指令的具体格式为[方括号内是可选择的]:
[标号]:操作码 [目的操作数],[源操作数];[注释]
例如:NEXT:ADD A,#10H ;#10H+(A)→A
机器码:2410H
3
第3章 51系列单片机指令系统
2. 指令有三种表示形式: 表示形式是用来识别指令的标志。 1) 二进制表示形式:(以“累加器A的内容+10H”为例)