第3章80C51的指令系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

另一类直接寻 址是转移目标地 址的寻址。如: LJMP ADDR16
操作数 在50H单元
50H
3AH
E5H 50H
MOV A,50H
RAM
3AH
ACC
ROM
SFR
2021/6/23
15
❖ 定义:将操作数的地址直接存放在指令中,这种 寻址方式称为直接寻址。
❖ 特点:指令中含有操作数的地址。该地址指出了 参与操作的数据所在的字节单元地址或位地址。 计算机执行它们时便可根据直接地址找到所需要 的操作数。
第3章 80C51的指令系统
3.1 指令格式及常用符号
3.2 80C51的寻址方式
3.3 数据传送指令
(29条)
3.4 算数运算指令
(24条)
3.5 逻辑运算与循环类指令(24条)
3.6 控制转移类指令
) 3.7 位操作类指令
(17条 (17条)
2021/6/23
1
❖ 指令:CPU按照人们的意图来完成某种操作的命令。
24
❖ 定义:将程序计数器PC的当前值(取出本条指令后的PC 值)与指令第二个字节给出的偏移量(rel)相加,形成 新的转移目标地址。称为相对寻址方式。
❖ 特点:相对寻址方式是为实现程序的相对转移而设计的, 为相对转移指令所使用,其指令码中含有相对地址偏移量, 能生成浮动代码。
❖ 如: SJMP rel
寻址范围:只能对程序存储器ROM进行寻址,主要用于 查表性质的访问。
2021/6/23
22
注意:累加器A中存放的操作数地址相对基地址的 偏 移 量 的 范 围 为 00H ~ FFH ( 无 符 号 数 ) 。 MCS-51单片机共有以下三条变址寻址指令:
MOVC A, @A+PC MOVC A, @A+DPTR JMP @A+DPTR
30H R0
30H
5AH
E6H MOV A,@R0
RAM R0中的内容为
操作数的地址
5AH
ACC
ROM
SFR
2021/6/23
17
定义:指令给出的寄存器中存放的是操作数据的单元地址。 这种寻址方式称为寄存器间接寻址,简称为寄存器间址。
特点:指令给出的寄存器中存放的是操作数地址。寄存器间 接寻址是一种二次寻找操作数地址的寻址方式,寄存器前 边必须加前缀符号“@”。不能用于寻址特殊功能寄存器 SFR。
30H R0
操作数 在R0
RAM
30H
ACC
ROM
SFR
2021/6/23
13
❖ 定义:操作数存放在MCS-51内部的某个工作寄 存器Rn(R0~R7)或部分专用寄存器中,这种 寻址方式称为寄存器寻址。
❖ 特点:由指令指出某一个寄存器的内容作为操作 数。存放操作数的寄存器在指令代码中不占据单 独的一个字节,而是嵌入(隐含)到操作码字节 中。
❖ (3)位操作指令丰富。
2021/6/23
4
3.1 指令格式及常用符号
❖ 机器指令:计算机能直接识别和执行的指令。 ❖ 机器指令由两部分组成,即操作码和操作数。
操作码用来规定指令进行什么操作 操作数则是指令操作的对象
2021/6/23
5
3.1 指令格式及常用符号
3.1.1 机器指令的字节编码形式
00H
JC rel
原PC值 字节数
40H 1000H
RAM
75H
当前PC值
1002H=1000H+02H
+
75H 偏移量
1077H
跳转到新PC处取指 10000000 PSW
注意:此例中CY(PSW.7)为1
ROM
SFR
Rel常用符号地址表示,离源地址不要超过(-128~+127 )
2021/6/23
址。代表该条指令在程序编译时的具体地址。 ❖ 操作码:又称助记符,它是由对应的英文缩写构成的,是
指令语句的关键。它规定了指令具体的操作功能,描述指 令的操作性质,是一条指令中不可缺少的内容。 ❖ 操作数:它既可以是一个具体的数据,也可以是存放数据 的地址。 ❖ 注释:注释也是指令语句的可选项,它是为增加程序的可 读性而设置的,是针对某指令而添加的说明性文字,不产 生可执行的目标代码。
寻址范围:内部RAM低128B(只能使用R0或R1作间址寄 存器)、外部RAM(只能使用DPTR作间址寄存器)。对 于外部低256单元RAM的访问,除可以使用DPTR外,还 可以使用R0或R1作间址寄存器。
2021/6/23
18
3.2.4 立即寻址
操作数在指令编码中 寻址空间: ROM
【例】执行MOV A,#50H 结果:(A)=50H
240FH
00H DPL 24H DPH
0FH 88H
ACC
ROM
SFR
变址寻址还用于跳转指令,如JMP @A+DPTR
2021/6/23
21
定义:操作数存放在变址寄存器(累加器A)和基址寄存器 (DPTR或PC)相加形成的16位地址单元中。这种寻址方 式称为基址加变址寄存器间接寻址,简称为变址寻址。
单字节指令(49条)
8位编码仅为操作码 位号 字节
如:INC A 编码为:
76543210 opcode
0 0 0 0 0 1 0 0 即:04H
8位编码含操作码和寄存器编码 位号 7 6 5 4 3 2 1 0
如:MOV A,R0 编码为:
字节 opcode r r r
1 1 1 0 1 0 0 0 即:E8H
字(Word):通常由16位二进制数码组成,即1Word=2Byte。
字长:字长是指计算机一次处理二进制数码位的多少。MCS-51型 单片机是8位机,所以说它的字长为8位。
MCS-51系列单片机都是以Intel公司最早的典型产品8051为核 心,增加了一定的功能部件后构成的。本章以8051为主介绍 MCS-51系列单片机 。
计算机执行程序实际上是在不断寻找操作数并进行操作的过 程。
每种计算机在设计时已决定了它具有哪些寻址方式,寻址方 式越多,计算机的灵活性越强,指令系统也就越复杂。
MCS-51单片机的指令系统提供了7种寻址方式,分别为立即 寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻 址、相对寻址和位寻址。一条指令可能含多种寻址方式。
❖ 指令系统:一台计算机所能识别、执行的指令的集合就是 它的指令系统。
机器语言:指令系统是一套控制计算机执行操作的二进制 编码,称为机器语言。机器语言指令是计算机惟一能识别 和执行的指令。
汇编语言:指令系统是利用指令助记符来描述的,称为汇 编语言。
计算机的指令系统一般都是利用汇编语言描述的,是 由计算机硬件设计所决定的。指令系统没有通用性。
单片机一般是空机,未含任何系统软件。因此在第一 次使用前,必须对其进行编程
2021/6/23
2
常用单位与术语
位(bit):位是计算机所能表示的最小的、最基本的数据单位,位 通常是指一个二进制位。
字 节 ( Byte ) : 一 个 连 续 的 8 位 二 进 制 数 码 称 为 一 个 字 节 , 即 1Byte=8bit。
特 点 : 指 令 操 作 码 中 隐 含 作 为 基 址 寄 存 器 用 的 DPTR ( 或 PC )和作为变址用的累加器A。在执行变址寻址指令时, MCS-51单片机先把基地址( DPTR或PC 的内容)和地 址偏移量(A的内容)相加,以形成操作数地址,再由操 作数地址找到操作数,并完成相应的操作。变址寻址方式 是单字节指令。
00H
74H 50H
MOV A,#50H
RAM
操作码后紧跟 操作数50H
ROM
50H ACC SFR
对于MOV DPTR,#2100H指令,立即数高8位“21H”装入DPH
2021/6/23
19
定义:将立即参与操作的数据直接写在指令中,这 种寻址方式称为立即寻址。
特点:指令中直接含有所需的操作数。该操作数可 以是8位的,也可以是16位的,常常处在指令的 第二字节和第三字节的位置上。立即数通常使用 #data或#data16表示,在立即数前面加“#”标 志,用以和直接寻址中的直接地址(direc或bit) 相区别。
❖ 寻址范围:ROM、片内RAM区、SFR和位地址 空间。
2021/6/23
16
3.2.3 寄存器间接寻址
寄存器中的内容是操作数的地址
寻址空间:
【例】若(R0)=30H,(30H)=5AH
片内RAM(@Ri、SP) 片外RAM(@Ri、@DPTR)
执行MOV A,@R0后,(A)=5AH
片内:MOV 片外:MOVX
2021/6/23
10
((X)):表示由X间接寻址单元中的内容。 ←:表示指令的操作结果是将箭头右边的内容传送到左边。 →:表示指令的操作结果是将箭头左边的内容传送到右边。 ∨、 ∧、 ⊕ :表示逻辑或、与、异或。
2021/6/23
11
3.2 80C51的寻址方式
寻址方式:在计算机中,说明操作数所在地址的方法称为指 令的寻址方式。
如:MOV 20H,#50H
01110101 01000000 01010000
编码为:
即:75H 20H 50H
2021/6/23
7
3.1.2 符号指令的书写格式
❖ 指令格式:指令的表示方式称为指令格式,它规定了指令 的长度和内部信息的安排。完整的指令格式如下:
❖ [标号:] 操作码 [目的操作数] [,源操作数] [;注释] ❖ 其中:[ ]项是可选项。 ❖ 标号:指本条指令起始地址的符号,也称为指令的符号地
2021/6/23
8
3.1.2 符号指令的书写格式
注意:
操作助记符不能缺少 操作数个数可为:1、2、3个 2个操作数的指令,目的操作数在左边
ANL A,#40H
2021/6/23
9
描述符号
Rn(n=0~7)-当前工作寄存器组中的寄存器R0~R7之一 Ri(i=0,1)-当前工作寄存器组中的寄存器R0或R1 @ ----------间址寄存器前缀 #data ------8位立即数/ #data16-----16位立即数 direct------片内低128个RAM单元地址及SFR地址 addr11------11位目的地址 addr16------16位目的地址 rel---------8位地址偏移量,范围:-128~+127 bit---------片内RAM位地址、SFR的位地址 (×)------表示 × 地址单元或寄存器中的内容 / ----------位操作数的取反操作前缀
2021/6/23
3
❖ MCS-51的基本指令共111条,按指令所占的字节来 分:
❖ (1) 执行时间短。1个机器周期(12个时钟振荡 周期)的指令64条;2个机器周期(24个时钟振荡 周期)的指令45条; 只有乘、除两条指令的执行 时间为4个机器周期(48个时钟振荡周期)。
❖ (2)指令编码字节少。单字节指令49条;双字节 指令45条;三字节指令17条。
2021/6/23
12
寻址方式:寻找(源)操作数或指令转移地址的方式 80C51单片机有7种寻址方式
3.2.1 寄存器寻址
【例】若(R0)=30H,
操作数在寄存器中 寻址空间: R0~R7、A、B(AB形式) 和DPTR
特点: 传送和执行速度快
执行MOV A,R0后,(A)=30H
00H
E8H
MOV A,R0
;(A)←(A)+(PC)+1 ;(A)←(A)PTR)
2021/6/23
23
3.2.6 相对寻址
用于跳转指令,实现程序分支
【例】若rel为75H,PSW.7为1,JC rel存于1000H开始的单元。 执行JC rel指令后,程序将跳转到1077H单元取指令并执行。
; (PC)←(PC) + 2 + rel
❖ 寻址范围:四组通用寄存器Rn(R0~R7)、部 分专用寄存器( A, B, DPTR, Cy )。
2021/6/23
14
3.2.2 直接寻址
操作码后字节存放的是操作数的地址
寻址空间: 片内RAM低128字节 SFR(符号形式)
【例】若(50H)=3AH , 执行MOV A,50H后,(A)=3AH
2021/6/23
20
3.2.5 变址寻址
操作数地址:基地址+偏移量 寻址空间: ROM
执行MOV A,@A+DPTR”后 结果:(A)=88H
00H
【例】(A)=0FH (DPTR)=2400H
93H MOVC A,@A+DPTR 240FH单元的内 容88H为操作数 +
88H 240FH
RAM
2021/6/23
6
双字节指令(45条)
位号 字节
76543210 opcode
data或direct
如:MOV A,#50H 编码为:
0 1 1 1 0 1 0 0 即:74H
01010000
50H
三字节指令(17条)
位号 字节
76543210
opcode data或direct data或direct
相关文档
最新文档