第3章-MCS-5单片机的指令系统-课件.ppt

上传人(卖家):三亚风情 文档编号:3526134 上传时间:2022-09-11 格式:PPT 页数:110 大小:691.01KB
下载 相关 举报
第3章-MCS-5单片机的指令系统-课件.ppt_第1页
第1页 / 共110页
第3章-MCS-5单片机的指令系统-课件.ppt_第2页
第2页 / 共110页
第3章-MCS-5单片机的指令系统-课件.ppt_第3页
第3页 / 共110页
第3章-MCS-5单片机的指令系统-课件.ppt_第4页
第4页 / 共110页
第3章-MCS-5单片机的指令系统-课件.ppt_第5页
第5页 / 共110页
点击查看更多>>
资源描述

1、2022年7月23日星期六计算机科学系 单片机原理及应用第3章 MCS-51单片机的指令系统2022年7月23日星期六计算机科学系 教学目的 指令和指令系统的概念与分类。掌握指令的格式和寻址方式。掌握数据传送、算术运算、逻辑运算、控制转移和位操作指令的功能和应用。指令的寻址方式指令的应用控制转移指令和位操作指令第3章 MCS-51单片机的指令系统2022年7月23日星期六计算机科学系 3.1 概述3.2 寻址方式3.3 数据传送指令 3.4 算术运算指令 3.5 逻辑操作指令 3.6 控制程序转移类指令 3.7 位操作类指令 3.8 伪指令3.9 小结3.10 习题 第3章 MCS-51单片机

2、的指令系统2022年7月23日星期六计算机科学系 3.1 3.1 概概 述述 基本概念基本概念 指令指令是是CPUCPU根据人的意图来执行某种操作的命令。指令根据人的意图来执行某种操作的命令。指令常以其英文名称或者缩写形式作为助记符。常以其英文名称或者缩写形式作为助记符。一台计算机所能执行的全部指令的集合称为这个一台计算机所能执行的全部指令的集合称为这个CPUCPU的的指令系统指令系统。2022年7月23日星期六计算机科学系 3.1.1 MCS-51单片机指令格式 80518051汇编语言指令由汇编语言指令由操作码操作码和和操作数操作数两部分组成。两部分组成。汇编语言指令格式汇编语言指令格式

3、标号标号:操作码助记符操作码助记符 目的操作数目的操作数,源操作数源操作数;注释注释 3.1 3.1 概概 述述机器语言指令格式机器语言指令格式 双字节指令格式双字节指令格式 操作码代码操作码代码 操作数或者地址操作数或者地址 三字节指令格式三字节指令格式 操作码代码操作码代码 操作数或地址操作数或地址,操作数或地址操作数或地址 符号地址:子程序入符号地址:子程序入口口/转移指令的目标转移指令的目标地址。地址。1-8个字符,个字符,标号后必须用冒号。标号后必须用冒号。指令的核心部分,用指令的核心部分,用于指示机器执行何种于指示机器执行何种操作。操作。表示指令操作的对象,表示指令操作的对象,可以

4、是具体的数据或数可以是具体的数据或数据所在的地址。据所在的地址。无、单、双、三操作数无、单、双、三操作数2022年7月23日星期六计算机科学系 3.1.2 指令的字节指令的字节按照指令的按照指令的功能功能划分,划分,80518051指令可分为以下五类:指令可分为以下五类:数据传送数据传送类指令类指令(29(29条条)算术运算算术运算类指令类指令(24(24条条)逻辑运算逻辑运算类指令类指令(24(24条条)控制转移控制转移类指令类指令(17(17条条)位操作位操作类指令类指令(17(17条条)3.1 3.1 概概 述述2022年7月23日星期六计算机科学系 按照指令占用的按照指令占用的存储空间

5、存储空间可分为:可分为:单字节指令单字节指令(49(49条条)双字节指令双字节指令(45(45条条)三字节指令三字节指令(17(17条条)按照指令的按照指令的执行时间执行时间可分为:可分为:单周期指令单周期指令(64(64条条)双周期指令双周期指令(45(45条条)四周期指令四周期指令(2(2条,乘、除法指令条,乘、除法指令)3.1 3.1 概概 述述2022年7月23日星期六计算机科学系 3.1.3 MCS-51单片机的助记符语言单片机的助记符语言3.1 3.1 概概 述述指令的二进制形式指令的二进制形式机器码,可以直接被计算机识别和机器码,可以直接被计算机识别和执行。执行。机器语言:二进制

6、代码语言机器语言:二进制代码语言采用采用助记符助记符表示的指令称为表示的指令称为汇编语言汇编语言。使用这种指令编写的程序称为使用这种指令编写的程序称为汇编语言程序汇编语言程序。MCS-51单片机的助记符有单片机的助记符有42种,见表种,见表3.1(P25)2022年7月23日星期六计算机科学系 为便于后面的学习,在这里先对指令中用到的一些符号的约定意义作以说明:(1)Ri和Rn:表示当前工作寄存器区中的工作寄存器,i取0或1,表示R0或R1。n取07,表示R0R7。(2)#data:表示包含在指令中的8位立即数。(3)#data16:表示包含在指令中的16位立即数。(4)rel:以补码形式表示

7、的8位相对偏移量,范围为-128127,主要用在相对寻址的指令中。(5)addr16和addr11:分别表示16位直接地址和11位直接地址。(6)direct:表示直接寻址的地址。(7)bit:表示可位寻址的直接位地址。(8)(X):表示X单元中的内容。(9)(X):表示以X单元的内容为地址的存储器单元内容,即(X)作地址,该地址单元的内容用(X)表示。(10)/和符号:“/”表示对该位操作数取反,但不影响该位的原值。“”表示操作流程,将箭尾一方的内容送入箭头所指一方的单元中去。3.1 3.1 概概 述述3.1.4 常用符号说明常用符号说明2022年7月23日星期六计算机科学系 3.2 寻址方

8、式 基本概念基本概念寻址寻址就是寻找指令中操作数或操作数所在地址。就是寻找指令中操作数或操作数所在地址。寻址方式寻址方式就是找到存放操作数的地址,并把操作数提取出来的就是找到存放操作数的地址,并把操作数提取出来的方法,即寻找操作数或者是操作数地址的方法。方法,即寻找操作数或者是操作数地址的方法。80518051单片机寻址方式共有单片机寻址方式共有7 7种:种:立即数立即数寻址、寻址、直接直接寻址、寻址、寄存寄存器器寻址、寻址、寄存器间接寄存器间接寻址、寻址、变址变址寻址、寻址、相对相对寻址和寻址和位位寻址。寻址。2022年7月23日星期六计算机科学系 3.2.1 3.2.1 立即寻址立即寻址

9、立即寻址就是操作数在指令中直接给出,或者说指令操作码后面立即给立即寻址就是操作数在指令中直接给出,或者说指令操作码后面立即给出一字节或两字节操作数。出一字节或两字节操作数。指令中给出的操作数是立即数,立即数前加指令中给出的操作数是立即数,立即数前加“#”号标志,以区别直接号标志,以区别直接寻址中的直接地址。寻址中的直接地址。1616位立即数传送指令位立即数传送指令“MOV DPTRMOV DPTR,#datal6”#datal6”,其中,其中#data16#data16是一个是一个1616位立即数。位立即数。3.2 寻址方式 例:例:MOV A,#30H ;#表示立即数表示立即数0011000

10、0MOV DPTR,#1638H2022年7月23日星期六计算机科学系 3.2.2 3.2.2 直接寻址直接寻址 直接寻址方式就是在指令中直接给出操作数所在存储单元的直接寻址方式就是在指令中直接给出操作数所在存储单元的地址。此时,指令中操作数部分是操作数所在地址。地址。此时,指令中操作数部分是操作数所在地址。直接寻址方式的寻址范围是内部直接寻址方式的寻址范围是内部RAMRAM,具体包括:,具体包括:片内片内RAMRAM的的128128个单元个单元在指令中以直接地址给出。在指令中以直接地址给出。特殊功能寄存器特殊功能寄存器(SFRSFR)既可使用它们的既可使用它们的地址地址,也可使用,也可使用它

11、们的它们的名字名字。位地址空间位地址空间指令中以位地址或位名称表示。指令中以位地址或位名称表示。3.2 寻址方式 2022年7月23日星期六计算机科学系 对于片内低128B存储器单元,指令中直接以地址数的形式提供存储器单元的地址。例如:MOV A,30H 其功能是把片内数据存储器30H单元的内容送给累加器A。如指令执行前片内数据存储器30H单元的内容为80H,则指令执行后累加器A的内容为80H。指令中30H是地址数,它是片内数据存储单元的地址。在MCS-51中,数据前面不加“#”是存储单元地址而不是常数,常数前面要加符号“#”。3.2 寻址方式 80H30HA80H2022年7月23日星期六计

12、算机科学系 对于特殊功能寄存器,在指令中使用时往往通过特殊功能寄存器的名称使用,而特殊功能寄存器名称实际上是特殊功能寄存器单元的符号地址,因此它们是直接寻址。这是访问SFR的唯一方式。例如:MOV A,P0其功能是把P0口的内容送给累加器A。P0是特殊功能寄存器P0口的符号地址,该指令在翻译成机器码时,P0就转换成直接地址80H。3.2 寻址方式 对于位地址空间:指令使用的是位地址或位名称。例如:SETB EA ;置EA位为1(IE的位7)MOV C,20H ;Cy(20H)2022年7月23日星期六计算机科学系 3.2.3 3.2.3 寄存器寻址寄存器寻址 寄存器寻址就是操作数存放在寄存器中

13、,指令中指定的寄存器的内容就寄存器寻址就是操作数存放在寄存器中,指令中指定的寄存器的内容就是操作数。是操作数。在寄存器寻址方式中以符号名称来表示寄存器。在寄存器寻址方式中以符号名称来表示寄存器。寄存器寻址方式的寻址范围包括:寄存器寻址方式的寻址范围包括:通用工作寄存器通用工作寄存器有有4 4组共组共3232个通用工作寄存器。个通用工作寄存器。部分专用寄存器部分专用寄存器累加器累加器A A、B B寄存器、寄存器、DPTRDPTR寄存器。寄存器。3.2 寻址方式 例如:MOV A,R1 ;AR133HAR133H2022年7月23日星期六计算机科学系 3.2.4 3.2.4 寄存器间接寻址寄存器间

14、接寻址 寄存器间接寻址是把指定寄存器的内容作为操作数地址,该地址所指定的单元内容作为操作数。为了区分寄存器寻址和寄存器间接寻址,在寄存器间接寻址中,所用到的寄存器的前面要加间接寻址符“”。形式为:寄存器名。例如:MOV A,R0寄存器R0、R1和数据指针DPTR可以作为间接寻址寄存器。3.2 寻址方式 2022年7月23日星期六计算机科学系 寄存器间接寻址示意图寄存器间接寻址示意图 例如:例如:寄存器寄存器R0R0内容为内容为30H30H,片内,片内RAM 30HRAM 30H单元的内容为单元的内容为45H45H。解:解:指令指令“MOV AMOV A,R0R0”的功能是将的功能是将R0R0的

15、内容的内容30H30H传送给累加器传送给累加器A A,指令,指令执行结果是执行结果是累加器累加器A A中的内容为中的内容为30H30H。指令指令“MOV AMOV A,R0R0”的功能是将的功能是将R0R0的内容的内容30H30H作为操作数的地址,作为操作数的地址,根据这一地址找到内部根据这一地址找到内部RAM 30HRAM 30H单元,将其内容单元,将其内容45H45H传送至累加器传送至累加器A A,指令执行结果是指令执行结果是累加器累加器A A中内容为中内容为45H45H。3.2 寻址方式 RAM 地址 R0 30H 45H 30H A 45H 2022年7月23日星期六计算机科学系 在M

16、CS-51单片机中,寄存器间接寻址用到的寄存器只能是通用寄存器R0、R1和数据指针寄存器DPTR,它能访问的数据是片内数据存储器和片外数据存储器。其中,片内数据存储器只能用R0和R1作指针间接访问;片外数据存储器,低端的256字节单元,既可以用两位十六进制地址以R0或R1作指针间接访问,也可用四位十六进制地址以DPTR作指针间接访问,而高端的字节单元则只能以DPTR作指针间接访问。对于片内RAM和片外RAM的低端256字节都可以用R0和R1作指针访问,它们之间用指令来区别。片内RAM访问用MOV指令,片外RAM访问用MOVX指令。例如:MOVX A,DPTR 3.2 寻址方式 2022年7月2

17、3日星期六计算机科学系 3.2.5 3.2.5 变址寻址变址寻址(基址寄存器基址寄存器+变址寄存器间接寻址变址寄存器间接寻址)变址寻址是以变址寻址是以DPTRDPTR或者或者PCPC作为基址寄存器,其内容为作为基址寄存器,其内容为基地址基地址,以累加器以累加器A A作为变址寄存器,其内容为作为变址寄存器,其内容为变址变址,并将两个寄存,并将两个寄存器内容也就是基址和变址相加,形成器内容也就是基址和变址相加,形成1616位操作数地址。然位操作数地址。然后在程序存储器中找到该地址所对应的单元,其内容即为后在程序存储器中找到该地址所对应的单元,其内容即为操作数。操作数。3.2 寻址方式 有两条指令:

18、MOVC A,A+PC ;A(A+PC)MOVC A,A+DPTR ;A(A+DPTR)2022年7月23日星期六计算机科学系 56H变址变址寻址示意图示意图 例如:例如:指令指令“MOVC AMOVC A,A+DPTR”A+DPTR”是变址寻址。是变址寻址。解:假 设解:假 设 D P T RD P T R 的 内 容 为的 内 容 为2030H2030H,累加器,累加器A A的内容的内容为为12H12H。该 指 令 的 功 能 是 将该 指 令 的 功 能 是 将2030H2030H和和12H12H相加,得到相加,得到2042H2042H作为操作数地址,作为操作数地址,在程序存储器中找到在

19、程序存储器中找到2042H2042H单元,将其内容单元,将其内容送至累加器送至累加器A A。3.2 寻址方式 ROM DPTR+=2042H 2030H 12H A 地址 56H56H例3.1 编制程序,将片外ROM的0302H单元中的常数X取至累加器A。2022年7月23日星期六计算机科学系 3.2.6 3.2.6 位寻址位寻址 位寻址指令中给出的是位地址,即片内位寻址指令中给出的是位地址,即片内RAMRAM某一单元中的一位。某一单元中的一位。位地址在指令中用位地址在指令中用bitbit表示。表示。单片机片内单片机片内RAMRAM有两个区域可以进行位寻址。具体如下:有两个区域可以进行位寻址。

20、具体如下:内部内部RAMRAM中的位寻址区中的位寻址区该区共有该区共有1616个单元,单元地址是个单元,单元地址是20H20H2FH2FH,一共有,一共有128128位,位地址为位,位地址为00007FH7FH。特殊功能寄存器的可操作位特殊功能寄存器的可操作位有有1111个单元地址能被个单元地址能被8 8整除的整除的寄存器,它们都可以进行位寻址,实际可寻址位为寄存器,它们都可以进行位寻址,实际可寻址位为8383个。个。3.2 寻址方式 2022年7月23日星期六计算机科学系 直接使用直接使用位地址位地址。例:例:PSWPSW寄存器的第寄存器的第5 5位可表示为位可表示为D5HD5H。20H20

21、H单元的第单元的第7 7位可表示为位可表示为07H07H。SETB 0D5HSETB 0D5H 用用位名称位名称表示。表示。例:例:PSWPSW寄存器的第寄存器的第5 5位可表示为位可表示为F0F0。SETB F0SETB F0 单元地址加位号单元地址加位号表示。表示。例:例:PSWPSW寄存器的第寄存器的第5 5位可表示为位可表示为D0H.5D0H.5。20H20H单元的第单元的第7 7位可表示为位可表示为20H.720H.7。SETB 0D0H.5SETB 0D0H.5 可以用可以用寄存器名称加位号寄存器名称加位号表示。表示。例:例:PSWPSW寄存器的第寄存器的第5 5位可表示为位可表示

22、为PSW.5PSW.5。SETB PSW.5SETB PSW.53.2 寻址方式 0D5H是直接地址,是直接地址,当直接地址的第当直接地址的第1位为字母时,前面位为字母时,前面必须加数字必须加数字0。2022年7月23日星期六计算机科学系 3.2.7 3.2.7 相对寻址相对寻址 相对转移指令执行时,是以当前的相对转移指令执行时,是以当前的PCPC值加上指令中规定的偏移值加上指令中规定的偏移量量relrel而形成实际的转移地址。这里所说的而形成实际的转移地址。这里所说的PCPC的当前值的当前值是执是执行完相对转移指令后的行完相对转移指令后的PCPC值。值。一般将相对转移指令操作码所在地址称为源

23、地址,转移后的地一般将相对转移指令操作码所在地址称为源地址,转移后的地址称为目的地址。于是有:址称为目的地址。于是有:目的地址目的地址=源地址源地址+相对转移指令本身字节数相对转移指令本身字节数+rel+rel相对寻址只出现在相对转移指令中,以修正相对寻址只出现在相对转移指令中,以修正PCPC的方式来控制程的方式来控制程序的转移目的。序的转移目的。3.2 寻址方式 2022年7月23日星期六计算机科学系 相对转移指令操作示意图相对转移指令操作示意图 例 如:例 如:在 程 序 存 储 器 中在 程 序 存 储 器 中2000H单元有一条双字单元有一条双字节 的 相 对 转 移 指 令节 的 相

24、 对 转 移 指 令“SJMP 75H”。解:程序存储器解:程序存储器2000H、2001H单元的内容单元的内容80H、75H是是“SJMP 75H”的机器语言代码。的机器语言代码。3.2 寻址方式 PC=2000H 2 +75 PC=2077H 2077H 2002H 2001H 2000H 80H 75H ROM 2022年7月23日星期六计算机科学系 小结:常数:立即寻址 寄存器数:寄存器寻址 存储器数:直接寻址、寄存器间接寻址、变址寻址 位寻址:指令寻址:绝对寻址、相对寻址3.2 寻址方式 问:对问:对ROM和和RAM的寻址方式有哪些?的寻址方式有哪些?作业:作业:P51 1、4寻址方

25、式寻址方式寻址空间寻址空间直接寻址直接寻址片内片内RAM低低128字节和特殊功能寄存器字节和特殊功能寄存器(只能采用直接寻址只能采用直接寻址)寄存器寻址寄存器寻址工作寄存器工作寄存器R0R7、A、B、DPTR寄存器间接寄存器间接寻址寻址片内片内RAM低低128字节字节(R0、R1、SP用于用于PUSH/POP指令时指令时)片外片外RAM(R0、R1、DPTR)变址寻址变址寻址程序存储器程序存储器相对寻址相对寻址程序存储器程序存储器(控制转移用控制转移用)位寻址位寻址片内片内RAM202FH单元的单元的128个可寻址位和特殊功能寄存器中个可寻址位和特殊功能寄存器中的的83个可寻址位个可寻址位20

26、22年7月23日星期六计算机科学系 3.3 数据传送与交换指令按照指令的功能划分,按照指令的功能划分,8051指令可分为以下五类:指令可分为以下五类:数据传送类指令数据传送类指令(29条条)算术运算类指令算术运算类指令(24条条)逻辑运算类指令逻辑运算类指令(24条条)控制转移类指令控制转移类指令(17条条)位操作类指令位操作类指令(17条条)2022年7月23日星期六计算机科学系 3.3 数据传送与交换指令数据传送指令有29条,是指令系统中数量最多、使用也最频繁的一类指令。这类指令可分为三组:内部数据传送指令、外部数据传送指令、堆栈操作指令、数据交换指令。数据传送指令中必须指定传送数据的源地

27、址和目的地址。源地址中的数据不破坏,源操作数目的地址。数据传送类指令中,当目的操作数为A时,只影响PSW的奇偶标志P。2022年7月23日星期六计算机科学系 3.3.1 内部RAM数据传送指令内部内部RAM数据传送指令共有数据传送指令共有16条,用于条,用于8051单片机片单片机片内数据存储器和寄存器之间的数据传送。内数据存储器和寄存器之间的数据传送。采用的寻址方式有:采用的寻址方式有:立即数寻址立即数寻址 直接寻址直接寻址 寄存器寻址寄存器寻址 寄存器间接寻址寄存器间接寻址格式:格式:MOV 目的字节,源字节目的字节,源字节功能:功能:传送位数据。目的字节传送位数据。目的字节源字节源字节20

28、22年7月23日星期六计算机科学系 A#DATARAMSFRSRnddddddd,d,d3.3.1 内部RAM数据传送指令字节传送指令字节传送指令15条条16位传送指令位传送指令1条条2022年7月23日星期六计算机科学系 3.3.1 内部RAM数据传送指令1.立即型传送指令(立即型传送指令(5条条)MOV A,#data ;AdataMOV A,#data ;AdataMOV Rn,#data ;RndataMOV Rn,#data ;RndataMOV Ri,#data ;(Ri)dataMOV Ri,#data ;(Ri)dataMOV direct,#data ;directdataM

29、OV direct,#data ;directdataMOV DPTR,#data16 ;DPTRdata16MOV DPTR,#data16 ;DPTRdata16例例3.22022年7月23日星期六计算机科学系 3.3.1 内部RAM数据传送指令2.直接型传送指令(直接型传送指令(5条条)MOV A,direct ;A(directMOV A,direct ;A(direct)MOV Rn,direct ;Rn(directMOV Rn,direct ;Rn(direct)MOV Ri,direct ;(Ri)(directMOV Ri,direct ;(Ri)(direct)MOV di

30、rect,A ;directAMOV direct,A ;directAMOV direct2,direct1 ;direct2(direct1)MOV direct2,direct1 ;direct2(direct1)例例3.32022年7月23日星期六计算机科学系 3.3.1 内部RAM数据传送指令3.寄存器寻址型传送指令(寄存器寻址型传送指令(3条条)MOV A,Rn ;ARnMOV A,Rn ;ARnMOV Rn,A ;RnAMOV Rn,A ;RnAMOV direct,Rn ;directRnMOV direct,Rn ;directRn4.寄存间接寻址型传送指令(寄存间接寻址型传

31、送指令(3条条)MOV A,Ri ;A(RiMOV A,Ri ;A(Ri)MOV Ri,A ;(Ri)AMOV Ri,A ;(Ri)AMOV direct,Ri ;direct(RiMOV direct,Ri ;direct(Ri)例例3.4 例例3.5注意:注意:8051指令系统指令系统中没有下面三条指令中没有下面三条指令:MOV Rn,Ri MOV Rn,Rn MOV Ri,Ri2022年7月23日星期六计算机科学系 (1)以A为目的操作数MOV A,Rn;A RnMOV A,direct;A(direct)MOV A,Ri;A(Ri)MOV A,#data;A#data(2)以Rn为目的

32、操作数MOV Rn,A;Rn AMOV Rn,direct;Rn(direct)MOV Rn,#data;Rn#data(3)以直接地址direct为目的操作数MOV direct,A;(direct)AMOV direct,Rn;(direct)RnMOV direct,direct;(direct)(direct)MOV direct,Ri;(direct)(Ri)MOV direct,#data;(direct)#data(4)以间接地址Ri为目的操作数MOV Ri,A;(Ri)AMOV Ri,direct;(Ri)(direct)MOV Ri,#data;(Ri)#data(5)以DP

33、TR为目的操作数MOV DPTR,#data16 ;DPTR#data16注意,源操作数和目的操作数中的Rn和Ri不能相互配对。在MOV指令中,不允许在一条指令中同时出现工作寄存器,无论它是寄存器寻址还是寄存器间接寻址。2022年7月23日星期六计算机科学系 3.3.2 外部RAM数据传送指令(4条)汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 MOVX DPTR,A F0H 外外(DPTR)(A)MOVX A,DPTR E0H A 外外(DPTR)MOVX Ri,A F2HF3H 外外(Ri)(A)MOVX A,Ri E2HE3H A 外外(Ri)注意:注意:8051没有专

34、门的没有专门的 输入输入/输出指令,在访问输出指令,在访问 外部的设备时,可以采用外部的设备时,可以采用 这种方式与外部设备的端这种方式与外部设备的端 口打交道。口打交道。A 寄存器间接寻址 Ri 外部 RAM 256B 寄存器间接寻址 DPTR 外部 RAM 64KB 例例3.62022年7月23日星期六计算机科学系 3.3.3 查表指令(2条)汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 MOVC A,A+DPTR 93H PC (PC)+1,A (A)+(DPTR)MOVC A,A+PC 83H PC (PC)+1,A (A)+(PC)注意:前一条指令只能查注意:前一条

35、指令只能查 找指令所在位置找指令所在位置256B范围范围 内的代码或常数,内的代码或常数,后一条指令查表范围可达整后一条指令查表范围可达整 个程序存储器的个程序存储器的64KB空间。空间。A A+DPTR 变址 远程查表 ROM 64KB A+PC 变址 近程查表 ROM 指令附近 256B 2022年7月23日星期六计算机科学系 例例3.7 在程序存储器中有一平方表,从在程序存储器中有一平方表,从2000H单元开始存放,如图所示,试通单元开始存放,如图所示,试通过查表指令查找出过查表指令查找出6的平方。的平方。3.3.3 查表指令(2条)812009H642008H492007H362006

36、H252005H162004H92003H42002H12001H02000H解:采用DPTR作为基址寄存器的查表程序比较简单,查表范围大,也容易理解。只要预先使用一条16位数据传送指令,把表的首地址2000H送入DPTR,然后进行查表就可以了。相应的程序如下:MOV A,#6 ;设定备查的表项 MOV DPTR,#2000H ;设置DPTR为表始址 MOVC A,A+DPTR ;将A的平方值查表后送A 如果需要查找其他数的平方,只需要将累加器A的内容(变址)改一下即可。2022年7月23日星期六计算机科学系 3.2.4 堆栈存取指令(2条)1.入栈指令入栈指令 汇编指令格式汇编指令格式 机器

37、指令格式机器指令格式 操操 作作 PUSH direct C0H direct SP (SP)+1,(SP)(direct)注意:堆栈指针注意:堆栈指针SP先加先加1,并指向栈顶的上一个空单元,然后再将直接地,并指向栈顶的上一个空单元,然后再将直接地址址(direct)寻址的单元内容压入当前寻址的单元内容压入当前SP所指示的堆栈单元中。所指示的堆栈单元中。2.出栈指令出栈指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 POP direct D0H direct direct (SP),SP (SP)-1注意:先将堆栈指针注意:先将堆栈指针(SP)所指示的内部所指示的内部R

38、AM(栈顶栈顶)单元中内容送入由直单元中内容送入由直接地址寻址的单元中,然后再将栈指针接地址寻址的单元中,然后再将栈指针(SP)减减1并回送并回送SP。堆栈操作的特点:堆栈操作的特点:SP=07H,需先设堆栈指针。,需先设堆栈指针。堆栈的特点:后进先出堆栈的特点:后进先出堆栈操作必须是字节操作,且只能直接寻址。堆栈操作必须是字节操作,且只能直接寻址。常用于保护现场和恢复现场。常用于保护现场和恢复现场。2022年7月23日星期六计算机科学系 (1)PUSH direct例例:设:设A=10H,B=36H,SP=07H,执行,执行 PUSH 0E0H PUSH 0F0H问问:A=?B=?SP=?及

39、栈的变化。及栈的变化。SP0708090A0B0C10H36HSPXX3.2.4 堆栈存取指令(2条)2022年7月23日星期六计算机科学系 (2)POP direct例:例:设栈的状态如右图,执行设栈的状态如右图,执行 POP 20H POP 30H问问:(20H)=?(30H)=?SP=?及栈的变化。及栈的变化。SP0708090A0B0C10H36HSPXX例例3.83.2.4 堆栈存取指令(2条)2022年7月23日星期六计算机科学系 3.2.5 数据交换指令(5条)1.字节交换指令字节交换指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 XCH A,Rn C8CF

40、H A Rn XCH A,direct C5H A direct XCH A,Ri C6HC7H A (Ri)注意:该操作只影响标志位注意:该操作只影响标志位P。2.半字节交换指令半字节交换指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 XCHD A,Ri D6HD7H A03 (Ri)03 注意:该操作只影响标志位注意:该操作只影响标志位P。2022年7月23日星期六计算机科学系 3.2.4 交换指令 3.累加器半字节交换指令累加器半字节交换指令 汇编指令格式汇编指令格式 机器码格式机器码格式 操操 作作 SWAP A C4H A03 A47注意:该操作不影响标志位注意

41、:该操作不影响标志位P。SWAP XCH XCHD A Rn Ri direct 例例3.92022年7月23日星期六计算机科学系 练习1.写出完成下列功能的程序段写出完成下列功能的程序段(1)将R0的内容送R6中。(2)将片内RAM 30H单元的内容送片外60H单元中。(3)将片处RAM 1000H单元的内容送片内20H单元中。(4)将ROM 2000H单元的内容送片内RAM的30H单元中。MOV A,R0MOV R6,AMOV A,30HMOV R0,#60HMOVX R0,AMOV DPTR,#1000HMOV A,DPTRMOV 20H,AMOV A,#0MOV DPTR,#2000H

42、MOVC A,A+DPTRMOV 30H,A2022年7月23日星期六计算机科学系 2.使用不同的指令将累加器使用不同的指令将累加器A的内容送至内部的内容送至内部RAM的的26H单元单元。解:在访问内部解:在访问内部RAM时,可以有多种寻址方式供选择,在实际应用中要时,可以有多种寻址方式供选择,在实际应用中要注意根据实际情况选择合适的寻址方式来进行数据传送。可以通过注意根据实际情况选择合适的寻址方式来进行数据传送。可以通过下面指令采用不同寻址方式实现。下面指令采用不同寻址方式实现。MOV26H,A;目的操作数采用直接寻址,目的操作数采用直接寻址,源操作数采用寄存器寻址源操作数采用寄存器寻址MO

43、VR0,#26H MOVR0,A;目的操作数采用寄存器间接寻址,目的操作数采用寄存器间接寻址,源操作数采用寄存器寻址源操作数采用寄存器寻址MOV26H,ACC;采用直接寻址采用直接寻址MOV26H,0E0H;采用直接寻址采用直接寻址PUSH ACC;利用栈操作,直接寻址利用栈操作,直接寻址 POP 26H练习作业:作业:P51 7、92022年7月23日星期六计算机科学系 3.4 算术运算指令算术运算指令共有算术运算指令共有24条,典型指令有:条,典型指令有:2022年7月23日星期六计算机科学系 3.4.1 加法、减法指令 1.加法类指令加法类指令 汇编指令格式汇编指令格式 机器指令格式机器

44、指令格式 操操 作作 ADD A,Rn 28H2FH A (A)+(Rn)ADD A,direct 25H direct A (A)+(direct)ADD A,Ri 26H27H A (A)+(Ri)ADD A,#data 24H data A (A)+#data 注意:当和的第注意:当和的第3位或第位或第7位有进位时,分别将位有进位时,分别将AC、CY标志位置标志位置1;否则为否则为0。如果第。如果第6位向第位向第7位有进位而第位有进位而第7位没有向前进位,位没有向前进位,或者如果第或者如果第7位向前有进位而第位向前有进位而第6位没有向第位没有向第7位进位,位进位,OV=1,否则否则OV=

45、0。该操作也影响标志位。该操作也影响标志位P。2022年7月23日星期六计算机科学系 3.4.1 加法、减法指令 2.带进位加法指令带进位加法指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 ADDC A,Rn 38H3FH A (A)+(Rn)+CY ADDC A,direct 35H direct A (A)+(direct)+CY ADDC A,Ri 36H37H A (A)+(Ri)+CY ADDC A,#data 34H data A (A)+#data+CY注意:本指令的执行将影响标志位注意:本指令的执行将影响标志位AC、CY、OV、P,与,与 ADD指指令相同

46、令相同。例3.10 分析执行下列指令后,A=?各标志位的值是多少?MOV A,#85H ADD A,#0AEH 2022年7月23日星期六计算机科学系 3.4.1 加法、减法指令 3.带借位减法指令带借位减法指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 SUBB A,Rn 98H9FH A (A)-CY-(Rn)SUBB A,direct 95H direct A (A)-CY-(direct)SUBB A,Ri 96H97H A (A)-CY-(Ri)SUBB A,#data 94H data A (A)-CY-#data注意:在执行不带借位的运算时,可在注意:在执行

47、不带借位的运算时,可在“SUBB”指令前用指令前用“CLR C”指令将指令将CY清清0。如果第。如果第7位有借位,则位有借位,则CY置置1,否则清,否则清0。若第。若第3位有借位,则位有借位,则AC置置1;否则清;否则清0。两个带符号数相减,还要考查。两个带符号数相减,还要考查OV标志,若标志,若OV为为1,表示差数溢出,即破坏了正确结果的符号位。,表示差数溢出,即破坏了正确结果的符号位。该操作也影响标志位该操作也影响标志位P。2022年7月23日星期六计算机科学系 4.加加1指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 INC A 04H A (A)+1 INC

48、Rn 08H0FH Rn (Rn)+1 INC direct 05H direct direct (direct)+1 INC Ri 06H07H (Ri)(Ri)+l INC DPTR A3H DPTR (DPTR)+1注意:该操作不影响注意:该操作不影响PSW标志位。标志位。3.4.1 加法、减法指令 2022年7月23日星期六计算机科学系 5.减减1指令指令 汇编指令格式汇编指令格式 机器指令格式机器指令格式 操操 作作 DEC A 14H A (A)-1 DEC Rn 18H1FH Rn (Rn)-l DEC direct 15H direct direct (direct)-1 DE

49、C Ri 16H17H (Ri)(Ri)-1 注意:该操作不影响注意:该操作不影响PSW标志位。标志位。3.4.1 加法、减法指令 例例3.11 已知:已知:M1、M1+1和和M2、M2+1中存放有两个中存放有两个16位无符号数位无符号数X1和和X2(低(低8位在前,高位在前,高8位在后)。编制位在后)。编制求求X1+X2,并把结果放在,并把结果放在M1、M1+1单元中的程序。单元中的程序。2022年7月23日星期六计算机科学系 6.6.十进制调整指令十进制调整指令 汇编指令格式汇编指令格式 机器码格式机器码格式 操操 作作 DA A D4H 调整累加器调整累加器A内容为内容为BCD码码注意:

50、这条指令一般跟在注意:这条指令一般跟在ADD或或ADDC指令后,将相加后存放在累加指令后,将相加后存放在累加器中的结果进行十进制调整,完成十进制加法运算功能(不能用于器中的结果进行十进制调整,完成十进制加法运算功能(不能用于十进制减法的调整十进制减法的调整)。调整方法如下:)。调整方法如下:若若(A0-3)9或或AC=1,则,则(A0-3)+6A0-3若若(A4-7)9或或CY=1,则,则(A4-7)+6A4-7 该操作影响标志位该操作影响标志位P。3.4.1 加法、减法指令 例例3.12 编制编制85+59的的BCD码加法程序。码加法程序。2022年7月23日星期六计算机科学系 MCS-51

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第3章-MCS-5单片机的指令系统-课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|