第3章80c51系列单片机指令系统 本章要点 ◆80C51指令的基本格式 80c51指令功能分类 今指令系统中的常用符号 ◇80C51指令系统的七种寻址方式 数据传送类指令 算术运算类指令 逻辑运算及移位指令 ☆位操作类指令 ◇控制转移类指令
第3章 80C51系列单片机指令系统 本章要点 ❖ 80C51指令的基本格式 ❖ 80C51指令功能分类 ❖ 指令系统中的常用符号 ❖ 80C51指令系统的七种寻址方式 ❖ 数据传送类指令 ❖ 算术运算类指令 ❖ 逻辑运算及移位指令 ❖ 位操作类指令 ❖ 控制转移类指令
51系列单片机指令集含有111条指令 9每条指令在程序存储器RoM中占据一定的空间, 以字节为单位。按指令所占字节数分类 单字节(49条双字节(46条)3字节(16条) ●每条指令在执行时要花去一定的时间,以机器 周期为单位。按指令执行时间分类: 单周期(64条)双周期(45条);4周期(2条) ●按指令的功能分类,可分为5大类: 数据传送类(29条);算术运算类(24条) 逻辑运算及移位类(24);控制转移类(17条) 位操作类(17条)
51系列单片机指令集含有111条指令 每条指令在执行时要花去一定的时间,以机器 周期为单位。按指令执行时间分类: 单周期(64条);双周期(45条);4周期(2条) 按指令的功能分类,可分为5大类: 数据传送类(29条);算术运算类(24条) 逻辑运算及移位类(24);控制转移类(17条) 位操作类(17条) 每条指令在程序存储器ROM中占据一定的空间, 以字节为单位。按指令所占字节数分类: 单字节(49条);双字节(46条);3字节(16条)
s3-1指令系统基本概念 3.1.1指令基本格式 标号:操作码操作数;注释 [标号:]操作码[目的操作数][,源操作数][;注释] START: Mov A#30H ;将立即数30H传送至A中 MOV DPTR,#5678H;将立即数5678H传送至DPTR ◆方括符[]表示可选项 ◆标号代表指令所在地址,1-8个字母/数字,“:”结尾
§3-1 指令系统基本概念 标号:操作码 操作数;注释 3.1.1 指令基本格式 方括符[ ]表示可选项 标号代表指令所在地址,1-8个字母/数字, “:”结尾 [标号:]操作码 [目的操作数][,源操作数][;注释] START:MOV A,#30H ;将立即数30H传送至A中 MOV DPTR,#5678H ;将立即数5678H传送至DPTR
(1)标号:指令的符号地址。 ①用于一段功能程序的识别标记或控制 转移地址。 ②指令前的标号代表该指令的地址, 是用符号表示的地址。 ③一般用英文字母和数字组成。 ④标号必须用冒号“:”与操作码分隔
⑴ 标号:指令的符号地址。 ① 用于一段功能程序的识别标记或控制 转移地址。 ② 指令前的标号代表该指令的地址, 是用符号表示的地址。 ③ 一般用英文字母和数字组成。 ④ 标号必须用冒号“ :”与操作码分隔
(2)操作码:表示指令的操作功能。 ①操作码用助记符表示, 它代表了指令的操作功能。 ②操作码是指令的必需部分, 是指令的核心,不可缺少
⑵ 操作码:表示指令的操作功能。 ① 操作码用助记符表示, 它代表了指令的操作功能。 ② 操作码是指令的必需部分, 是指令的核心,不可缺少
(3)操作数:参加操作的数据或数据地址。 ①操作数可以是数据,也可以是数据的地址 数据地址的地址或操作数的其他信息。 ②操作数可分为目的操作数和源操作数。 ③操作数可用二进制数、十进制数或十六进制 数表示。 ④操作数的个数可以是0~3个 ⑤操作数与操作码之间用空格分隔,操作数与 操作数之间用逗号“,”分隔
⑶ 操作数:参加操作的数据或数据地址。 ⑤ 操作数与操作码之间用空格分隔,操作数与 操作数之间用逗号“ , ”分隔。 ① 操作数可以是数据,也可以是数据的地址、 数据地址的地址或操作数的其他信息。 ② 操作数可分为目的操作数和源操作数。 ③ 操作数可用二进制数、十进制数或十六进制 数表示。 ④ 操作数的个数可以是0~3个
(4)注释:指令功能说明。 ①注释属于非必需项,是为便于阅读 对指令功能作的说明和注解。 ②注释必须以“;”开始
⑷ 注释:指令功能说明。 ① 注释属于非必需项,是为便于阅读, 对指令功能作的说明和注解。 ② 注释必须以“ ; ”开始
3.1.2指令分类 80c51共有11条指令。 (1)按指令长度分类: 可分为1字节、2字节和3字节指令。 (2)按指令执行时间分类: 可分为1机周、2机周和4机周指令。 (3)按指令功能分类: 可分为数据传送类、算术运算类、 逻辑运算类、位操作类和 控制转移类等5大类指令
3.1.2 指令分类 ⑶ 按指令功能分类: 可分为数据传送类、算术运算类、 逻辑运算类、位操作类和 控制转移类 等5大类指令。 80C51共有111条指令。 ⑴ 按指令长度分类: 可分为1字节、2字节和3字节指令。 ⑵ 按指令执行时间分类: 可分为1机周、2机周和4机周指令
3.1.3指令系统中的常用符号 (1)#:立即数符。 MOv A#30H #data:8位立即数;#daa16:16位立即数。 (2) direct:8位直接地址 mov A 3AH 代表内RAM0OH~7FH或SFR的80H~FFH (3)@:间接寻址符。 MOV A @RO fH@Ri, @DPTR, @A+PC, @A+DPTR (4)addr11:11位目的地址。 addr16:16位目的地址 (5)rel:带符号的8位偏移地址。 SJMP rel 用于转移指令,其范围是相对于下一条指令第1字节地址 的-128~+127个字节。 (6)bit:位地址。 SETB ACC. 7 代表片内RAM中的可寻址位00H~7FH及SFR中的可寻址位
3.1.3 指令系统中的常用符号 ⑹ bit:位地址。 SETB ACC.7 代表片内RAM中的可寻址位00H~7FH及SFR中的可寻址位。 ⑴ #:立即数符。 MOV A,#30H #data:8位立即数;#data16:16位立即数。 ⑵ direct:8位直接地址 MOV A,3AH 代表内RAM 00H~7FH或SFR的80H~FFH 。 ⑶ @:间接寻址符。 MOV A,@R0 如@Ri,@DPTR,@A+PC,@A+DPTR。 ⑷ addr11:11位目的地址。 addr16:16位目的地址。 ⑸ rel:带符号的8位偏移地址。 SJMP rel 用于转移指令,其范围是相对于下一条指令第1字节地址 的-128~+127个字节
3.1.4寻址方式 寻址就是寻找操作数的地址。 七种寻址方式一条指令可能含多种寻址方式 ◆立即寻址 ◆直接寻址 ◆寄存器寻址 ◆寄存器间接寻址 ◆变址寻址(基址寄存器+变址寄存器间接寻址) ◆相对寻址 ◆位寻址
3.1.4 寻址方式 寻址就是寻找操作数的地址。 七种寻址方式,一条指令可能含多种寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址(基址寄存器+变址寄存器间接寻址) 相对寻址 位寻址