第3章_MCS-51单片机指令系统_第1页
第3章_MCS-51单片机指令系统_第2页
第3章_MCS-51单片机指令系统_第3页
第3章_MCS-51单片机指令系统_第4页
第3章_MCS-51单片机指令系统_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章章 MCS-51指令系统指令系统2022-6-141第第3章章 MCS-51单片机指令系统单片机指令系统第第3章章 MCS-51指令系统指令系统2022-6-142本章教学要求本章教学要求o熟悉MCS-51单片机指令系统的分类、格式;o熟悉MCS-51指令系统的七种寻址方式;o掌握MCS-51指令系统的数据传送、算术运算、逻辑运算、转移操作、布尔运算等指令的功能;第第3章章 MCS-51指令系统指令系统2022-6-143本章目录本章目录3.1 指令系统简介3.1.1 指令系统的分类3.1.2 指令格式3.1.3 指令中的常用符号3.1.4 寻址方式3.2 指令系统指令系统3.2.1

2、数据传送指令数据传送指令3.2.2 算术运算指令算术运算指令3.2.3 逻辑运算指令逻辑运算指令3.2.4 控制转移指令控制转移指令3.2.5 位操作指令位操作指令习题与思考题习题与思考题第第3章章 MCS-51指令系统指令系统2022-6-1443.1 3.1 指令系统简介指令系统简介指令系统 计算机所有指令的集合,称为该计算机的指令系统,它是表征计算机性能的重要标志。每种计算机都有它自己特有的指令系统。指令是指计算机执行某种操作(如传送数据、做算术运算等)的命令。第第3章章 MCS-51指令系统指令系统2022-6-145要让计算机工作,就得向计算机发出指令。o指令的格式是机器码指令格式,

3、如:如:11100101B 11100101B ,即数字格式。,即数字格式。o另一种指令格式,即汇编指令格式,如:如:MOV P1, #5BHMOV P1, #5BH-指令的两种格式指令的两种格式3.1 3.1 指令系统简介指令系统简介第第3章章 MCS-51指令系统指令系统2022-6-146-MCS-51-MCS-51汇编语言指令格式汇编语言指令格式标号段: 操作码段 操作数段 ;注释段 操作数1 ,操作数23.1 3.1 指令系统简介指令系统简介第第3章章 MCS-51指令系统指令系统2022-6-147-特点特点1) 指令执行时间短。只需1个机器周期的指令有64条,2个机器周期的指令有

4、45条,而4个机器周期的指令仅有2条(既乘法和除法指令)。2) 指令字节少。单字节指令有49条,双字节指令有46条,三字节指令有16条。3) 位操作指令极为丰富,这体现了MCS-51单片机具有面向控制的特点。3.1 3.1 指令系统简介指令系统简介第第3章章 MCS-51指令系统指令系统2022-6-1483.1.1 3.1.1 指令系统的分类指令系统的分类 MCS-51单片机能够识别并执行的指令共有111条。按指令所占字节数、指令执行时间和指令功能进行分类。 1按指令所占字节数分类 1) 单字节指令(49条) 2) 双字节指令(46条) 3) 三字节指令(16条)第第3章章 MCS-51指令

5、系统指令系统2022-6-1492按指令执行时间分类按指令执行时间分类1) 单周期指令(65条)2) 双周期指令(44条)3) 四周期指令(2条)3.1.1 3.1.1 指令系统的分类指令系统的分类第第3章章 MCS-51指令系统指令系统2022-6-14101) 数据传送类指令(29条)2) 算术运算类指令(24条)3) 逻辑运算类指令(24条)4) 控制转移类指令(17条)5) 位操作类指令(17条)3.1.1 3.1.1 指令系统的分类指令系统的分类第第3章章 MCS-51指令系统指令系统2022-6-14113.1.2 3.1.2 指令格式指令格式 指令由操作码和操作数组成。操作码用来

6、规定要执行的操作的性质,操作数为指令的操作提供数据和地址。1指令的基本格式符号地址: 操作码 操作数1 ,操作数2 ,操作数3 ;注释 其中符号地址和操作码之间用“:”作为分隔符,也可再加上若干空格。操作码和操作数之间用空格作为分隔符。操作数之间用“,”作为分隔符。注释之前用“;”作为分隔符。第第3章章 MCS-51指令系统指令系统2022-6-1412一条指令必须在一行中写完。例如:MAIN:MOV A,#10H ;主程序段nMAIN为符号地址;nMOV为操作码;nA、#10H为二个操作数;n最后是注释。 指令在送入计算机执行之前,必须先转换成机器语言形式。转换成机器语言的过程称为汇编,汇编

7、有机器汇编和手工汇编两种方法。3.1.2 3.1.2 指令格式指令格式第第3章章 MCS-51指令系统指令系统2022-6-14133.1.3 3.1.3 指令中的常用符号指令中的常用符号 为了便于阅读指令,MCS-51指令助记符中的一些常用符号约定如下。nRn:表示当前工作寄存器R0R7中的一个。nRi:表示寄存器间接寻址,常作间接寻址的地址指针。其中Ri代表R0和R1寄存器中的一个。nDPTR:表示以DPTR为数据指针的间接寻址,用于对外部64RAM/ROM寻址。ndirect:表示内部数据存贮器单元的地址及特殊功能寄存器SFR的地址,对SFR而言,既可使用它的物理地址,也可直接使用它的名

8、字。第第3章章 MCS-51指令系统指令系统2022-6-1414o#data:表示8位立即数,即8位常数,取值范围为#00H#0FFH。odata16:表示16位立即数,即16位常数,取值范围为#0000H#0FFFFH。oaddr16:表示16位地址。oaddr11:表示11位地址。orel:用补码形式表示的地址偏移量,取值范围为-128+127。obit:表示内部RAM和SFR中的具有位寻址功能的位地址。3.1.3 3.1.3 指令中的常用符号指令中的常用符号第第3章章 MCS-51指令系统指令系统2022-6-1415o:表示间接寻址寄存器或基址寄存器的前缀符号。o$:表示当前指令的地

9、址。o/:位操作数的前缀,表示对该位操作数取反,如:/bit。o(x):表示存储单元x的内容。o(x):表示以寄存器或存储单元x的内容作为地址的存储单元的内容。o:表示数据传送方向。3.1.3 3.1.3 指令中的常用符号指令中的常用符号第第3章章 MCS-51指令系统指令系统2022-6-14163.1.4 3.1.4 寻址方式寻址方式 如何找到参与运算的操作数据或数据所在的地址称为寻址方式。所以寻址方式是在地址范围内如何找到所需要的操作数的地址。 MCS-51指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址和位寻址等七种。第第3章章 MCS-

10、51指令系统指令系统2022-6-1417 立即寻址是将操作数直接写在指令中,作为指令的一部分存放在代码段里,位置在程序存储器中。立即寻址中的操作数,称为立即数。例如:MOV A, #30H ;30HA3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6-14182.2.直接寻址直接寻址 直接寻址是将操作数的地址直接存放在指令中。这种寻址方式的操作数指的是内部数据存储器中存放数据的地址,或存放数据的一个特殊功能寄存器地址。例如:MOV A, 30H ;(30H)A3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6

11、-1419直接寻址方式可访问的范围直接寻址方式可访问的范围1) 特殊功能寄存器。这部分存储单元既可以用单元地址给出,也可以用寄存器符号的形式给出。如:MOV A, 90H 或 MOV A, P1为同一条指令的两种写法(特殊功能寄存器只能用直接寻址方式访问)。2) 内部数据存储器的低128个字节单元。直接以单元地址的形式给出对于8032/8052等单片机,其内部高128字节RAM(80HFFH)不能用直接寻址方式访问。3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6-14203) 位地址空间片内RAM中20H2FH中的128个位地址,以及SFR中的11

12、个可进行位寻址的寄存器中的位地址(可位寻址的特殊功能寄存器有B、ACC、PSW、IP、IE、SCON、TCON、P0P3)。4) 在一些程序控制指令中,可采用直接寻址方式提供程序转移的目标地址。3.1.4 3.1.4 寻址方式寻址方式直接寻址方式可访问的范围直接寻址方式可访问的范围第第3章章 MCS-51指令系统指令系统2022-6-1421-寄存器寻址寄存器寻址寄存器寻址是指操作数存放在寄存器中,并且寻址时的寄存器已隐含在指令的操作码中。例如:MOV A, R53.1.4 3.1.4 寻址方式寻址方式3.寄存器寻址寄存器寻址第第3章章 MCS-51指令系统指令系统2022-6-1422寄存器

13、寻址方式的寻址范围:(1) 4个工作寄存器组共32个通用寄存器(在指令中只能使用当前寄存器组)(2) 部分特殊功能寄存器。如A,B,DPTR。-寄存器寻址寄存器寻址3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6-1423-寄存器寻址寄存器寻址4.寄存器间接寻址寄存器间接寻址是指操作数据存放在以寄存器内容为地址的单元中。如:MOV A, R0 ;(R0)A指令功能为将R0所指出的内部RAM单元内容送入累加器A中,执行过程如图所示。图中设R0=60H。3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6-1424

14、寄存器间接寻址的寻址范围:寄存器间接寻址的寻址范围:1) 内部低128字节单元(只能使用R0、R1作间址寄存器)。2) 外部数据存储器(64KB字节,使用DPTR作间址寄存器。另外,外部低128B单元也可用R0、R1作间址寄存器寻址)。3) 在堆栈操作指令(PUSH、POP)中,以堆栈指针SP作间址寄存器,寻址空间为片内RAM。3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6-1425-基址变址寻址基址变址寻址基址变址寻址是指操作数存放在以变址寄存器和基址寄存器的内容相加形成的数为地址的单元中。其中累加器A作变址寄存器、程序计数器PC或寄存器DPTR

15、作基址寄存器。基址加变址寻址方式常用于查表操作。如:MOVC A, A+PC ;PC+1PC,(A+PC)AMOVC A, A+DPTR ;(A+DPTR)A3.1.4 3.1.4 寻址方式寻址方式5.基址变址寻址基址变址寻址第第3章章 MCS-51指令系统指令系统2022-6-1426相对寻址是将程序计数器PC的当前值与指令第二字节给出的偏移量相加,从而形成转移的目标地址。例如:JC 80H ;C=1则跳转-相对寻址相对寻址3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6-1427-位寻址位寻址位寻址是指对片内RAM中20H2FH中的128个位地址

16、,以及SFR中的11个可进行位寻址的寄存器中的位地址寻址(可位寻址的特殊功能寄存器有B、ACC、PSW、IP、IE、SCON、TCON、P0P3)。例如:MOV C, 20H此指令是将RAM中位寻址区20H位地址中的内容,送给位累加器Cy。位寻址指令不同于字节地址寻址指令,例如:MOV A, 20H 3.1.4 3.1.4 寻址方式寻址方式7.位寻址位寻址第第3章章 MCS-51指令系统指令系统2022-6-1428-位寻址的表示形式位寻址的表示形式1) 直接使用位地址包括位寻址区的位地址包括位寻址区的位地址00H7FH和部分特殊功能寄存器的和部分特殊功能寄存器的位地址。例如,位地址。例如,P

17、SW寄存器第寄存器第2位的位地址为位的位地址为D2H。2) 位名称表示法专用寄存器中的一些寻址位是有符号名的,对其进行位寻址专用寄存器中的一些寻址位是有符号名的,对其进行位寻址时可用其符号名,例如,时可用其符号名,例如,PSW寄存器的第寄存器的第2位可用位可用OV表示。表示。3) 单元地址加位表示法例如,例如,2F单元的第单元的第1位,可表示为位,可表示为2FH.1。再如,再如,D0H单元(单元(PSW)的第)的第2位,可表示为位,可表示为D0H.2。3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6-14294) 专用寄存器名称加位表示法例如,例如,

18、PSW寄存器的第寄存器的第2位可表示为:位可表示为:PSW.2。对于可位寻址的特殊功能寄存器,上面对于可位寻址的特殊功能寄存器,上面4种表示法是等种表示法是等效的。以读取效的。以读取PSW第二位为例的第二位为例的4种位寻址指令如下:种位寻址指令如下:MOV C, 0D2H ;直接使用位地址寻址直接使用位地址寻址MOV C, OV ;使用位名称寻址使用位名称寻址MOV C, 0D0H.2 ;使用单元地址加位表示法寻址使用单元地址加位表示法寻址MOV C, PSW.2 ;使用专用寄存器名称加位表示法寻址使用专用寄存器名称加位表示法寻址3.1.4 3.1.4 寻址方式寻址方式-位寻址的表示形式位寻址

19、的表示形式第第3章章 MCS-51指令系统指令系统2022-6-1430在MCS-51单片机的指令系统中,指令对哪一个存储器空间进行操作,是由指令的操作码和寻址方式确定的。1)对程序存储器只能采用立即寻址和基址加变址寻址方式;2)对特殊功能寄存器只能采用直接寻址方式,不能采用寄存器间接寻址; 3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6-14313)对8032/8052等单片机内部RAM的高128个字节(80HFFH),只能采用寄存器间接寻址,不能使用直接寻址方式;4)对位操作指令只能对位寻址区操作;5)外部扩展的数据存储器只能用MOVX指令访问

20、;6)内部RAM的低128个字节(00H7FH)既能用直接寻址,也能用间接寻址。3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6-1432存储空间对应的寻址方式3.1.4 3.1.4 寻址方式寻址方式第第3章章 MCS-51指令系统指令系统2022-6-14333.2 3.2 指令系统指令系统MCS-51的数据传送指令共有28条。助记符有MOV、MOVC、MOVX、XCH、XCHD、PUSH、POP。数据传送指令一般的操作是把源操作数传送到目的操作数,指令执行完成后,源操作数不变,目的操作数等于源操作数。如果要求在进行数据传送时,目的操作数不丢失,则

21、不能用直接传送指令,而采用交换型的数据传送指令。数据传送指令不影响标志Cy、AC和OV,但可能会对奇偶标志P有影响。第第3章章 MCS-51指令系统指令系统2022-6-1434-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1435-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1436助记符 功能说明MOV A, Rn ;(Rn)ARn中的内容送到累加器A中MOV A, direct ;(direct) A直接地址单元中的内容送到 累加器A中MOV A, Ri ;(Ri) A Ri内容指向的地址单元中的 内容送到累加器A中MO

22、V A, #data;dataA立即数送到累加器A中功能:将源操作数指定内容送到累加器A中。-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1437助记符功能说明MOV Rn, A ;(A)Rn 累加器A中的内容送到寄存 器Rn中MOV Rn, direct;(direct) Rn直接寻址单元中的 内容送到寄存器Rn中MOV Rn, #data;dataRn 立即数直接送到寄存器 Rn中功能:将源操作数指定的内容送到所选定的工作寄存器Rn中。-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1438助记符 功能说明MOV direc

23、t, A ;(A)direct 累加器A中的内容送到直接地址单元中MOV direct, Rn;(Rn)direct寄存器Rn中的内容送到直接地址单元中MOV direct1, direct2 ;(direct2) direct1 直接地址单元2中的内容送到直接地址1中MOV direct, Ri ;(Ri) direct以寄存器Ri中的内容为地址的单元中内容送到直接地址单元中MOV direct,#data ;datadirect 立即数送到直接地址单元中-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1439功能:将源操作数指定的内容送到由直接地址指出的片内

24、存储单元中。如:MOV 20H, A;累加器A中的内容送到20H直接地址单元中MOV 20H, R1 ;寄存器R1中的内容送到20H直接地址单元中MOV 20H, 30H;30H直接地址单元中的内容送到20H直接地址单元中MOV 20H, R1;以寄存器R1中的内容为地址的单元中内容送到20H直接地址单元中MOV 20H, #34H ;立即数送到20H直接地址单元中MOV P2, #34H ;立即数送到P2直接地址单元中-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1440助记符 功能说明MOV Ri, A;(A)(Ri) 累加器A中内容送到以Ri中内容为 地

25、址的RAM单元中MOV Ri, direct ;(direct) (Ri)直接地址单元中内容送到以Ri中内容为地址的RAM单元中MOV Ri, #data ;data(Ri) 立即数送到以Ri中内容 为地址的RAM单元中-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1441功能:将源操作数指定的内容送到以R0或R1为地址指针的片内RAM存储单元中。如:MOV R0, A;累加器A中内容送到以R0中内容为 地址的RAM单元中MOV R1, 20H;20H单元中内容送到以R1中内容为 地址的RAM单元中MOV R0, #34H ;立即数34H送到以R0中内容为地

26、址的RAM单元中-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1442助记符 功能说明MOV DPTR, #data16;dataHDPH,dataLDPL ;16位常数的高8位送到DPH,低8位送到DPL功能:将一个16位的立即数送到DPTR中去。其中高8位送入DPH,低8位送入DPL。如:MOV DPTR, #1234H;指令执行后DPH中的值为 12H,DPL中的值为34H-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1443如果我们分别向DPH和DPL送数,则结果也一样。如下面两条指令:MOV DPH, #12HMOV

27、 DPL, #34H就相当于执行了MOV DPTR, #1234H。MCS-51是一种8位机,这是唯一的一条16位立即数传递指令。-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1444助记符 功能说明MOVX A, Ri ;(Ri) A寄存器Ri指向的片外RAM单元中的内容送到累加器A中MOVX Ri, A ;A(Ri)累加器A中内容送到寄存器Ri指向的片外RAM单元中MOVX A, DPTR ;(DPTR) A数据指针指向的片外 RAM单元中的内容送到累加器A中MOVX DPTR, A ;(A)(DPTR)累加器A中内容送到数 据指针指向的片外RAM单元中-

28、传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1445功能:在MCS-51中,与外部存储器RAM打交道的只可以是A累加器。所有需要送入外部RAM的数据必须通过A传送,而所有要读入的外部RAM中的数据也必须通过A读入。在此我们可以看出内外部RAM的区别,内部RAM间可以直接进行数据传递,而外部RAM则不行。例如,要将外部RAM中某一单元(假设为0100H单元的数据)送入另一个单元(假设为0200H单元),则必须先将0100H单元中的内容读入A,然后再送到0200H单元中去。-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1446要读

29、或写外部RAM,必须要知道16位的RAM地址。在后两条指令中,地址是被直接放在DPTR中的。而前两条指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提供低8位地址,此时,高8位地址要由P2口来提供。使用时应先将要读或写的地址送入DPTR或Ri(高8位地址送到P2口)中,然后再用读/写指令。-传送指令列表传送指令列表第第3章章 MCS-51指令系统指令系统2022-6-1447例3-1 将外部RAM的100H单元中内容送入外部RAM的200H单元中。MOVDPTR, #0100HMOVXA, DPTRMOVDPTR, #0200HMOVXDPTR, A-传送指令应用传送指令应用第第3章章

30、MCS-51指令系统指令系统2022-6-1448助记符 功能说明MOVC A, A+DPTR ;(A)+(DPTR) A表格地址 ;单元中的内容送到累加器A中MOVC A, A+PC;(PC)+1PC,(A)+(PC) A ;表格地址单元中的内容送到累加器A中功能:将ROM中的数据送到A中。常用此指令来查一个已存储在ROM中的数据表格。这组指令也称为查表指令。-传送指令应用传送指令应用第第3章章 MCS-51指令系统指令系统2022-6-1449以DPTR或PC为基址,以A为变址,在不断修改A中内容(等值增量)的同时,执行该指令,实现对ROM中存储的一块区域数据的读取。以PC为基址时,不用设

31、置PC的值,只需根据A的内容,就可以查出表格中的数据。但表格只能放在该条查表指令后面的256个单元之中,表格的大小受到限制,而且表格只能被一段程序所利用。而以DPTR为基址时,表格的大小和位置可以在64 KB的ROM中任意安排,并且表格可被任意程序块所共享。说明:查找到的结果放在A中,因此,这类指令执行前后,A中的值不一定相同。-传送指令应用传送指令应用第第3章章 MCS-51指令系统指令系统2022-6-1450例3-2 有一个110的平方表存放在0100H开始的ROM中,用DPTR和R0基址+变址的寻址方式实现查表功能,确定110(在R0中)的平方值。MOVDPTR, #0100HMOVA

32、, R0MOVCA, A+DPTR.ORG0100H ;ORG是指明后面数据块的起始地址DB0,1, 4, 9, 16, 25, 36DB49, 64, 81, 100 ;DB是定义字节指令-传送指令应用传送指令应用第第3章章 MCS-51指令系统指令系统2022-6-1451助记符 功能说明PUSH direct ;(SP)+1SP,(direct) (SP);堆栈指针首先加1,直接寻址单元;中的数据送到堆栈指针SP所指的;单元中POP direct;(SP) direct,(SP) - 1SP;堆栈指针SP所指的单元中的数据;送到直接寻址单元中,堆栈指针;SP再进行减1操作-传送指令应用传

33、送指令应用第第3章章 MCS-51指令系统指令系统2022-6-1452功能:第1条为压入堆栈指令,就是将direct中的内容送入堆栈中;第2条为弹出堆栈指令,就是将堆栈中的内容送回到direct中。如: MOVSP, #5FH MOVA, #100 MOVB, #20 PUSHACC PUSHB POP ACC PUSH B-传送指令应用传送指令应用其中,PUSH ACC指令是这样执行的:将SP中的值加1,即变为60H,然后将A中的值送到60H单元中,因此执行完本条指令后,内存60H单元中的值就是100。同样,执行PUSH B时,是将SP中的值加1,即变为61H,然后将B中的值送入到61H单

34、元中,即执行完本条指令后,61H单元中的值变为20。第第3章章 MCS-51指令系统指令系统2022-6-1453助记符 功能说明XCH A, Rn ;(A)(Rn)累加器与工作寄存器 Rn中的内容互换XCH A, direct ;(A)(direct)累加器与直接地址 单元中的内容互换XCH A, Ri ;(A)(Ri)累加器与工作寄存器 Ri所指存储单容互换元中的内容互换-传送指令应用传送指令应用第第3章章 MCS-51指令系统指令系统2022-6-1454XCHD A, Ri;(A.3A.0)(Ri.3Ri.0)累加器与工作寄存器Ri所指存储单元中的低半字节内容互换功能:这4条指令是把累

35、加器A中的内容与源操作数所指的数据相互交换。类似指令:SWAP A; (A.3A.0)(A.7A.4)累加器中内容高低半字节互换。-传送指令应用传送指令应用第第3章章 MCS-51指令系统指令系统2022-6-1455例3-3 假设A中内容为34H,R0指向的单元内容为56H。执行下列指令后看结果。MOV R6, #29H ;R6=29HXCH A, R6 ;A=29H,R6=34HSWAP A ;A=92HXCH A, R6 ;A=34H,R6=92HXCHD A, R0 ;A=36H,(R0)=54H-传送指令应用传送指令应用第第3章章 MCS-51指令系统指令系统2022-6-14563

36、.2.2 3.2.2 算术运算类指令算术运算类指令MCS-51的算术运算指令共有24条。助记符有ADD、ADDC、SUBB、DA、INC、DEC、MUL、DIV。算术运算主要是执行加、减、乘、除法四则运算。第第3章章 MCS-51指令系统指令系统2022-6-14573.2.2 3.2.2 算术运算类指令算术运算类指令第第3章章 MCS-51指令系统指令系统2022-6-14583.2.2 3.2.2 算术运算类指令算术运算类指令第第3章章 MCS-51指令系统指令系统2022-6-14593.2.2 3.2.2 算术运算类指令算术运算类指令第第3章章 MCS-51指令系统指令系统2022-6

37、-1460例3-4 设1067H存在于R1R0中,30A0H存在于R3R2中,计算R1R0+R3R2,结果存于R5R4中。MOV A, R0ADD A, R2 ;R0+R2A和CyMOV R4, AMOV A, R1ADDC A, R3;R1+R3+CyA和CyMOV R5, A R1 R0+R3 R2 R5 R43.2.2 3.2.2 算术运算类指令算术运算类指令第第3章章 MCS-51指令系统指令系统2022-6-1461例3-5 设A=12H,R0=33H,(21H)=32H,(34H)=22H,DPTR=1234H。连续执行下面指令后看相应寄存器和单元中的结果。 INC A;A=13H

38、INC R0;R0=34HINC 21H;(21H)=33HINC R0;(34H)=23HINC DPTR ;DPTR=1235H3.2.2 3.2.2 算术运算类指令算术运算类指令第第3章章 MCS-51指令系统指令系统2022-6-14623.2.3 3.2.3 逻辑运算类指令逻辑运算类指令逻辑运算和移位指令共有25条,助记符有ANL、ORL、XRL、CLR、CPL、RL、RLC、RR、RRC,SWAP。有与、或、异或、求反、左/右移位、清0等逻辑操作,有直接、寄存器和寄存器间址等寻址方式。这类指令一般不影响程序状态字(PSW)标志。MCS-51指令系统的逻辑运算指令见下表。第第3章章

39、MCS-51指令系统指令系统2022-6-1463逻辑运算类指令列表第第3章章 MCS-51指令系统指令系统2022-6-1464逻辑运算类指令列表第第3章章 MCS-51指令系统指令系统2022-6-1465助记符 功能说明ORL A, Rn ;(A)(Rn)AORL A, direct ;(A)(direct)AORL A, Ri ;(A)(Ri)AORL A, #data ;(A)dataAORL direct, A ;(direct)(A)directORL direct, #data ;(direct)datadirect 3.2.3 3.2.3 逻辑运算类指令逻辑运算类指令第第3章

40、章 MCS-51指令系统指令系统2022-6-14663.2.3 3.2.3 逻辑运算类指令逻辑运算类指令功能:将两个单元中的内容执行逻辑或操作。如果目功能:将两个单元中的内容执行逻辑或操作。如果目的操作数的直接地址是的操作数的直接地址是I/O地址,则为地址,则为“读读修修改改写写”操作。如:操作。如:MOVA, #45H;A=45HMOVR1, #25H;R1=25HMOV25H, #39H ;(25H)=39HORLA, R1;45H39H = 7DH, A = 7DHORL25H, #13H ;39H13H = 3BH, (25H) = 3BHORL25H, A;3BH7DH =7FH,

41、 (25H) = 7FH第第3章章 MCS-51指令系统指令系统2022-6-14673.2.3 3.2.3 逻辑运算类指令逻辑运算类指令助记符助记符 功能说明功能说明ANL A, Rn ;(A)(Rn)AANL A, direct ;(A)(direct)AANL A, Ri ;(A)(Ri)AANL A, #data ;(A)dataAANL direct, A ;(direct)(A)directANL direct, #data ;(direct)datadirect第第3章章 MCS-51指令系统指令系统2022-6-14683.2.3 3.2.3 逻辑运算类指令逻辑运算类指令功能:

42、将两个单元中的内容执行逻辑与操作。如果目的操功能:将两个单元中的内容执行逻辑与操作。如果目的操作数的直接地址是作数的直接地址是I/O地址,则为地址,则为“读读修改修改写写”操作。如:操作。如:MOVA, #45H;A=45HMOVR1, #25H;R1=25HMOV25H, #79H;(25H)=79HANLA, R1;45H79H = 41H, A = 41HANL25H, #15H;79H15H = 11H, (25H) = 11HANL25H, A;11H41H = 01H, (25H) = 01H第第3章章 MCS-51指令系统指令系统2022-6-14693.2.3 3.2.3 逻辑

43、运算类指令逻辑运算类指令3逻辑异或指令(逻辑异或指令(6条)条)第第3章章 MCS-51指令系统指令系统2022-6-14703.2.3 3.2.3 逻辑运算类指令逻辑运算类指令第第3章章 MCS-51指令系统指令系统2022-6-14713.2.3 3.2.3 逻辑运算类指令逻辑运算类指令第第3章章 MCS-51指令系统指令系统2022-6-14723.2.3 3.2.3 逻辑运算类指令逻辑运算类指令第第3章章 MCS-51指令系统指令系统2022-6-14733.2.3 3.2.3 逻辑运算类指令逻辑运算类指令第第3章章 MCS-51指令系统指令系统2022-6-14743.2.3 3.2

44、.3 逻辑运算类指令逻辑运算类指令第第3章章 MCS-51指令系统指令系统2022-6-14753.2.3 3.2.3 逻辑运算类指令逻辑运算类指令第第3章章 MCS-51指令系统指令系统2022-6-1476SWAP A; (A.3A.0)(A.7A.4)累加器中内容高低半字节互换第第3章章 MCS-51指令系统指令系统2022-6-14773.2.4 3.2.4 控制转移类指令控制转移类指令控制转移指令有17条,助记符有:ACALL、LCALL、RET、RETI、AJMP、LJMP、SJMP、JMP、CJNE、DJNZ、JZ、JNZ、NOP。控制转移指令用于控制程序的流向,所控制的范围即为

45、程序存储器区间。第第3章章 MCS-51指令系统指令系统2022-6-1478控制转移类指令列表3.2.4 3.2.4 控制转移类指令控制转移类指令第第3章章 MCS-51指令系统指令系统2022-6-14793.2.4 3.2.4 控制转移类指令控制转移类指令控制转移类指令列表第第3章章 MCS-51指令系统指令系统2022-6-14803.2.4 3.2.4 控制转移类指令控制转移类指令控制转移类指令列表第第3章章 MCS-51指令系统指令系统2022-6-1481 MOV DPTR, #TAB ;将TAB代表的地址送入DPTR JMP A+DPTR ;跳转 TAB: AJMP ROUT0

46、;A=0时,跳转到ROUT0TAB+2: AJMP ROUT1;A=2时,跳转到ROUT1TAB+4: AJMP ROUT2;A=4时,跳转到ROUT2TAB+6: AJMP ROUT3;A=6时,跳转到ROUT3.ROUT0:.ROUT1: .ROUT2: .ROUT3: .3.2.4 3.2.4 控制转移类指令控制转移类指令第第3章章 MCS-51指令系统指令系统2022-6-1482例3-7 条件转移程序结构举例。MOVA, R0JZL1MOVR1, #00HAJMPL2L1:MOVR1, #0FFHL2:SJMPL2在执行上面这段程序前,如果R0=0,结果是R1=0FFH;如果R00,

47、结果是R1=00H。把上面例子中的JZ改成JNZ后,如果R0=0,结果是R1=00H;如果R00,结果是R1=0FFH。3.2.4 3.2.4 控制转移类指令控制转移类指令第第3章章 MCS-51指令系统指令系统2022-6-1483 MOV A, R0 CJNE A, #10H, L1 ;如R010H,则转移至标号L1 MOV R1, #0 ;如R0=10H,则不转移,00HR1 AJMP L3L1: JC L2 ;如Cy=1,即R010H,0AAHR1 AJMP L3L2: MOV R1, #0FFH ;R010H,则R1=0AAH;如果R010H,则R1=0FFH。3.2.4 3.2.4 控制转移类指令控制转移类指令第第3章章 MCS-51指令系统指令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论