第3章MCS-51单片机的指令系统 本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析 本章采用简单例程讲解解汇编语言指令功能
1 第3章 MCS-51单片机的指令系统 本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析 本章采用简单例程讲解解汇编语言指令功能
31指令格式 指令:即命令,人们给计算机的命令 指令有两种表示方式: 机器码——机器语言(机器能直接识别) 助记符——汇编语言(供设计人员使用) 机器码和助记符一一对应,汇编语言可汇编为机器语 言,机器语言可反汇编为汇编语言
2 3.1 指令格式 指令:即命令, 人们给计算机的命令 指令有两种表示方式: 机器码——机器语言(机器能直接识别) 助记符——汇编语言(供设计人员使用) 机器码和助记符一一对应,汇编语言可汇编为机器语 言,机器语言可反汇编为汇编语言
书31指令格式 汇编语言格式: [标号:]操作码助记符[操作数];[注释] START:MOVA,#20H;把数20H送入累加器A中 INC A (A)加
3 START : MOV A , #20H ; 把数20H送入累加器A 中 INC A ; (A)加一 3.1 指令格式 汇编语言格式: [标号:] 操作码助记符 [操作数] ;[注释]
3.1指令格式 汇编语言指令的形式: (1)没有操作数: RET RETI NOP (2)有1个操作数: INC A. DEC 20H CLR C. SJMP NEXT (3)有2个操作数: MOVRZ, #DATA. ADDA, RO. DJNZ R2, LOOP (4)有3个操作数: CNE A #20H neQ
3.1 指令格式 汇编语言指令的形式: (1)没有操作数: RET,RETI,NOP (2)有1个操作数: INC A,DEC 20H,CLR C,SJMP NEXT (3)有2个操作数: MOV R7, #DATA,ADD A, R0, DJNZ R2, LOOP (4)有3个操作数: CJNE A, #20H, NEQ 4
3.1指令格式 机器语言的形式: (1)单字节指令 INC DPTR指令机器代码:A3 ADDA,R7指令机器代码:2F (2)双字节指令 SUBB A,2BH指令机器代码:952B ORLC,/2TH指令机器代码:A027 (3)三字节指令: MOV20H,#00H指令机器代码:752000 JMP2000H指令机器代码:022000
5 3.1 指令格式 机器语言的形式: (1)单字节指令 : INC DPTR 指令机器代码:A3 ADD A, R7 指令机器代码:2F (2) 双字节指令 : SUBB A, 2BH 指令机器代码:95 2B ORL C, /27H 指令机器代码:A0 27 (3)三字节指令: MOV 20H, #00H 指令机器代码: 75 20 00 LJMP 2000H 指令机器代码: 02 20 00
3.2MCS51单片机的寻址方式 寻址方式:CPU执行指令时获取操作数的方式 MCS-51单片机有7种不同的寻址方式: (1)立即寻址方式 (2)直接寻址方式 (3)寄存器寻址方式 (4)寄存器间接寻址方式 (5)变址寻址方式 (6)位寻址方式 (刀)相对寻址方式
6 3.2 MCS-51 单片机的寻址方式 寻址方式 :CPU执行指令时获取操作数的方式 MCS-51单片机有7种不同的寻址方式 : (1)立即寻址方式 (2)直接寻址方式 (3)寄存器寻址方式 (4)寄存器间接寻址方式 (5)变址寻址方式 (6)位寻址方式 (7)相对寻址方式
3.2MCS-51单片机的寻址方式 (1)立即寻址方式:在指令中直接给出了参与运算 的操作数。 MOVA,#20H (2)直接寻址方式:指令中给出了参与运算的操作 数所在单元的地址或所在位的位地址 MOVA 20H MOV 27H.1, C 直接寻址方式的使用范围: 1)单元地址:00~7FH、21个SFR 2)对SFR的访问只能采用直接寻址方式
7 3.2 MCS-51 单片机的寻址方式 (1)立即寻址方式:在指令中直接给出了参与运算 的操作数。 MOV A , #20H (2)直接寻址方式:指令中给出了参与运算的操作 数所在单元的地址或所在位的位地址 MOV A , 20H MOV 27H.1, C 直接寻址方式的使用范围: 1)单元地址 : 00~7FH 、21个SFR 2)对SFR的访问只能采用直接寻址方式
32MC-51单片机的寻址方式 (3)寄存器寻址方式 指令指出了参与运算的操作数所在的寄存器 MOVA. RO 寄存器寻址方式中的寄存器 1)工作(通用)寄存器R0~R7、DPTR 2)累加器A、寄存器B(仅在乘除法时)和布 尔累加器C
8 3.2 MCS-51 单片机的寻址方式 (3)寄存器寻址方式 指令指出了参与运算的操作数所在的寄存器。 MOV A , R0 寄存器寻址方式中的寄存器 : 1)工作(通用)寄存器R0~R7 、DPTR 2)累加器A、寄存器B(仅在乘除法时)和布 尔累加器C
32MCS51单片机的寻址方式 (4)寄存器间接寻址方式 在指令中,指出了存放参与运算的操作数所在单元地 址的寄存器。 MOV A, aRO 1001 Rom u ←MOVA,@R0 A LRAM L 操作数在哪儿? 找数! CPU 它的地址在R0中 得到地址了! 1100110 (A)地址在(R0) 地址寄存器
9 (4)寄存器间接寻址方式 在指令中,指出了存放参与运算的操作数所在单元地 址的寄存器。 MOV A,@R0 3.2 MCS-51单片机的寻址方式 地址寄存器 CPU ? !! 操作数在哪儿? 它的地址在R0中 RAM 得到地址了! 找数! ROM A MOV A,@R0 11100110 11100110 1110011 (A) 0 地址在(R0)
32MCS51单片机的寻址方式 可以作为地址寄存器的寄存器: 把存放操作数地址的寄存器称为地址寄存器。 可作为地址寄存器的寄存器:R0、R1、DPTR、SP(隐含) 在指令中表示为aR0、@R1、@DPTR 寄存器间接寻址方式寻址范围: 1)片内RAM:00~7FH; 地址寄存器:@R0、aR1 2)片外RAM:0000FFFH; 地址寄存器:@R0、@R1、@DPTR
10 3.2 MCS-51 单片机的寻址方式 可以作为地址寄存器的寄存器: 把存放操作数地址的寄存器称为地址寄存器。 可作为地址寄存器的寄存器:R0、R1、DPTR、SP(隐含) 在指令中表示为@R0、@R1、 @DPTR 寄存器间接寻址方式寻址范围: 1)片内RAM:00~7FH; 地址寄存器:@R0、@R1 2)片外RAM:0000~FFFFH; 地址寄存器:@R0、@R1、@DPTR