MCS-51单片机指令系统与汇编语言程序设计PPT.ppt
《MCS-51单片机指令系统与汇编语言程序设计PPT.ppt》由会员分享,可在线阅读,更多相关《MCS-51单片机指令系统与汇编语言程序设计PPT.ppt(61页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第2 2章章 MCS-51MCS-51单片机指令系统单片机指令系统与汇编语言程序设计与汇编语言程序设计主要内容:主要内容:MCS-51MCS-51单片机指令系统的寻址方式、指令系单片机指令系统的寻址方式、指令系统、基本程序结构及汇编语言的开发和调试。统、基本程序结构及汇编语言的开发和调试。重点重点在于寻址方式、各种指令的应用、程序设在于寻址方式、各种指令的应用、程序设计的规范、程序设计的思想及典型程序的理解和掌计的规范、程序设计的思想及典型程序的理解和掌握。握。难点难点在于控制转移、位操作指令的理解及各种在于控制转移、位操作指令的理解及各种指令的灵活应用,以及程序设计的基本方法和针对指令的灵
2、活应用,以及程序设计的基本方法和针对具体的硬件设计出最合理的软件。具体的硬件设计出最合理的软件。指令系统:指令系统:一台计算机所能识别、执行的指令的集合就是它的指令系统。一台计算机所能识别、执行的指令的集合就是它的指令系统。机器语言:机器语言:指令系统是一套控制计算机执行操作的二进制编码,称为机指令系统是一套控制计算机执行操作的二进制编码,称为机器语言。机器语言指令是计算机惟一能识别和执行的指令。器语言。机器语言指令是计算机惟一能识别和执行的指令。汇编语言:汇编语言:指令系统是利用指令助记符来描述的,称为汇编语言。指令系统是利用指令助记符来描述的,称为汇编语言。计算机的指令系统一般都是利用汇编
3、语言描述的,是由计算机的指令系统一般都是利用汇编语言描述的,是由计算机硬件设计所决定的。指令系统没有通用性。计算机硬件设计所决定的。指令系统没有通用性。单片机一般是空机,未含任何系统软件。因此在第一次单片机一般是空机,未含任何系统软件。因此在第一次使用前,必须对其进行编程,使用前,必须对其进行编程,2.1 2.1 概述概述 2.1.1 2.1.1 汇编语言指令格式与伪指令汇编语言指令格式与伪指令 1 1常用单位与术语常用单位与术语 位位(bitbit):位位是是计计算算机机所所能能表表示示的的最最小小的的、最最基基本本的的数数据据单单位,位通常是指一个二进制位。位,位通常是指一个二进制位。字字
4、节节(ByteByte):一一个个连连续续的的8位位二二进进制制数数码码称称为为一一个个字字节节,即即1Byte=8bit。字字(WordWord):通通 常常 由由 16位位 二二 进进 制制 数数 码码 组组 成成,即即1Word=2Byte。字长:字长:字长是指计算机一次处理二进制数码位的多少。字长是指计算机一次处理二进制数码位的多少。MCS-51型单片机是型单片机是8位机,所以说它的字长为位机,所以说它的字长为8位。位。MCS-51系列单片机都是以系列单片机都是以Intel公司最早的典型产品公司最早的典型产品8051为核心,增加了一定的功能部件后构成的。本章以为核心,增加了一定的功能部
5、件后构成的。本章以8051为主介绍为主介绍MCS-51系列单片机系列单片机。2 2汇编语言指令格式汇编语言指令格式 指指令令格格式式:指指令令的的表表示示方方式式称称为为指指令令格格式式,它它规规定定了了指指令令的的长长度度和和内内部部信息的安排。信息的安排。完整的指令格式如下:完整的指令格式如下:标号标号:操作码操作码 操作数操作数,操作数操作数;注释注释 其中:其中:项是可选项。项是可选项。标标号号:指指本本条条指指令令起起始始地地址址的的符符号号,也也称称为为指指令令的的符符号号地地址址。代代表表该该条条指指令在程序编译时的具体地址。令在程序编译时的具体地址。操操作作码码:又又称称助助记
6、记符符,它它是是由由对对应应的的英英文文缩缩写写构构成成的的,是是指指令令语语句句的的关关键键。它它规规定定了了指指令令具具体体的的操操作作功功能能,描描述述指指令令的的操操作作性性质质,是是一一条条指指令令中中不不可可缺少的内容。缺少的内容。操作数:操作数:它既可以是一个具体的数据,也可以是存放数据的地址。它既可以是一个具体的数据,也可以是存放数据的地址。注注释释:注注释释也也是是指指令令语语句句的的可可选选项项,它它是是为为增增加加程程序序的的可可读读性性而而设设置置的的,是针对某指令而添加的说明性文字,不产生可执行的目标代码。是针对某指令而添加的说明性文字,不产生可执行的目标代码。伪指令
7、(也称为汇编程序的控制命令)是程序员发给汇编程伪指令(也称为汇编程序的控制命令)是程序员发给汇编程序的命令,用来设置符号值、保留和初始化存储空间、控制用序的命令,用来设置符号值、保留和初始化存储空间、控制用户程序代码的位置。户程序代码的位置。伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制信息,不产生可执行的目标代码,是制信息,不产生可执行的目标代码,是CPUCPU不能执行的指令。不能执行的指令。(1 1)定位伪指令)定位伪指令ORGORG 格式:格式:ORG nORG n 其中:其中:n n通常为绝对地址,可以是十六进制数、标号或表达
8、式。通常为绝对地址,可以是十六进制数、标号或表达式。功能:功能:规定编译后的机器代码存放的起始位置。在一个汇编语规定编译后的机器代码存放的起始位置。在一个汇编语言源程序中允许存在多条定位伪指令,但每一个言源程序中允许存在多条定位伪指令,但每一个n n值都应和前面值都应和前面生成的机器指令存放地址不重叠。生成的机器指令存放地址不重叠。例如程序:例如程序:ORG1000H START:MOVA,#20H MOVB,#30H 3伪指令伪指令(2 2)结束汇编伪指令)结束汇编伪指令ENDEND 格式:格式:标号标号:END 表达式表达式 功功能能:放放在在汇汇编编语语言言源源程程序序的的末末尾尾,表表
9、明明源源程程序序的的汇汇编编到到此此结束,其后的任何内容不予理睬。结束,其后的任何内容不予理睬。(3 3)赋值伪指令)赋值伪指令EQUEQU 格式:格式:字符名称字符名称x EQU 赋值项赋值项n 功功能能:将将赋赋值值项项n的的值值赋赋予予字字符符名名称称x。程程序序中中凡凡出出现现该该字字符符名名称称x就就等等同同于于该该赋赋值值项项n,其其值值在在整整个个程程序序中中有有效效。赋赋值值项项n可可以以是常数、地址、标号或表达式。在使用时,必须先赋值后使用。是常数、地址、标号或表达式。在使用时,必须先赋值后使用。“字符名称字符名称”与与“标号标号”的区别是的区别是“字符名称字符名称”后无冒号
10、,后无冒号,而而“标号标号”后面有冒号。后面有冒号。(4 4)定义字节伪指令)定义字节伪指令DBDB 格式:格式:标号标号:DB x1,x2,xn 功功能能:将将8位位数数据据(或或8位位数数据据组组)x1,x2,xn顺顺序序存存放放在在从从当当前前程程序序存存储储器器地地址址开开始始的的存存储储单单元元中中。xi可可以以是是8位位数数据据、ASCII码码、表表达达式式,也也可可以以是是括括在在单单引引号号内内的的字字符符串串。两两个个数数据据之之间间用用逗号逗号“,”分隔。分隔。xi为数值常数时,取值范围为为数值常数时,取值范围为00HFFH。xi为为ASCII码时,码时,要使用单引号要使用
11、单引号,以示区别。,以示区别。xi为字符串常数时,其长度不应为字符串常数时,其长度不应超过超过80个字符。个字符。(5 5)定义双字节伪指令)定义双字节伪指令DWDW 格式:格式:标号标号:DW x1,x2,xn 功能:功能:将双字节数据将双字节数据或双字节数据组或双字节数据组顺序存放在从标号指定顺序存放在从标号指定地址单元开始的存储单元中。其中,地址单元开始的存储单元中。其中,xi为为16位数值常数,占两个位数值常数,占两个存储单元,先存高存储单元,先存高8位(存入低位地址单元中),后存低位(存入低位地址单元中),后存低8位(存位(存入高位地址单元中)。入高位地址单元中)。(6 6)预留存储
12、空间伪指令)预留存储空间伪指令DS DS 格式:格式:标号标号:DS n 功能:功能:从标号指定地址单元开始,预留从标号指定地址单元开始,预留n个存储单元,汇编时不对这些存个存储单元,汇编时不对这些存储单元赋值。储单元赋值。n可以是数据,也可以是表达式。可以是数据,也可以是表达式。P39P39例例 (7 7)定义位地址符号伪指令)定义位地址符号伪指令BITBIT 格式:格式:字符名称字符名称x BIT 位地址位地址n 功能:功能:将位地址将位地址n的值赋予字符名称的值赋予字符名称x。程序中凡出现该字符名称。程序中凡出现该字符名称x就代就代表该位地址。位地址表该位地址。位地址n可以是绝对地址,也
13、可以是符号地址。可以是绝对地址,也可以是符号地址。(8 8)数据地址赋值伪指令)数据地址赋值伪指令DATADATA 格式:格式:字符名称字符名称x DATA 表达式表达式n 功能:功能:把表达式把表达式n的值赋值给左边的字符名称的值赋值给左边的字符名称x。n可以是数据或地址,可以是数据或地址,也可以是包含所定义的也可以是包含所定义的“字符名称字符名称x”在内的表达式,但不能是汇编符号。在内的表达式,但不能是汇编符号。DATA与与EQU的主要区别是:的主要区别是:EQU定义的定义的“字符名称字符名称”必须先定义必须先定义后使用,而后使用,而DATA定义的定义的“字符名称字符名称”没有这种限制。所
14、以,没有这种限制。所以,DATA伪指令伪指令通常用在源程序的开头或末尾。通常用在源程序的开头或末尾。2.1.2 指令的分类指令的分类 MCS-51MCS-51指令系统有指令系统有111111条指令,可按下列几种方式分类:条指令,可按下列几种方式分类:1.1.按指令字节数分类按指令字节数分类 单单字字节节指指令令(4949条条)、双双字字节节指指令令(4646条条)和和三三字字节节指令(指令(1616条)。条)。2.2.按指令执行时间分类按指令执行时间分类 单单机机器器周周期期指指令令(6565条条)、双双机机器器周周期期指指令令(4444条条)和四机器周期指令(和四机器周期指令(2 2条)。条
15、)。3.3.按功能分类按功能分类 数数据据传传送送指指令令(2929条条)、算算术术操操作作指指令令(2424条条)、逻逻辑辑操操作作指指令令(2424条条)、控控制制转转移移指指令令(1717条条)和和位位操操作作指指令(令(1717条)。条)。2.1.3 指令中的常用符号指令中的常用符号 Rn(n=07):表表示示当当前前工工作作寄寄存存器器R0R7中中的的任任一一个个寄存器。寄存器。Ri(i=0或或1):表表示示通通用用寄寄存存器器组组中中用用于于间间接接寻寻址址的的两两个个寄寄存存器器R0,R1。#data:表示表示8位直接参与操作的立即数。位直接参与操作的立即数。#data16:表示
16、表示16位直接参与操作的立即数。位直接参与操作的立即数。direct:表示片内表示片内RAM的的8位单元地址。位单元地址。addr11:表表示示11位位目目的的地地址址,主主要要用用于于ACALL和和AJMP指指令中。令中。addr16:表表示示16位位目目的的地地址址,主主要要用用于于LCALL和和LJMP指指令中。令中。rel:用用补补码码形形式式表表示示的的8位位二二进进制制地地址址偏偏移移量量,取取值值范范围围为为 128+127,主主要要用用于于相相对对转转移移指指令令,以以形形成成转转移移的的目目的的地址。地址。DPTR:数据指针,用于寄存器间接寻址方式和变址寻址方式数据指针,用于
17、寄存器间接寻址方式和变址寻址方式。2.1.3 指令中的常用符号指令中的常用符号 bit:表表示示片片内内RAM的的位位寻寻址址区区,或或者者是是可可以以位位寻寻址址的的SFR的的位地址。位地址。A(或(或ACC)、)、B:表示累加器、表示累加器、B寄存器。寄存器。C:表示表示PSW中的进位标志位中的进位标志位Cy。:在间接寻址方式中,表示间接寻址寄存器指针的前缀标志。在间接寻址方式中,表示间接寻址寄存器指针的前缀标志。$:表示当前的指令地址。表示当前的指令地址。/:在位操作指令中,表示对该位先求反后再参与操作。在位操作指令中,表示对该位先求反后再参与操作。(X):):表示由表示由X所指定的某寄
18、存器或某单元中的内容。所指定的某寄存器或某单元中的内容。(X):表示由表示由X间接寻址单元中的内容。间接寻址单元中的内容。:表示指令的操作结果是将箭头右边的内容传送到左边。表示指令的操作结果是将箭头右边的内容传送到左边。:表示指令的操作结果是将箭头左边的内容传送到右边。表示指令的操作结果是将箭头左边的内容传送到右边。、:表示逻辑或、与、异表示逻辑或、与、异或。或。寻寻址址方方式式:在在计计算算机机中中,说说明明操操作作数数所所在在地地址址的的方方法法称称为为指指令令的寻址方式。的寻址方式。计计算算机机执执行行程程序序实实际际上上是是在在不不断断寻寻找找操操作作数数并并进进行行操操作作的的过程。
19、过程。每每种种计计算算机机在在设设计计时时已已决决定定了了它它具具有有哪哪些些寻寻址址方方式式,寻寻址址方式越多,计算机的灵活性越强,指令系统也就越复杂。方式越多,计算机的灵活性越强,指令系统也就越复杂。MCS-51MCS-51单单片片机机的的指指令令系系统统提提供供了了7 7种种寻寻址址方方式式,分分别别为为立立即即寻寻址址、直直接接寻寻址址、寄寄存存器器寻寻址址、寄寄存存器器间间接接寻寻址址、变变址址寻寻址址、相对寻址和位寻址。一条指令可能含多种寻址方式。相对寻址和位寻址。一条指令可能含多种寻址方式。2.2 MCS-512.2 MCS-51单片机的寻址方式单片机的寻址方式 2.2.1 2.
20、2.1 立即寻址立即寻址 定定义义:将将立立即即参参与与操操作作的的数数据据直直接接写写在在指指令令中中,这这种种寻寻址址方方式称为立即寻址。式称为立即寻址。特特点点:指指令令中中直直接接含含有有所所需需的的操操作作数数。该该操操作作数数可可以以是是8位位的的,也也可可以以是是16位位的的,常常常常处处在在指指令令的的第第二二字字节节和和第第三三字字节节的的位位置置上上。立立即即数数通通常常使使用用#data或或#data16表表示示,在在立立即即数数前前面面加加“#”标标志志,用用以以和和直直接接寻寻址址中中的的直直接接地地址址(direc或或bit)相区别)相区别。P41P41例例 2.2
21、.2 2.2.2 直接寻址直接寻址 定定义义:将将操操作作数数的的地地址址直直接接存存放放在在指指令令中中,这这种种寻寻址址方方式式称称为为直接寻址。直接寻址。特特点点:指指令令中中含含有有操操作作数数的的地地址址。该该地地址址指指出出了了参参与与操操作作的的数数据据所所在在的的字字节节单单元元地地址址或或位位地地址址。计计算算机机执执行行它它们们时时便便可可根根据据直接地址找到所需要的操作数。直接地址找到所需要的操作数。寻址范围:寻址范围:ROM、片内、片内RAM区、区、SFR和位地址空间。和位地址空间。P42 2.2.3 寄存器寻址寄存器寻址定定义义:操操作作数数存存放放在在MCS-51内
22、内部部的的某某个个工工作作寄寄存存器器Rn(R0R7)或或部部分分专专用用寄寄存存器器中中,这这种种寻寻址址方方式式称称为寄存器寻址。为寄存器寻址。特特点点:由由指指令令指指出出某某一一个个寄寄存存器器的的内内容容作作为为操操作作数数。存存放放操操作作数数的的寄寄存存器器在在指指令令代代码码中中不不占占据据单单独独的的一一个个字节,而是嵌入(隐含)到操作码字节中。字节,而是嵌入(隐含)到操作码字节中。寻寻址址范范围围:四四组组通通用用寄寄存存器器Rn(R0R7)、部部分分专专用用寄存器(寄存器(A,B,DPTR,Cy)。)。2.2.4 寄存器寄存器间间接接寻寻址址 定定义义:指指令令给给出出的
23、的寄寄存存器器中中存存放放的的是是操操作作数数据据的的单单元元地地址址。这这种种寻寻址址方方式式称称为为寄寄存存器器间间接接寻寻址址,简简称称为为寄寄存存器器间址。间址。特特点点:指指令令给给出出的的寄寄存存器器中中存存放放的的是是操操作作数数地地址址。寄寄存存器器间间接接寻寻址址是是一一种种二二次次寻寻找找操操作作数数地地址址的的寻寻址址方方式式,寄寄存存器器前前边边必必须须加加前前缀缀符符号号“”。不不能能用用于于寻寻址址特特殊殊功功能寄存器能寄存器SFR。寻寻址址范范围围:内内部部RAM低低128B(只只能能使使用用R0或或R1作作间间址址寄寄存存器器)、外外部部RAM(只只能能使使用用
24、DPTR作作间间址址寄寄存存器器)。对对于于外外部部低低256单单元元RAM的的访访问问,除除可可以以使使用用DPTR外,还可以使用外,还可以使用R0或或R1作间址寄存器。作间址寄存器。2.2.5 变址寻址变址寻址 定定义义:操操作作数数存存放放在在变变址址寄寄存存器器(累累加加器器A)和和基基址址寄寄存存器器(DPTR或或PC)相相加加形形成成的的16位位地地址址单单元元中中。这这种种寻寻址址方方式式称称为基址加变址寄存器间接寻址,简称为变址为基址加变址寄存器间接寻址,简称为变址寻址。寻址。特特点点:指指令令操操作作码码中中隐隐含含作作为为基基址址寄寄存存器器用用的的DPTR(或或PC)和和
25、作作为为变变址址用用的的累累加加器器A。在在执执行行变变址址寻寻址址指指令令时时,MCS-51单单片片机机先先把把基基地地址址(DPTR或或PC 的的内内容容)和和地地址址偏偏移移量量(A的的内内容容)相相加加,以以形形成成操操作作数数地地址址,再再由由操操作作数数地地址址找找到到操操作作数,并完成相应的操作。变址寻址方式是单字节指令。数,并完成相应的操作。变址寻址方式是单字节指令。寻寻址址范范围围:只只能能对对程程序序存存储储器器ROM进进行行寻寻址址,主主要要用用于于查查表表性性质的访问。质的访问。;(PC)(A)+(DPTR)注意:注意:累累加加器器A中中存存放放的的操操作作数数地地址址
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 单片机 指令系统 汇编语言 程序设计 PPT
限制150内