第3章MCS-51指令系统 本章介绍MCS-51单片机的指令格式 和寻址方式,讲述数据传送、算术运算 逻辑运算及移位、位操作、控制转移指令, 我们应对常用的指令熟练掌握,以便为程 序设计打下必要的基础
第3章 MCS-51指令系统 本章介绍MCS-51单片机的指令格式 和寻址方式,讲述数据传送、算术运算、 逻辑运算及移位、位操作、控制转移指令, 我们应对常用的指令熟练掌握,以便为程 序设计打下必要的基础
3.1机器语言、汇编语言、C语言 机器语言:计算机能直接识别的是由0和 1编码组成的指令,这种编码称机器码,或 称为机器语言指令。 汇编语言:用助记符和专门的语言规贝 表示指令的功能和特征指令来编写程序
机器语言:计算机能直接识别的是由0和 1编码组成的指令,这种编码称机器码,或 称为机器语言指令。 汇编语言:用助记符和专门的语言规则 表示指令的功能和特征指令来编写程序。 3.1 机器语言、汇编语言、C语言
C语言是一种通用的计算机程序设计语 言,它既可用来编写计算机的系统程序, 也可用来编写一般的应用程序。C语言具有 以下一些特点: (1)语言简洁,使用方便灵活。 (2)可移植性好。 (3)表达能力强 (4)表达方式灵活 >(5)可进行结构化程序设计。 (6)可以直接操作计算机硬件 (7)生成的目标代码质量高
C语言是一种通用的计算机程序设计语 言,它既可用来编写计算机的系统程序, 也可用来编写一般的应用程序。C语言具有 以下一些特点: ➢(1)语言简洁,使用方便灵活。 ➢(2)可移植性好。 ➢(3)表达能力强。 ➢(4)表达方式灵活。 ➢(5)可进行结构化程序设计。 ➢(6)可以直接操作计算机硬件。 ➢(7)生成的目标代码质量高
3.2寻址方式 MCS-51指令系统有7种寻址方式,每种 方式都有其对应的有效寻址范围(空间)。 寄存器寻址——对选中的寄存器中的数据进行 处理。 ·直接寻址——又称为绝对寻址,按给出的地址 数据直接对存储器单元访问。 立即寻址——直接进行给出的立即数处理。 位寻址—MCS-51共有211个可寻址位
3.2 寻址方式 MCS-51指令系统有7种寻址方式,每种 方式都有其对应的有效寻址范围(空间)。 • 寄存器寻址——对选中的寄存器中的数据进行 处理。 • 直接寻址——又称为绝对寻址,按给出的地址 数据直接对存储器单元访问。 • 立即寻址——直接进行给出的立即数处理。 • 位寻址——MCS-51共有211个可寻址位
寄存器间接寻址——用寄存器中的数 据作存储器的单元地址来访问该存储 单元。 相对寻址——相对寻址方式是为解决程序 转移而专门设置的,为转移指令所采用。 ●基址加变址寄存器间接寻址—用一个基 址(基本地址指针)寄存器和一个偏移量 地址寄存器分别存储基本地址和偏移量地 址,用两者相加形成的数据作为存储单元 的地址来访问该存储单元
• 寄存器间接寻址——用寄存器中的数 据作存储器的单元地址来访问该存储 单元。 • 相对寻址——相对寻址方式是为解决程序 转移而专门设置的,为转移指令所采用。 • 基址加变址寄存器间接寻址——用一个基 址(基本地址指针)寄存器和一个偏移量 地址寄存器分别存储基本地址和偏移量地 址,用两者相加形成的数据作为存储单元 的地址来访问该存储单元
3.2.1寄存器寻址 寄存器寻址方式是对选中寄存器中的数 据进行处理,适用于数据放置在寄存器之 中的情况 MOVR1,B;将寄存器B中的数值送入 到寄存器R1中 ●INCR2 将寄存器R2中的数值加1 ·MO∨A,R7;将寄存器R7中的数值送入 到寄存器A中
3.2.1寄存器寻址 寄存器寻址方式是对选中寄存器中的数 据进行处理,适用于数据放置在寄存器之 中的情况。 • MOV R1,B ;将寄存器B中的数值送入 到寄存器R1中 • INC R2 ;将寄存器R2中的数值加1 • MOV A,R7 ;将寄存器R7中的数值送入 到寄存器A中
3.2.2直接寻址 直接寻址方式是对直接指定地址的存 储器单元中的数据进行处理,适用于数据 放置在可以直接寻址的存储单元之中的情 MOV40H,B;将寄存器B中的数值送入 到内部RAM的40H单元中 ·INC30H;将内部RAM的30H单元中的数 值加1 MOV TL0,R7;将寄存器R7中的数值送 入到特殊功能寄存器TL0中
3.2.2 直接寻址 直接寻址方式是对直接指定地址的存 储器单元中的数据进行处理,适用于数据 放置在可以直接寻址的存储单元之中的情 况。 • MOV 40H,B; 将寄存器B中的数值送入 到内部RAM的40H单元中 • INC 30H;将内部RAM的30H单元中的数 值加1 • MOV TL0 ,R7;将寄存器R7中的数值送 入到特殊功能寄存器TL0中
3.2.3立即寻址 立即寻址是对指令操作码后的数据进 行处理,适用于在程序中直接处理的数据 的情况 MO∨38H,#05H;将数值05H送入到 内部RAM的38H单元中 ADDA,#30H;将A寄存器中的数值 加上30H MOV TH0,#OF2H;将定时器0高8位设 置为数值OF2H
3.2.3 立即寻址 立即寻址是对指令操作码后的数据进 行处理,适用于在程序中直接处理的数据 的情况。 • MOV 38H,#05H;将数值05H送入到 内部RAM的38H单元中 • ADD A,#30H ; 将A寄存器中的数值 加上30H • MOV TH0,#0F2H;将定时器0高8位设 置为数值0F2H
3.2.4位寻址方式 MCS-51单片机有位处理功能,可以 对数据位进行操作。 MOVC,40H;把40H位的值送进位位C 位寻址的寻址范围包括: 内部RAM中的位寻址区单元地址为20H 2FH,共16个单元,128个位,位地址是 00H-7FH。 特殊功能寄存器中的可寻址位可供位寻址 的特殊功能寄存器共有11个,实际有寻址 位83个
3.2.4 位寻址方式 MCS-51单片机有位处理功能,可以 对数据位进行操作。 MOV C,40H;把40H位的值送进位位C 位寻址的寻址范围包括: ➢内部RAM中的位寻址区 单元地址为20H- 2FH,共16个单元,128个位,位地址是 00H-7FH。 ➢特殊功能寄存器中的可寻址位 可供位寻址 的特殊功能寄存器共有11个,实际有寻址 位83个
特殊功能寄存器中的可寻址位在指令 中用如下4种方法表示: >(1)直接使用位地址。例如,PSW寄存器位 5的地址为0D5H >(2)位名称的表示方法。例如,PSW寄存器 位5是F0标志位,则可使用F0表示该位 (3)字节地址加位数的表示方法。例如, 0D0单元(即PSW寄存器)位5,表示为 (0D0H).5 >(4)特殊功能寄存器符号加位数的表示方法
特殊功能寄存器中的可寻址位在指令 中用如下4种方法表示: ➢(1)直接使用位地址。例如,PSW寄存器位 5的地址为0D5H。 ➢(2)位名称的表示方法。例如,PSW寄存器 位5是F0标志位,则可使用F0表示该位。 ➢(3)字节地址加位数的表示方法。例如, 0D0单元(即PSW寄存器)位5,表示为 (0D0H).5 ➢(4)特殊功能寄存器符号加位数的表示方法