单片机应用技术C语言版MCS51指令系统及汇编课件.ppt

上传人(卖家):晟晟文业 文档编号:4485989 上传时间:2022-12-13 格式:PPT 页数:123 大小:717.50KB
下载 相关 举报
单片机应用技术C语言版MCS51指令系统及汇编课件.ppt_第1页
第1页 / 共123页
单片机应用技术C语言版MCS51指令系统及汇编课件.ppt_第2页
第2页 / 共123页
单片机应用技术C语言版MCS51指令系统及汇编课件.ppt_第3页
第3页 / 共123页
单片机应用技术C语言版MCS51指令系统及汇编课件.ppt_第4页
第4页 / 共123页
单片机应用技术C语言版MCS51指令系统及汇编课件.ppt_第5页
第5页 / 共123页
点击查看更多>>
资源描述

1、2022-12-131单片机应用技术单片机应用技术(C语言版)语言版)第第3章章 MCS-51指令系统及指令系统及汇编程序设计汇编程序设计2022-12-132第第3 3章章 MCS-51MCS-51指令系统指令系统及汇编程序设计及汇编程序设计目目 录录3.1 3.1 基本概念基本概念 3.2 MCS-513.2 MCS-51单片机指令系统单片机指令系统3.3 3.3 汇编语言程序格式及伪指令汇编语言程序格式及伪指令3.4 3.4 汇编语言程序设计方法汇编语言程序设计方法2022-12-1333.1 3.1 基本概念基本概念 主要内容主要内容3.1.1 3.1.1 汇编语言格式汇编语言格式3.

2、1.2 3.1.2 指令中常用符号指令中常用符号3.1.3 3.1.3 寻址方式寻址方式2022-12-1343.1.1 3.1.1 汇编语言格式汇编语言格式一、指令和指令系统一、指令和指令系统指令:指令:是计算机中是计算机中CPUCPU根据人的意图来执根据人的意图来执行某种操作的命令。行某种操作的命令。指令系统:指令系统:是一台计算机(是一台计算机(CPUCPU)所能执)所能执行的全部指令的集合。行的全部指令的集合。2022-12-135二、程序和程序设计语言二、程序和程序设计语言程序:程序:人们编写的、使计算机完成某项人们编写的、使计算机完成某项工作的工作的指令序列指令序列,称为程序。,称

3、为程序。程序设计语言:程序设计语言:编写程序的一整套编写程序的一整套规则、规则、方法。方法。程序设计语言分类:程序设计语言分类:分为分为机器语言机器语言、汇汇编语言编语言和和高级语言高级语言等。等。2022-12-136三、机器语言三、机器语言机器语言:机器语言:用二进制编码表示每条指令,用二进制编码表示每条指令,是是计算机能够直接识别和执行的语言。计算机能够直接识别和执行的语言。目标程序:目标程序:用机器语言编写的程序。用机器语言编写的程序。例如例如“13+25”13+25”,在,在MCS-51MCS-51中的中的机器码为机器码为0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1

4、0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 10 0 1 0 0 1 0 0 0 0 0 1 1 0 0 10 0 1 0 0 1 0 0 0 0 0 1 1 0 0 12022-12-137四、汇编语言:四、汇编语言:用助记符、符号、数字用助记符、符号、数字等表示指令的程序语言等表示指令的程序语言。例如,上面的例如,上面的“13+25”“13+25”的例子可写成:的例子可写成:汇编语言程序汇编语言程序机器语言代码机器语言代码MOV AMOV A,#0DH#0DH74H 0DH74H 0DHADD AADD A,#19H#19H24H 19H24H 19H相对于机器语言来说,汇

5、编语言容易理相对于机器语言来说,汇编语言容易理解和记忆解和记忆。汇编语言和机器语言都属于低级语言汇编语言和机器语言都属于低级语言。2022-12-138五、五、MCS-51MCS-51汇编语言指令格式汇编语言指令格式 其一般格式如下:其一般格式如下:标号:标号:操作码操作码 目的操作数目的操作数 ,源操作数,源操作数 ;注释;注释 方括号中的内容可以没有,即可以没有方括号中的内容可以没有,即可以没有标号、操作数和注释,至少要有操作码。标号、操作数和注释,至少要有操作码。2022-12-139例如:例如:STARTSTART:MOVMOV A A,#23H#23H ;23H A23H A“STA

6、RT”“START”为标号为标号“MOV”MOV”为操作码为操作码“A A,#23H”#23H”为操作数为操作数“23H A”23H A”为注释为注释 2022-12-1310 3.1.2 3.1.2 指令中常用符号指令中常用符号RnRn:n=0n=07 7。当前选中的。当前选中的工作寄存器工作寄存器R0R0R7R7。RiRi:i=0i=0、1 1。当前选中的工作寄存器组。当前选中的工作寄存器组中可作为中可作为地址指针的地址指针的R0R0和和R1R1。#data#data:8 8位立即数位立即数。#data16#data16:1616位立即数位立即数。directdirect:8 8位片内位片

7、内RAMRAM单元地址单元地址,含,含SFRSFR。addr16addr16:程序存储空间的程序存储空间的1616位地址位地址 2022-12-1311relrel:补码形式的补码形式的8 8位地址偏移量位地址偏移量。地址。地址偏移量偏移量,在在-128-128+127+127。bitbit:片内片内RAMRAM或或SFRSFR中的直接寻址位地址中的直接寻址位地址 /bitbit 指定位求反,再参与逻辑操作,指定位求反,再参与逻辑操作,但取反后不影响该位的原值但取反后不影响该位的原值:间址寄存器的前缀符号间址寄存器的前缀符号,表示间接寻,表示间接寻址。址。2022-12-1312():表示中的

8、内容表示中的内容 ():表示由中指向的地址单元中表示由中指向的地址单元中的内容的内容、:指令操作流程,将内容送到箭指令操作流程,将内容送到箭头指向的地方头指向的地方 当前指令地址当前指令地址 MOVMOVA A,#23H#23H ;23H A23H A2022-12-13133.1.3 3.1.3 寻址方式寻址方式 主要内容主要内容1 1 立即数寻址立即数寻址2 2 直接寻址直接寻址3 3 寄存器寻址寄存器寻址4 4 寄存器间接寻址寄存器间接寻址5 5 变址寻址变址寻址6 6相对寻址相对寻址7 7 位寻址位寻址2022-12-1314 寻址方式:寻址方式:就是指就是指CPUCPU寻找参与运算的

9、寻找参与运算的(源)(源)操作数的方式操作数的方式。(寻找操作数所在单寻找操作数所在单元地址的方式。元地址的方式。)7 7种寻址方式:种寻址方式:立即数寻址、直接寻址、立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。相对寻址和位寻址。2022-12-13151 1 立即数寻址立即数寻址立即数寻址也叫立即寻址、常数寻址立即数寻址也叫立即寻址、常数寻址。其操作数就在指令中,是指令的一部分其操作数就在指令中,是指令的一部分,紧,紧跟在操作码后面,用跟在操作码后面,用“#”#”符号作前缀,以符号作前缀,以区别地址。例如:区别地址。例如

10、:MOV AMOV A,#2CH#2CH ;2CH A 2CH A 表示把表示把2CH2CH这个数送给累加器这个数送给累加器A A2022-12-1316立即数也可以是立即数也可以是1616位的位的,如:,如:MOVMOV DPTRDPTR,#1234H#1234H立即数的低立即数的低8 8位送给了位送给了DPLDPL,高,高8 8位送给了位送给了DPHDPH。2022-12-13172 2 直接寻址直接寻址直接寻址:直接寻址:是指操作数存放在片内是指操作数存放在片内RAMRAM中,中,指令中给出操作数的地址指令中给出操作数的地址。例如:。例如:MOVMOV A A,30H30H;(30H)(

11、30H)A A说明:说明:(1)(1)直接寻址方式可以访问片内直接寻址方式可以访问片内RAMRAM的低的低128128字节和所有的特殊功能寄存器字节和所有的特殊功能寄存器。低低128B RAMdata区区特殊功能特殊功能寄存器寄存器80HFFH00H7FH2022-12-1318 对于对于特殊功能寄存器特殊功能寄存器,既可以使用地,既可以使用地址,也可以使用址,也可以使用SFRSFR名名(P21)(P21)。例如:。例如:MOVMOV A A,P1P1 或或 MOVMOV A A,90H90H 2022-12-1319(2 2)直接寻址不能够访问片内)直接寻址不能够访问片内RAMRAM的高的高

12、128128字节字节(增强型增强型),高,高128128字节只能够间接访字节只能够间接访问问。低低128BRAMdata区区高高128BRAMidata区区特殊功能特殊功能寄存器寄存器00H7FH80HFFH80HFFH增强型单片机片内增强型单片机片内RAM2022-12-13203 3 寄存器寻址寄存器寻址寄存器寻址:寄存器寻址:就是由指令指出寄存器组就是由指令指出寄存器组R0R0R7R7中某一个或寄存器中某一个或寄存器A A、B B、DPTRDPTR的内容的内容作为操作数作为操作数。2022-12-13217F7F3030堆栈和堆栈和数据缓存数据缓存 用户用户RAMRAM区区2F2F202

13、0位地址为位地址为00H00H7FH7FH(128128位位)位位寻寻址址区区1F1F1818R0R0、R1R1R7R7(第(第3 3组)组)工工17171010R0R0、R1R1R7R7(第(第2 2组)组)作作寄寄0F0F0808R0R0、R1R1R7R7(第(第1 1组)组)存存器器07070000R0R0、R1R1R7R7(第(第0 0组)组)区区2022-12-1322例如:例如:MOV AMOV A,R7R7 ;(;(R7R7)A AMOVMOV36H36H,A A ;(;(A A)36H36HADDADDA A,R0R0 ;(;(A A)+(R0)+(R0)A A对于工作寄存器组

14、的操作,必须要考对于工作寄存器组的操作,必须要考虑虑PSWPSW中中RS1RS1、RS0RS0的值(的值(P22P22),确定当),确定当前使用的是哪一组寄存器以及它们的实前使用的是哪一组寄存器以及它们的实际地址。际地址。2022-12-13234 4 寄存器间接寻址寄存器间接寻址寄存器间接寻址:寄存器间接寻址:由指令指出某一寄存由指令指出某一寄存器的内容作为操作数地址的寻址方式。器的内容作为操作数地址的寻址方式。存放地址的寄存器称为存放地址的寄存器称为间址寄存器间址寄存器,在,在指令中,在指令中,在寄存器前面加前缀寄存器前面加前缀“”“”表示表示。MCS-51MCS-51单片机规定,单片机规

15、定,使用使用RiRi(i=0i=0、1 1,即指即指R0R0、R1R1)、)、SPSP和和DPTRDPTR作间址寄存器作间址寄存器。寄存器间接寻址有以下几种情况。寄存器间接寻址有以下几种情况。2022-12-1324一、使用一、使用RiRi间接访问片内间接访问片内RAMRAM间接访问的范围:间接访问的范围:256256字节字节(包括低(包括低128128字节和高字节和高128128字节),字节),但不包括特殊功能寄但不包括特殊功能寄存器存器。例如:。例如:MOVMOV A A,RiRi;(Ri);(Ri)A AMOVMOV RiRi,A A;(A);(A)(Ri)(Ri)((Ri)(Ri)):

16、表示:表示RiRi中内容为地址的数据。中内容为地址的数据。操作过程如图操作过程如图3-33-3所示。所示。2022-12-1325图图3-3 间接寻址间接寻址(MOV A,R0)示意图示意图 62HA:62H 98H 98HR0:片内片内RAMR0R0的内容为地址,将该地址中的内容传送给累加器的内容为地址,将该地址中的内容传送给累加器A A。2022-12-1326二、使用二、使用DPTRDPTR间接访问片外间接访问片外RAMRAM间接访问的范围:间接访问的范围:片外片外RAMRAM的的64KB64KB全空间全空间。其指令也是只有两条:其指令也是只有两条:MOVXMOVX A A,DPTRDP

17、TR;(DPTR);(DPTR)A AMOVX MOVX DPTRDPTR,A A;(A);(A)(DPTR)(DPTR)DPTRDPTR为为1616位地址。位地址。2022-12-13275 5 变址寻址(访问空间为变址寻址(访问空间为ROMROM)变址寻址:变址寻址:基址基址加加变址变址的的间接寻址间接寻址。指令。指令中给出存放基址和变址的寄存器。中给出存放基址和变址的寄存器。基地址寄存器:基地址寄存器:DPTRDPTR或或PCPC;变址寄存器:变址寄存器:累加器累加器A A。也在地址寄存器前面加上前缀也在地址寄存器前面加上前缀“”。例如:。例如:MOVCMOVC A A,A+DPTRA+

18、DPTR;(A)+(DPTR);(A)+(DPTR)A A该指令的操作过程如图该指令的操作过程如图3-43-4所示。所示。DPTRDPTR内容与内容与A A中内容相加作为地址,将该地中内容相加作为地址,将该地址中的内容传送给址中的内容传送给A A。2022-12-1328ROM:DPTR 03E2H+0414H 38HA32H:A38H图图3-4 变址寻址示意图变址寻址示意图MOVC A,A+DPTR;(A)+(DPTR)A2022-12-1329变址寻址的空间为程序存储器变址寻址的空间为程序存储器寻址范围:寻址范围:若若使用使用DPTRDPTR为基地址寄存器,寻为基地址寄存器,寻址范围址范围

19、为为64KB64KB;若若使用使用PCPC为基地址寄存器,寻址为基地址寄存器,寻址空间在空间在PCPC之后之后256256字节范围内字节范围内。2022-12-1330例:已知片外例:已知片外ROMROM中的中的0302H0302H单元中有一个单元中有一个常数常数x x,现欲把它取到累加器,现欲把它取到累加器A A中,请写中,请写出程序。出程序。MOV DPTR,#0300HMOV DPTR,#0300HMOV A,#02HMOV A,#02HMOVC A,A+DPTRMOVC A,A+DPTR 问:问:MOVC A,0302H MOVC A,0302H 是否对?是否对?2022-12-133

20、16 6 相对寻址相对寻址(用于跳转指令用于跳转指令)相对寻址:相对寻址:是以当前程序计数器是以当前程序计数器PCPC值为值为基地址基地址,加上指令中给出的,加上指令中给出的偏移量偏移量relrel,得,得到目标位置的地址到目标位置的地址。即:。即:目标地址目标地址PCPCrelrelrelrel目标地址目标地址PCPC偏移量偏移量relrel为为8 8位补码位补码,其值为其值为-128128+127+127。relrel0 0程序向回跳转;程序向回跳转;relrel0 0,程序向前跳,程序向前跳转。转。2022-12-1332例如:例如:SJMP 54HSJMP 54H说明:说明:(1)(1

21、)在实际编程中在实际编程中,不需要计算不需要计算relrel,relrel由编译器自动计算;由编译器自动计算;(2)(2)当跳转范围超出了当跳转范围超出了relrel范围,编范围,编译器会提示,对程序做适当调整即可。译器会提示,对程序做适当调整即可。2022-12-13337 7 位寻址位寻址位寻址:位寻址:是指操是指操作数是二进制位作数是二进制位、位位地址地址位操作数地址范位操作数地址范围:围:片内片内RAMRAM中中20H20H2FH2FH,SFRSFR中可以按位中可以按位寻址的位寻址的位。例如:例如:SETBSETB 3DH3DH7F7F3030堆栈和堆栈和数据缓存数据缓存通通用用数数据

22、据区区2F2F2020位地址为位地址为00H00H7FH7FH(128128位位)位位寻寻址址区区1F1F1818R0R0、R1R1R7R7(第(第3 3组)组)工工17171010R0R0、R1R1R7R7(第(第2 2组)组)作作寄寄0F0F0808R0R0、R1R1R7R7(第(第1 1组)组)存存器器07070000R0R0、R1R1R7R7(第(第0 0组)组)区区2022-12-1334位地址的位地址的3 3种表示方式:种表示方式:1 1)直接位地址)直接位地址(00H(00H7FH)7FH)。如。如32H32H2 2)字节地址带位号)字节地址带位号。如。如20H.120H.1,表

23、示,表示20H20H单元的第单元的第1 1位。位。3 3)特殊功能寄存器名带位号)特殊功能寄存器名带位号。如。如P1.7P1.7,表示表示P1P1口的第口的第7 7位。位。2022-12-1335寻址方式、寻址空间及范围寻址方式、寻址空间及范围寻址方式寻址方式操作数及寻址空间范围操作数及寻址空间范围立即数寻址立即数寻址 随指令读入随指令读入直接寻址直接寻址片内片内RAMRAM中,中,低低128128字节和字节和SFRSFR寄存器寻址寄存器寻址使用的寄存器:使用的寄存器:R0R0R7R7、A A、B B、DPTRDPTR 寄存器寄存器间接寻址间接寻址片内片内RAMRAM:用用RiRi;范围范围2

24、56B256B,不含,不含SFRSFR片外片外RAMRAM:用用RiRi、DPTRDPTR;范围为范围为64KB64KB变址寻址变址寻址用用A+PCA+PC、A+DPTRA+DPTR;在;在ROMROM中;中;范围分别为范围分别为PCPC之后之后256B256B之内和之内和64KB64KB全空间全空间位寻址位寻址在位寻址区域在位寻址区域;RAMRAM的的20202FH2FH和和SFRSFR相对寻址相对寻址操作数是相对地址;在操作数是相对地址;在ROMROM中;中;范围范围-128-1281271272022-12-13363.2 MCS-513.2 MCS-51单片机指令系统单片机指令系统 主

25、要内容主要内容3.2.1 3.2.1 数据传送与交换指令数据传送与交换指令3.2.2 3.2.2 算术操作类指令算术操作类指令3.2.3 3.2.3 逻辑运算指令逻辑运算指令3.2.4 3.2.4 控制转移类指令控制转移类指令3.2.5 3.2.5 位操作指令位操作指令2022-12-1337指令概述指令概述(P266(P266 附录附录C)C)MCS-51MCS-51单片机指令系统有单片机指令系统有111111条指令,分条指令,分类如下。类如下。1 1、按字节分类、按字节分类单字节指令:单字节指令:4949条;条;双字节指令:双字节指令:4545条条三字节指令:三字节指令:1717条条2 2

26、、按执行时间分类、按执行时间分类单周期指令:单周期指令:6464条;条;双周期指令:双周期指令:4545条条四周期指令:四周期指令:2 2条(乘、除指令)条(乘、除指令)2022-12-13383 3、按功能分类、按功能分类(分为(分为5 5大类)大类)数据传送指令:数据传送指令:2929条条算术运算指令:算术运算指令:2424条条逻辑运算指令:逻辑运算指令:2424条条控制程序转移指令:控制程序转移指令:1717条条位操作指令:位操作指令:1717条条MCS-51MCS-51指令没有复杂的寻址方式,并且指令没有复杂的寻址方式,并且助记符只有助记符只有4242种种。2022-12-13393.

27、2.1 3.2.1 数据传送指令数据传送指令数据传送是使用最频繁的一类指令。数据传送是使用最频繁的一类指令。所谓传送,所谓传送,就是把源地址单元的内容传就是把源地址单元的内容传送到目的地址单元中去,而源地址单元中的送到目的地址单元中去,而源地址单元中的内容不变内容不变。数据传送指令可以分为三组:数据传送指令可以分为三组:普通传送普通传送指令指令、数据交换指令数据交换指令、堆栈操作指令堆栈操作指令。2022-12-1340一、普通传送指令一、普通传送指令普通传送指令以助记符普通传送指令以助记符MOVMOV为基础为基础,分为:,分为:片内数据存储器传送指令,用片内数据存储器传送指令,用MOVMOV

28、片外数据传送指令,用片外数据传送指令,用MOVXMOVX程序存储器传送指令,用程序存储器传送指令,用MOVCMOVC2022-12-13411 1、片内数据存储器传送指令、片内数据存储器传送指令MOVMOV 格式:格式:MOV MOV 目的操作数,源操作数目的操作数,源操作数源操作数:源操作数:可以是可以是A A、RnRn、RiRi、directdirect、#data#data目的操作数:目的操作数:可以是可以是A A、RnRn、RiRi、directdirect、DPTRDPTR以目的操作数的不同可以分为五个小组,以目的操作数的不同可以分为五个小组,共共1616条指令。条指令。2022-1

29、2-1342(1 1)以)以A A为目的操作数为目的操作数 MOV AMOV A,RnRn ;(Rn)(Rn)A A MOVMOV A A,directdirect ;(direct)(direct)A A MOV MOV A A,RiRi ;(Ri)(Ri)A A MOV MOV A A,#data#data ;data A data A 工作寄存器工作寄存器RnRn:R0R0R7R7RiRi间接寻址寄存器:间接寻址寄存器:R0R0或或R1R1本组本组4 4条指令都影响条指令都影响PSWPSW中的中的P P标志位标志位指令字节数:指令字节数:1 1、2 2、1 1、2 2 2022-12-1

30、343(2 2)以)以RnRn为目的操作数为目的操作数MOVMOVRnRn,A A;(A)Rn(A)Rn MOVMOVRnRn,directdirect;(direct)Rn(direct)RnMOVMOVRnRn,#data#data;data Rndata Rn注意:注意:MOV Rn,RnMOV Rn,Rn(错误)(错误)(P32(2)(P32(2)本组指令都不影响本组指令都不影响PSWPSW中的标志位中的标志位。指令字节数:指令字节数:1 1、2 2、2 2 2022-12-1344(3 3)以直接地址)以直接地址directdirect为目的操作数为目的操作数MOVMOVdirect

31、direct,A A;(A)direct;(A)directMOVMOVdirectdirect,RnRn;(Rn)direct;(Rn)directMOVMOVdirect2direct2,direct1direct1 ;(direct1)direct;(direct1)direct2 2MOVMOVdirectdirect,RiRi;(Ri)direct;(Ri)directMOVMOVdirectdirect,#data#data;data direct;data direct本组指令都不影响本组指令都不影响PSWPSW中的标志位中的标志位指令字节数:指令字节数:2 2、2 2、3 3、

32、2 2、3 3 2022-12-1345(4 4)以间接地址)以间接地址RiRi为目的操作数为目的操作数MOVMOVRiRi,A A;(A)(Ri)(A)(Ri)MOVMOVRiRi,directdirect;(direct)(Ri)(direct)(Ri)MOVMOVRiRi,#data#data;data (Ri)data (Ri)本组指令都不影响本组指令都不影响PSWPSW中的标志位中的标志位。2022-12-1346(5 5)以)以DPTRDPTR为目的操作数为目的操作数MOVMOVDPTRDPTR,#data16#data16;dataHDPHdataHDPH,dataLDPLdat

33、aLDPL2022-12-1347例例 设片内设片内RAMRAM中(中(30H30H)=40H=40H,(,(40H40H)=10H=10H,分,分析以下程序执行后各单元及寄存器中的内容。析以下程序执行后各单元及寄存器中的内容。MOVMOV R0 R0,#30H#30H;30H R030H R0MOVMOV A A,R0R0;(R0)(R0))A AMOVMOV R1 R1,A A;(A)(A)R1R1MOVMOV B B,R1R1;(R1)(R1)B BMOVMOV 10H 10H,#20H#20H;20H 10H20H 10H执行上述指令后的结果为:执行上述指令后的结果为:(R0R0)=3

34、0H=30H,(R1R1)=(A A)=40H=40H,(B B)=10H=10H,(10H10H)=20H=20H2022-12-13482 2、片外数据存储器传送指令、片外数据存储器传送指令MOVX(P31)MOVX(P31)MOVXMOVXA A,RiRi;(Ri)A(Ri)AMOVXMOVXRiRi,A A;A A(RiRi)MOVXMOVXA A,DPTRDPTR;(DPTR)A(DPTR)AMOVXMOVXDPTRDPTR,A A;A(DPTRA(DPTR)第第1 1和第和第2 2条指令用于访问外部条指令用于访问外部RAMRAM的低地的低地址区,地址范围:址区,地址范围:0000H

35、-00FFH0000H-00FFH。第第3 3和第和第4 4条指令用于访问外部条指令用于访问外部RAMRAM的的64K64K字字节区,地址范围:节区,地址范围:0000H-FFFFH0000H-FFFFH。2022-12-1349 注:注:(1)四条指令都为寄存器)四条指令都为寄存器间接间接寻址寻址 (2)四条指令都是通过)四条指令都是通过累加器累加器A进进行数据传输的行数据传输的 (P32 11)2022-12-1350例例 设片外设片外RAMRAM空间(空间(0203H0203H)=6FH=6FH,分,分析执行下面指令后的结果。析执行下面指令后的结果。MOVMOV DPTRDPTR,#02

36、03H#0203H MOVXMOVX A A,DPTRDPTR MOVMOV 30H30H,A A MOVMOV A A,#0FH#0FH MOVXMOVX DPTRDPTR,A A 执行结果为:(执行结果为:(DPTRDPTR)=0203H=0203H,(30H30H)=6FH6FH,(,(0203H0203H)=(A A)=0FH=0FH2022-12-13513 3、程序存储器传送指令、程序存储器传送指令MOVCMOVC(属于变(属于变址寻址)址寻址)(P31)(P31)该类指令又称为该类指令又称为查表指令查表指令,经常用于查表。,经常用于查表。这类指令只有以下这类指令只有以下2 2条条

37、单字节指令。单字节指令。MOVCMOVCA A,A+DPTRA+DPTR ;(A)+(DPTR)A ;(A)+(DPTR)AMOVCMOVCA A,A+PCA+PC ;(A)+(PC);(A)+(PC)A A前者叫远程查表指令(前者叫远程查表指令(64KB64KB全空间),后全空间),后者叫近程查表指令(者叫近程查表指令(PCPC处处256B256B)。)。(P32 11)2022-12-1352二、数据交换指令二、数据交换指令数据交换指令数据交换指令要求第一个操作数必须为要求第一个操作数必须为累加器累加器A A。共共5 5条指令,分为字节交换和半字节交换条指令,分为字节交换和半字节交换两个类

38、型。两个类型。2022-12-13531 1、字节交换指令、字节交换指令(P31(P31底底)XCHXCHA A,RnRn;(A)(Rn);(A)(Rn)XCHXCHA A,directdirect;(A)(direct);(A)(direct)XCHXCHA A,RiRi;(A)(Ri);(A)(Ri)(P32 11)XCH R1,R2 2 2、低半字节交换指令(低四位交换)、低半字节交换指令(低四位交换)(P32)(P32)XCHDXCHD A A,Ri Ri ;(A;(A0 03 3)(Ri)(Ri)0 03 3)3 3、A A自身半字节交换指令(自身半字节交换指令(P36P36)SWA

39、PSWAP A A;(A;(A 0 03 3)(A)(A4 47 7)2022-12-1354例例 设设(R0)=30H(R0)=30H,(30H)=4AH(30H)=4AH,(A)=28H,(A)=28H,则则分别执行分别执行“XCH AXCH A,R0”R0”、“XCH AXCH A,R0”R0”“XCHD A“XCHD A,R0”R0”、“SWAP A”SWAP A”后各单元的后各单元的内容。内容。执行:执行:XCHXCH A A,R0 R0;后(;后(A A)=30H=30H,(,(R0R0)=28H=28H执行:执行:XCHXCH A A,R0 R0;后(;后(A A)=4AH=4A

40、H,(,(30H30H)=28H=28H执行:执行:XCHDXCHD A A,R0 R0 ;后(;后(A A)=2AH=2AH,(,(30H30H)=48H=48H执行:执行:SWAPSWAP A A;后(;后(A A)=82H=82H2022-12-1355三、堆栈操作指令(三、堆栈操作指令(P P3030 6 6,属于直,属于直接寻址)接寻址)堆栈操作有进栈和出栈两条指令,堆栈操作有进栈和出栈两条指令,常用常用于保存和恢复现场于保存和恢复现场。PUSHPUSH direct direct;先先(SP)+1 SP,(SP)+1 SP,;后后(direct)(SP)(direct)(SP)PO

41、PPOP directdirect;先先(SP)direct,(SP)direct,;后后(SP)(SP)-1 SP1 SP PUSH PUSH为进栈操作为进栈操作,POPPOP为出栈操作。为出栈操作。设(设(30H)=x,将将x保存起来保存起来MOV SP#70HPUSH 30HPOP 30H2022-12-1356注意:注意:(1)(1)进栈与出栈必须成对使用进栈与出栈必须成对使用;(2)(2)先进栈的必须后出栈,后进栈的必须先进栈的必须后出栈,后进栈的必须先出栈先出栈,否则会出现,否则会出现DPLDPL与与DPHDPH内容互换。内容互换。PUSHPUSHDPHDPHPUSHPUSHDPL

42、DPLPOPPOPDPLDPLPOPPOPDPHDPH2022-12-1357习题习题(P(P32 32 11.(1)11.(1)1 1MOV AMOV A,#1000H#1000H;A1000HA1000H2 2MOVX AMOVX A,1000H1000H;A(1000H)A(1000H)片外片外RAMRAM3 3MOVC AMOVC A,1000H1000H;A(1000H)A(1000H)片外片外ROMROM4 4MOVX 60HMOVX 60H,A A;片外;片外RAM(60H)ARAM(60H)A5 5MOV R0MOV R0,60H60H;片内;片内RAMRAM:(61H)(60

43、H)(61H)(60H)MOV 61H MOV 61H,R0R06.XCH R16.XCH R1,R2R2 ;R1R2R1R27.MOVX DPTR7.MOVX DPTR,#2000H#2000H ;DPTR2000HDPTR2000H8.MOVX 60H8.MOVX 60H,DPTRDPTR;片内;片内RAMRAM片外片外RAMRAM下列指令是否错误下列指令是否错误2022-12-13582022-12-13593.2.2 3.2.2 算术运算指令算术运算指令指令内容:指令内容:包括加、减、乘、除、包括加、减、乘、除、BCDBCD码码调整等指令,共有调整等指令,共有2424条。条。对标志位的

44、影响:对标志位的影响:结果会结果会影响影响进位标志进位标志CYCY、半进位标志、半进位标志ACAC、溢出标志、溢出标志OVOV、奇偶标志、奇偶标志位位P P,但加,但加1 1和减和减1 1指令不影响这些标志位。指令不影响这些标志位。2022-12-1360PSW寄存器CyCy:进位标志位(位:进位标志位(位7 7有进位)有进位)ACAC:辅助进位标志位(位:辅助进位标志位(位3 3有进位)有进位)F0:F0:供用户使用的标志位供用户使用的标志位OVOV:溢出标志位(位:溢出标志位(位6 6有进位,位有进位,位7 7没进位;或位没进位;或位7 7有进位,位有进位,位6 6没进位)没进位)P P:

45、奇偶标志位:奇偶标志位 A A中数据的奇偶性。当中数据的奇偶性。当1 1的个数为奇数,的个数为奇数,P=1P=1,否则,否则P=0P=0。2022-12-1361一、加法指令一、加法指令分为分为不带进位加法不带进位加法、带进位加法带进位加法和和加加1 1指令指令1 1、不带进位加法指令、不带进位加法指令ADDADDADDADD A A,RnRn;(A)+(Rn)A;(A)+(Rn)AADDADD A A,directdirect;(A)+(direct)A;(A)+(direct)AADDADD A A,RiRi;(A)+(Ri);(A)+(Ri)A AADDADD A A,#data#dat

46、a;(A)+dataA;(A)+dataA 这组指令这组指令影响标志位影响标志位CYCY、ACAC、OVOV和和P P,溢,溢出标志出标志OVOV只对有符号运算有意义。只对有符号运算有意义。2022-12-1362例例(A A)=53H=53H,(R0)=FCH(R0)=FCH,执行,执行ADD A,R0ADD A,R02022-12-1363注意注意:溢出标志溢出标志OVOV只影响有符号数的加法运只影响有符号数的加法运算,算,若若OV=0OV=0,则,则A A中结果正确;若中结果正确;若OV=1OV=1,则则A A中结果不正确,只能看成无符号数。中结果不正确,只能看成无符号数。2022-12

47、-13642 2、带进位加法指令、带进位加法指令ADDCADDCADDCADDC A A,RnRn;(A)+(Rn)+CYA;(A)+(Rn)+CYAADDCADDC A A,directdirect;(A)+(direct)+CYA;(A)+(direct)+CYAADDCADDC A A,RiRi;(A)+(Ri)+CYA;(A)+(Ri)+CYAADDCADDC A A,#data#data;(A)+data+CYA;(A)+data+CYA 这组指令这组指令影响标志位影响标志位CYCY、ACAC、OVOV和和P P,溢,溢出标志出标志OVOV只对有符号运算有意义。只对有符号运算有意义。

48、注:注:CyCy伪指令执行前的伪指令执行前的CyCy值,不是指令执值,不是指令执行过程中形成的行过程中形成的CyCy值。值。2022-12-13653 3、加、加1 1指令指令INCINCINCINCA A;(;(A A)+1 A+1 AINCINCRnRn;(;(RnRn)+1 Rn+1 RnINCINCdirectdirect;(;(directdirect)+1 direct+1 directINCINCRiRi;(;(RiRi)+1+1(RiRi)INCINCDPTRDPTR;(;(DPTRDPTR)+1 DPTR+1 DPTR这组指令除了这组指令除了第一条影响标志位第一条影响标志位P

49、 P之外,之外,其它指令不影响标志位。其它指令不影响标志位。(A)=FFH,(Cy)=0,(A)=FFH,(Cy)=0,执行执行INC AINC A 后后,Cy=,Cy=?2022-12-1366二、减法指令二、减法指令减法指令分为带借位减法指令和减减法指令分为带借位减法指令和减1 1指令。指令。1 1、带借位减法指令、带借位减法指令SUBB(SUBB(自带自带CyCy减法指令减法指令)SUBBSUBBA A,RnRn ;(A);(A)-(Rn)(Rn)-CYACYASUBBSUBBA A,directdirect;(A);(A)-(direct)-CYA(direct)-CYASUBBSUB

50、BA A,RiRi;(A);(A)-(Ri)(Ri)-CYACYASUBBSUBBA A,#data#data;(A);(A)-datadata-CYACYA2022-12-13672 2、减、减1 1指令指令DECDECDECDECA A;(A)-1 A(A)-1 ADECDECRnRn;(Rn)-1 Rn(Rn)-1 RnDECDECdirectdirect;(direct)-1 (direct)-1 directdirectDECDECRiRi;(Ri)-1(Ri)(Ri)-1(Ri)这组指令除了这组指令除了第一条影响标志位第一条影响标志位P P之外,之外,其它指令不影响标志位。其它指令

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

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

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


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

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


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