第3章MCS-51单片机指令系统 3.1寻址方式 3.2指令系统 BACK
第3章 MCS - 51单片机指令系统 3.1 寻址方式 3.2 指令系统
条汇编语言指令中最多包含4个区段,如下 所示:[标号:]操作码[操作数][;:注释] 4个区段之间要用分隔符分开:如果操作数有 两个以上,则在操作数之间要用逗号“,隔开(乘法 指令和除法指令除外) 标号代表该指令所存放的第一个字节存储单 元的地址,故标号又称为“符号地址”。 操作码也称“助记符
一条汇编语言指令中最多包含 4 个区段, 如下 所示: [标号:] 操作码 [操作数] [;注释] 4 个区段之间要用分隔符分开: 如果操作数有 两个以上, 则在操作数之间要用逗号“,”隔开 (乘法 指令和除法指令除外 )。 标号代表该指令所存放的第一个字节存储单 元的地址,故标号又称为“符号地址” 。 操作码也称“助记符”
1.单字节指令(49条) 单字节指令格式由8位二进制编码表示,例如 CLRA→→E4H 2.双字节指令(45条) 双字节指令格式由两个字节组成,操作码和操作数,例如: MOvA,#10H→74H10H 3.三字节指令(17条) 三字节指令格式中,第一个字节为操作码,后两个字节为 操作数,例如: MOV 40H. #30H-75H 40H 30H 从执行时间看:单周期64条,双周期45条,四周期2条
1. 单字节指令 (49条) 单字节指令格式由8位二进制编码表示,例如: CLR A→E4H 2. (45条) 双字节指令格式由两个字节组成, 操作码和操作数, 例如: MOV A, #10H→74H 10H 3. (17条) 三字节指令格式中, 第一个字节为操作码, 后两个字节为 操作数,例如: MOV 40H, #30H→75H 40H 30H 从执行时间看:单周期64条,双周期45条,四周期2条
3寻址方式 所谓寻址方式,就是寻找操作数地址的方 式,在用汇编语言编程时,数据的存放、传送、 运算都要通过指令来完成。编程者必须自始 至终都要十分清楚操作数的位置,以及如何将 它们传送到适当的寄存器去参与运算。每 种计算机都具有多种寻址方式。寻址方式的 多少是反映指令系统优劣的主要指标之一
3.1 寻址方式 所谓寻址方式, 就是寻找操作数地址的方 式, 在用汇编语言编程时, 数据的存放、传送、 运算都要通过指令来完成。 编程者必须自始 至终都要十分清楚操作数的位置, 以及如何将 它们传送到适当的寄存器去参与运算。每一 种计算机都具有多种寻址方式。寻址方式的 多少是反映指令系统优劣的主要指标之一
在MCS-51单片机指令系统中,有以下7种寻址方式 (1)立即寻址 (2)直接寻址; (3)寄存器寻址 (4)寄存器间接寻址 (5)基址寄存器加变址寄存器间接寻址; (6)相对寻址; (7)位寻址
在 MCS -51单片机指令系统中,有以下 7种寻址方式: (1) 立即寻址; (2) 直接寻址; (3) 寄存器寻址; (4) 寄存器间接寻址; (5) 基址寄存器加变址寄存器间接寻址; (6) 相对寻址; (7) 位寻址
立即寻址 立即寻址方式是指操作数包含在指令字节中。跟在指令 操作码后面的数就是参加运算的数,该操作数称为立即数。 立即数有一字节和二字节两种可能,例如指令: MOV A# 3AH MOV DPTR +t ODFFFH 上述两条指令均为立即寻址方式,第一条指令的功能是将 立即数3AH送累加器A中,第二条指令的功能是将立即数 0 DFFFH送数据指针DPTR中(0DFH→DPH,0FH→DPL)
1. 立即寻址方式是指操作数包含在指令字节中。 跟在指令 操作码后面的数就是参加运算的数, 该操作数称为立即数。 立即数有一字节和二字节两种可能,例如指令: MOV A, # 3AH MOV DPTR, # 0DFFFH 上述两条指令均为立即寻址方式, 第一条指令的功能是将 立即数 3AH送累加器A中, 第二条指令的功能是将立即数 0DFFFH送数据指针DPTR中(0DFH→DPH, 0FFH→DPL)
2.直接寻址 在指令中直接给出操作数的地址,这种寻址方式就属于直 接寻址方式。在这种方式中,指令的操作数部分直接是操作数 的地址。 在MCS-51单片机指令系统中,直接寻址方式中可以访问 3种存储器空间: (1)内部数据存储器的低128个字节单元(00H~7FH)。 (2)特殊功能寄存器。特殊功能寄存器只能用直接寻址方 式进行访问。 (3)位地址空间
2. 在指令中直接给出操作数的地址, 这种寻址方式就属于直 接寻址方式。在这种方式中, 指令的操作数部分直接是操作数 的地址。 在MCS -51 单片机指令系统中, 直接寻址方式中可以访问 3 种存储器空间: (1) 内部数据存储器的低128 个字节单元(00H~7FH)。 (2) 特殊功能寄存器。 特殊功能寄存器只能用直接寻址方 式进行访问。 (3) 位地址空间
3.寄存器寻址 在该寻址方式中,参加操作的数存放在 寄存器里。寄存器包括8个工作寄存器R0~ R7,累加器A,寄存器B、数据指针DPTR和 布尔处理器的位累加器Cy
3. 在该寻址方式中, 参加操作的数存放在 寄存器里。寄存器包括8个工作寄存器R0~ R7, 累加器A, 寄存器B、数据指针DPTR和 布尔处理器的位累加器Cy
4.寄存器间接寻址 指令中给出间接寻址寄存器,其内容为操作数的地址。寻址 内部RAM区的数据时,可使用寄存器R0、R1(、SP)作为地址 指针;当访问外部RAM时,可使用R0、R1及DPTR作为地址指针 寄存器间接寻址符号为“a”,例如: MOV A, RO RO 内部RAM 30H A 30H 20H 20H
4. 寄存器间接寻址 指令中给出间接寻址寄存器,其内容为操作数的地址。寻址 内部RAM区的数据时,可使用寄存器R0、R1 (、SP)作为地址 指针; 当访问外部RAM时, 可使用R0、 R1及DPTR作为地址指针。 寄存器间接寻址符号为“@”,例如:
5.基址寄存器加变址寄存器间接寻址 这种寻址方式用于访问程序存储器中的数据表 格,它以基址寄存器DPTR或PC的内容为基本地址, 加上变址寄存器A的内容作为操作数的地址,例如: MOVC AaA+DPTR MOVC A, @A+PC JMP@A+DPTR;散转指令
5. 这种寻址方式用于访问程序存储器中的数据表 格, 它以基址寄存器DPTR或PC的内容为基本地址, 加上变址寄存器A的内容作为操作数的地址, 例如: MOVC A, @A+DPTR MOVC A, @ A+PC JMP @A+DPTR