MCS-51单片机指令系统与汇编语言程序设计PPT.ppt

上传人:wuy****n92 文档编号:70799868 上传时间:2023-01-28 格式:PPT 页数:61 大小:254.50KB
返回 下载 相关 举报
MCS-51单片机指令系统与汇编语言程序设计PPT.ppt_第1页
第1页 / 共61页
MCS-51单片机指令系统与汇编语言程序设计PPT.ppt_第2页
第2页 / 共61页
点击查看更多>>
资源描述

《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中中存存放放的的操操作作数数地地址址

26、相相对对基基地地址址的的偏偏移移量量 的的 范范 围围 为为 00H FFH(无无 符符 号号 数数)。MCS-51单片机共有以下三条变址寻址指令:单片机共有以下三条变址寻址指令:MOVC A,A+PC ;(A)(A)+(PC)+1 MOVC A,A+DPTR ;(A)(A)+(DPTR)JMP A+DPTR ;(PC)(A)+(DPTR)2.2.6 相对寻址相对寻址定定义义:将将程程序序计计数数器器PC的的当当前前值值(取取出出本本条条指指令令后后的的PC值值)与与指指令令第第二二个个字字节节给给出出的的偏偏移移量量(rel)相相加加,形形成成新新的的转转移移目目标标地地址。称为相对寻址方式

27、。址。称为相对寻址方式。特特点点:相相对对寻寻址址方方式式是是为为实实现现程程序序的的相相对对转转移移而而设设计计的的,为为相相对对转转移移指指令令所所使使用用,其其指指令令码码中中含含有有相相对对地地址址偏偏移移量量,能能生生成成浮浮动动代码。代码。如:如:SJMP rel ;(PC)(PC)+2+rel相对转移指令的目的地址指令地址指令字节数偏移量相对转移指令的目的地址指令地址指令字节数偏移量寻寻址址范范围围:只只能能对对程程序序存存储储器器ROM进进行行寻寻址址。相相对对地地址址偏偏移移量量(rel)是是一一个个带带符符号号的的8位位二二进进制制补补码码,其其取取值值范范围围为为 128

28、127(以(以PC为中间的为中间的256个字节范围)。个字节范围)。2.2.7 位寻址位寻址定定义义:指指令令中中给给出出的的操操作作数数是是一一个个可可单单独独寻寻址址的的位位地地址址,这这种种寻寻址址方式称为位寻址方式。方式称为位寻址方式。特特点点:位位寻寻址址是是直直接接寻寻址址方方式式的的一一种种,其其特特点点是是对对8位位二二进进制制数数中中的某一位的地址进行操作。的某一位的地址进行操作。寻寻址址范范围围:片片内内RAM低低128B中中位位寻寻址址区区、部部分分SFR(其其中中有有83位位可以位寻址)。可以位寻址)。可位寻址的位地址的表示形式如下:可位寻址的位地址的表示形式如下:(1

29、 1)直接使用位地址形式。如:)直接使用位地址形式。如:MOV 00H,C ;(00H)(Cy)其中:其中:00H是片内是片内RAM中中20H地址单元的第地址单元的第0位。位。(2)字节地址加位序号的形式。)字节地址加位序号的形式。如:如:MOV 20H.0,C ;(20H.0)(Cy)其中:其中:20H.0是片内是片内RAM中中20H地址单元的第地址单元的第0位。位。(3)位位的的符符号号地地址址(位位名名称称)的的形形式式。对对于于部部分分特特殊殊功功能能寄寄存存器器,其其各各位位均均有有一一个个特特定定的的名名字字,所所以以可可以以用用它它们们的的位位名名称称来来访问该位。如:访问该位。

30、如:ANL C,P ;(C)(C)(P)其中:其中:P是是PSW的第的第0位,位,C是是PSW的第的第7位。位。(4)字字节节符符号号地地址址(字字节节名名称称)加加位位序序号号的的形形式式。对对于于部部分分特特殊殊功功能能寄寄存存器器(如如状状态态标标志志寄寄存存器器PSW),还还可可以以用用其其字字节节名名称加位序号形式来访问某一位。如:称加位序号形式来访问某一位。如:CPL PSW.6 ;(AC)(AC)其中:其中:PSW.6表示该位是表示该位是PSW的第的第6位。位。例题例题1 指出下列指令的寻址方式指出下列指令的寻址方式 MOV A,R1 ;(A)(R1)寄存器寻址寄存器寻址 ADD

31、 A,#05H ;(A)(A)+立即数立即数 05H 立即寻址立即寻址 MOV A,R1 ;(A)(R1)寄存器间接寻址寄存器间接寻址 MOV 30H,4AH ;(30H)(4AH)直接寻址直接寻址 MOVC A,A+DPTR ;(A)(A)+(DPTR)变址寻址变址寻址 SJMP LP ;(PC)(PC)+2+偏移量偏移量 相对寻址相对寻址 MOV 65H,C ;(65H)(Cy)位寻址位寻址2.3 MCS-512.3 MCS-51单片机的指令系统单片机的指令系统 MCS-51指指令令系系统统使使用用44种种助助记记符符,它它们们代代表表着着33种种功功能能,可可以以实实现现51种种操操作作

32、。指指令令助助记记符符与与操操作作数数的的各各种种可可能能的寻址方式的结合一共可构造出的寻址方式的结合一共可构造出111条指令。条指令。MCS-51单单片片机机指指令令系系统统按按其其功功能能可可分分为为数数据据传传送送类类指指令令、算算术术运运算算类类指指令令、逻逻辑辑运运算算和和移移位位类类指指令令、控控制制转转移移类指令和位操作类指令类指令和位操作类指令五大类。五大类。学习指令系统时,应注意:学习指令系统时,应注意:(1)指令的格式、功能)指令的格式、功能。(2)操作码的含义,操作数的表示方法。)操作码的含义,操作数的表示方法。(3)寻址方式,源、目的操作数的范围。)寻址方式,源、目的操

33、作数的范围。(4)对标志位的影响。)对标志位的影响。(5)指令的适用范围。)指令的适用范围。(6)正确估算指令的字节数。)正确估算指令的字节数。一一般般地地,操操作作码码占占1字字节节;操操作作数数中中,直直接接地地址址derict占占1字字节节,#data占占1字字节节,#data16占占两两字字节节;操操作作数数中中的的A、B、R0R7、Ri、DPTR、A+DPTR、A+PC等等均均隐隐含含在在操操作作码码中。中。2.3.1 数据传送指令数据传送指令 CPU在在进进行行算算术术和和逻逻辑辑操操作作时时,绝绝大大多多数数指指令令都都有有操操作作数数,所以数据传送是一种最基本、最主要的操作。所

34、以数据传送是一种最基本、最主要的操作。数数据据传传送送指指令令共共29条条,可可分分为为内内部部RAM数数据据传传送送、外外部部RAM数数据据传传送送、程程序序存存储储器器数数据据传传送送、数数据据交交换换和和堆堆栈栈操操作作等等五类。五类。寻址范围:寻址范围:累加器累加器A、片内、片内RAM、SFR、片外、片外RAM。功能:功能:(目的地址)(目的地址)(源地址)。(源地址)。可表示为可表示为:;源地址单元的内容不变。源地址单元的内容不变。对对标标志志位位的的影影响响:除除以以累累加加器器A为为目目的的操操作作数数的的数数据据传传送送指指令令对对P标志位有影响外,其余均不影响标志位。标志位有

35、影响外,其余均不影响标志位。1内部内部RAM数据传送指令(数据传送指令(16条)条)格式:格式:MOV ,其中:其中:表示目的操作数,表示目的操作数,表示源表示源操作数。操作数。范围:范围:源、目的操作数均在片内源、目的操作数均在片内RAM、SFR中。中。指令形式:指令形式:按目的操作数可将内部数据传送指令分为以下几类。按目的操作数可将内部数据传送指令分为以下几类。(1)以累加器)以累加器A为目的操作数(为目的操作数(4条)条)MOV A,其中:其中:包括包括Rn、Ri、direct、#data。(各个符号的意义见(各个符号的意义见2.1.3节指令中的常用符号节指令中的常用符号,以下同),以下

36、同)只影响只影响PSW中的中的P标志位,不影响其他标志位。标志位,不影响其他标志位。(2)以工作寄存器)以工作寄存器Rn为目的操作数为目的操作数(3条)条)MOV Rn,其中:其中:包括包括A、direct、#data。(3 3)以直接地址单元为目的操作数)以直接地址单元为目的操作数(5 5条)条)MOV direct,其中:其中:包括包括A、Rn、Ri、direct、#data。(4 4)以间址寄存器)以间址寄存器RiRi为目的操作数为目的操作数(3 3条)条)MOV Ri ,其中:其中:包括包括A、direct、#data。(5 5)1616位数据传送指令位数据传送指令(1 1条)条)MO

37、V DPTR,#data16注:注:(2)、()、(3)、()、(4)、)、(5)均不影响标志位。)均不影响标志位。内部数据传送指令的传内部数据传送指令的传送关系如右图所示。送关系如右图所示。2 2外部外部RAMRAM数据传送指令(数据传送指令(4 4条)条)CPU与外部数据存储器之间进行数据传送时,必须使用外与外部数据存储器之间进行数据传送时,必须使用外部传送指令,只能通过累加器部传送指令,只能通过累加器A,采用寄存器间接寻址(用,采用寄存器间接寻址(用R0,R1和和DPTR三个间接寻址的寄存器)方式完成。三个间接寻址的寄存器)方式完成。指令格式:指令格式:MOVX A,MOVX ,A 其中

38、:其中:、包括包括DPTR、Ri。Ri(R0,R1)只能访问片外)只能访问片外RAM的低的低256个单元;个单元;DPTR可以访可以访问片外问片外RAM的全部的全部64KB的空间。的空间。对标志位的影响:对标志位的影响:MOVX A,指令只影响指令只影响PSW中的中的P标志位,不影响其他标志位;标志位,不影响其他标志位;MOVX ,A指令不影响标志位。指令不影响标志位。3 3程序存储器(程序存储器(ROMROM)数据传送指令(查表指令)()数据传送指令(查表指令)(2 2条)条)P52P52 程程序序存存储储器器的的数数据据传传送送是是单单向向的的,并并且且只只能能读读到到累累加加器器A A中

39、中。这类指令专门用于查表,又称为查表指令。这类指令专门用于查表,又称为查表指令。指令格式:指令格式:MOVC A,A+DPTR ;(A)(A)+(DPTR)MOVC A,A+PC ;(PC)(PC)+1 (A)(A)+(PC)两条指令的异同:两条指令的异同:其功能完全相同,但使用中存在着差异。其功能完全相同,但使用中存在着差异。(1 1)查表的位置要求不同)查表的位置要求不同 采采用用DPTR作作为为基基地地址址寄寄存存器器,表表可可以以放放在在64KB程程序序存存储储器空间的任何地址,使用方便,故称为远程查表。器空间的任何地址,使用方便,故称为远程查表。采采用用PC作作为为基基地地址址寄寄存

40、存器器,具具体体的的表表在在程程序序存存储储器器中中只只能能在在查查表表指指令令后后的的256B的的地地址址空空间间中中,使使用用有有限限制制,故故称称为为近近程程查表。查表。(2 2)偏移量的计算方法不同)偏移量的计算方法不同 采用采用DPTR作为基地址寄存器,查表地址为作为基地址寄存器,查表地址为 (A)+(DPTR)。)。采用采用PC作为基地址寄存器,查表地址为作为基地址寄存器,查表地址为 (A)+(PC)+1。因此偏移量的计算方法不同。因此偏移量的计算方法不同。采采用用DPTR作作为为基基地地址址寄寄存存器器,A为为欲欲查查数数值值距距离离表表首首地地址的值;采用址的值;采用PC作为基

41、地址寄存器,作为基地址寄存器,A的值必须预先设置为:的值必须预先设置为:A的值的值=表首地址当前指令的表首地址当前指令的PC值值14 4数据交换指令(数据交换指令(5 5条)条)(1 1)半字节数据交换指令()半字节数据交换指令(2 2条)条)指令格式:指令格式:SWAP A ;(A)30(A)74 XCHD A,Ri ;(A)30((Ri))30 (2)字节交换指令()字节交换指令(3条)条)指令格式:指令格式:XCH A,;包括包括Rn、Ri、direct。5堆栈操作指令(堆栈操作指令(2条)条)堆栈:按照堆栈:按照“先进后出先进后出”原则,进、出数据的存储区域。原则,进、出数据的存储区域

42、。栈顶:刚入栈的数据构成栈顶,数据的进出在栈顶进行。栈顶:刚入栈的数据构成栈顶,数据的进出在栈顶进行。指令格式:指令格式:PUSH direct ;SP(SP)+1,(SP)(direct)POP direct ;(direct)(SP),SP(SP)1特点:特点:堆栈操作指令是一种特殊的数据传送指令,是根据栈指针堆栈操作指令是一种特殊的数据传送指令,是根据栈指针SP中的栈顶地址进行数据操作。堆栈操作指令的实质是以栈指针中的栈顶地址进行数据操作。堆栈操作指令的实质是以栈指针SP为间址寄存器的间址寻址方式。为间址寄存器的间址寻址方式。堆栈区应避开使用的工作寄存堆栈区应避开使用的工作寄存器区和其他

43、需要使用的数据区,系统复位后,器区和其他需要使用的数据区,系统复位后,SPSP的初始值为的初始值为07H07H。为了避免重叠,一般初始化时要重新设置为了避免重叠,一般初始化时要重新设置SPSP。功能:功能:实现实现RAM单元数据送入栈顶或由栈顶取出数据送单元数据送入栈顶或由栈顶取出数据送至至RAM单元。单元。适用场合:适用场合:用于执行中断、子程序调用、参数传递等程用于执行中断、子程序调用、参数传递等程序的断点保护和现场保护。序的断点保护和现场保护。书写方式:书写方式:堆栈操作指令是直接寻址指令,直接地址不堆栈操作指令是直接寻址指令,直接地址不能是寄存器名,因此应注意指令的书写格式。例如:能是

44、寄存器名,因此应注意指令的书写格式。例如:PUSH ACC(不能写成(不能写成PUSH A)POP 00H (不能写成(不能写成POP R0)数据传送指令小结n3种MOV指令:片内RAM数据传送 MOV片外RAM数据传送 MOVX程序存储器数据传送 MOVCn2种数据交换:半字节、字节n堆栈操作:入栈、出栈2.3.2 2.3.2 算术运算指令算术运算指令 算算术术运运算算指指令令的的两两个个参参与与运运算算的的操操作作数数,一一个个存存放放在在累累加加器器A中中(此此操操作作数数也也为为目目的的操操作作数数);一一个个存存放放在在R0R7或或Ri(片内(片内RAM)中,或是)中,或是#data

45、(立即数)。(立即数)。算算术术运运算算指指令令可可以以分分为为加加法法指指令令、带带进进位位的的加加法法指指令令、带带借借位位的的减减法法指指令令、十十进进制制调调整整指指令令、加加1指指令令、减减1指指令令、乘乘除除指令。指令。1.加法指令加法指令(4条)条)指令格式:指令格式:ADD A,;(A)(A)+其中:其中:包括包括Rn、Ri、direct、#data。对标志位的影响:对标志位的影响:ADD对对PSW中的所有标志位均产生影响。中的所有标志位均产生影响。P54 例2.30分析执行如下程序段后,A、CY、AC、P、OV的结果。00110110MOV A,#36H +11101111A

46、DD A,#0EFH 00100101A=25H CY=1,AC=1,P=1,OV=0溢出:运算结果超出了计算机所能表达数据的范围。如,8位二进制数表示有符号数的范围是-128-127。双高位判别溢出:将最高位产生的进位记为CS,次高位产生的进位记为CP,OV=CSCP 2.带进位的加法指令(带进位的加法指令(4条)条)指令格式:指令格式:ADDC A,;(A)(A)+(Cy)其中:其中:包括包括Rn、Ri、direct、#data。对标志位的影响:对标志位的影响:ADDC对对PSW中的所有标志位均产生影响。中的所有标志位均产生影响。3.3.带借位的减法指令带借位的减法指令(4 4条)条)指令

47、格式:指令格式:SUBB A,;(A)(A)(Cy)其中:其中:包括包括Rn、Ri、direct、#data。对标志位的影响:对标志位的影响:SUBB对对PSW中的所有标志位均产生影响。中的所有标志位均产生影响。注注意意:MCS-51指指令令系系统统中中没没有有不不带带借借位位的的减减法法指指令令,欲欲实实现现不不带带借借位位的的减减法法计计算算,应应预预先先置置Cy=0(利利用用CLR C指指令令),然然后后利用带借位的减法指令利用带借位的减法指令SUBB实现计算。实现计算。4.十进制调整指令(十进制调整指令(1条)条)BCD码:4位二进制编码表示1位10进制数。十进制加法:25+8=33B

48、CD码:00100101 +00001000 00101101不是(00110011)BCD原因:十进制运算,逢10进位,4位二进制运算,逢16进位。修正:结果00101101低4位超过9,低4位加6修正 +0110 00110011修正原则:低4位超过9或向高4位有进位(AC=1),在低4位加6修正;高4位超过9或向上有进位(CY=1),在高4位加6修正。n组合型BCD码:一个字节表示两位十进制数。如25:(0010 0101)BCD 47:(0100 0111)BCD n非组合型BCD码:一个字节表示一位十进制数,且用该字节的低4位表示,高4位任意。如25:(0000 0010)BCD (

49、0000 0101)BCD51单片机的指令只有对压缩型BCD加法调整的指令。十进制调整指令十进制调整指令 调调整整指指令令功功能能:跟跟在在加加法法指指令令ADD或或ADDC后后面面,对对运运算算结结果果的的十十进进制制数数进进行行BCD码码修修正正,使使它它调调整整为为压压缩缩的的BCD码码数数,以以完成十进制加法运算功能。完成十进制加法运算功能。特特点点:十十进进制制调调整整指指令令也也称称为为BCD码码修修正正指指令令,这这是是一一条条专专用用指指令令。两两个个压压缩缩的的BCD码码按按二二进进制制数数相相加加后后必必须须经经本本指指令令调调整整才才能能得得到到压压缩缩的的BCD码码的的

50、和和。源源操操作作数数只只能能在在累累加加器器A中中,结结果存入果存入A中。中。指令格式:指令格式:DA A 注注意意:十十进进制制调调整整指指令令不不能能对对减减法法指指令令进进行行修修正正。BCD码码减减法法必必须须采采用用BCD补补码码运运算算法法则则,变变减减法法为为补补码码加加法法(被被减减数数+减减数数的的补补码码,减减数数的的补补码码=9AH减减数数)。然然后后对对其其进进行行十十进进制制调整来实现。调整来实现。5.5.加加1 1指令(指令(5 5条)条)功功能能:加加1指指令令又又称称为为增增量量指指令令,其其功功能能是是使使操操作作数数所所指指定定的的单单元的内容加元的内容加

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com