单片机原理与应用第四章

上传人:cn****1 文档编号:569518884 上传时间:2024-07-30 格式:PPT 页数:128 大小:415.50KB
返回 下载 相关 举报
单片机原理与应用第四章_第1页
第1页 / 共128页
单片机原理与应用第四章_第2页
第2页 / 共128页
单片机原理与应用第四章_第3页
第3页 / 共128页
单片机原理与应用第四章_第4页
第4页 / 共128页
单片机原理与应用第四章_第5页
第5页 / 共128页
点击查看更多>>
资源描述

《单片机原理与应用第四章》由会员分享,可在线阅读,更多相关《单片机原理与应用第四章(128页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章MCS-51系列单片机指令系统系列单片机指令系统 4.1MCS-51系列单片机指令系统概述系列单片机指令系统概述4.2MCS-51系列系列单片机片机寻址方式址方式4.3MCS-51系列系列单片机指令系片机指令系统MCS-51系列单片机指令系统按功能分系列单片机指令系统按功能分为为5类指令,分别为:类指令,分别为:数据传送(数据传送(29条)条)算术运算(算术运算(24条)条)逻辑运算(逻辑运算(24条)条)控制转移(控制转移(17条)条)布尔处理(布尔处理(17条)条)4.1MCS-51系列单片机指令系统概述系列单片机指令系统概述1、MCS-51指令系统用指令系统用42种助记符表示

2、了种助记符表示了33种种111条指令功能。其中:条指令功能。其中:单字节指令单字节指令49条条单周期指令单周期指令64条条双字节指令双字节指令45条条双周期指令双周期指令45条条三字节指令三字节指令17条条四周期指令四周期指令2条条4.1.1指令系统特点指令系统特点2、MCS-51指令系统的空间和时间效率均比较指令系统的空间和时间效率均比较高。是一种简明、易掌握、功能强的指令系高。是一种简明、易掌握、功能强的指令系统。统。3、MCS-51指令系统中有指令系统中有17条布尔处理指令。条布尔处理指令。使使MCS-51更适合于实时控制。更适合于实时控制。单片机内部设置了功能很强的位处理机,单片机内部

3、设置了功能很强的位处理机,即布尔处理机。布尔处理机硬件主要由以下五即布尔处理机。布尔处理机硬件主要由以下五部分支持:部分支持:1布尔运算器布尔运算器ALU2布尔累加器布尔累加器CY(PSW.7)3布尔布尔RAM区区4.1.2布尔处理机布尔处理机4布尔布尔I/O口口P0P3口的每位都可独立地进行输入口的每位都可独立地进行输入/输出操作,构成布尔输出操作,构成布尔I/O口。口。5布尔指令集布尔指令集由由17条布尔指令组成,可对各种布尔条布尔指令组成,可对各种布尔变量进行处理,如置位、清零、求反、跳变量进行处理,如置位、清零、求反、跳转、传送和逻辑运算等。转、传送和逻辑运算等。4.1.3指令中使用的

4、符号说明指令中使用的符号说明Rn当前选中的寄存器区中的当前选中的寄存器区中的8个工作寄个工作寄存器存器R0R7(n=07)。)。Ri当前选中的寄存器区中的当前选中的寄存器区中的2个工作寄存个工作寄存器器R0、R1(i=0,1)。)。direct8位的内部数据存储器单元中的地址。位的内部数据存储器单元中的地址。#data包含在指令中的包含在指令中的8位常数。位常数。#data16包含在指令中的包含在指令中的16位常数。位常数。addr1616位目的地址。位目的地址。addr1111位目的地址。位目的地址。rel8位带符号的偏移字节,简称偏移量。位带符号的偏移字节,简称偏移量。DPTR数据指针,可

5、用作数据指针,可用作16位地址寄存器。位地址寄存器。bit内部内部RAM或专用寄存器中的直接寻址位。或专用寄存器中的直接寻址位。A累加器。累加器。B专用寄存器,用于乘法和除法指令中。专用寄存器,用于乘法和除法指令中。C进进位位标标志志或或进进位位位位,或或布布尔尔处处理理机机中中的的累累加器。加器。间接寄存器或基址寄存器的前缀间接寄存器或基址寄存器的前缀/指定位求反指定位求反表示数据传送方向表示数据传送方向(x)x中的内容中的内容表示数据交换表示数据交换(x)由由x的内容寻址的单元中的内容的内容寻址的单元中的内容当前指令存放的地址当前指令存放的地址立即寻址是指指令中直接给出操作数的寻立即寻址是

6、指指令中直接给出操作数的寻址方式。指令中的操作数称为立即数,立即数址方式。指令中的操作数称为立即数,立即数前面加前面加“#”以区别直接寻址。以区别直接寻址。8位的立即数位的立即数#data,如如#30H;16位的立即数位的立即数#data16,如如#3000H。要注意立即寻址与直接寻址区别。要注意立即寻址与直接寻址区别。4.2MCS-51系列系列单片机片机寻址方式址方式4.2.1立即寻址立即寻址例如:MOV A,# 60H ;A#60H MOV DPTR,# 3400H;DPTR#3400H MOV 30H,# 40H ;30H单元#40H指令形式:指令形式: 例如:例如: MOV A,#30

7、H ;A30H 操作码操作码 立即数立即数 74H 30H PC PC+1 操作码操作码OP A指令指令MOV A,#30H 的执行过程的执行过程 图图4-1指令指令MOVA,#30H的过程的过程80H 00H PC+1 PC+2 操作码操作码OP DPHDPL 指令指令MOV DPTR ,#8000H 的执行过程的执行过程 90H PC 图图4-2指令指令MOVDPTR,#8000H的执行过程的执行过程MOV DPTR,#8000H;DPTR8000H指令执行过程如图指令执行过程如图4-2所示。所示。例如:例如:寻址空间:寻址空间:内部内部RAM的低的低128字节和特殊字节和特殊功能寄存器功

8、能寄存器SFR(直接寻址是访问直接寻址是访问SFR的唯一的唯一方式方式)。)。操作码后面的一个字节是实际操作数地址。操作码后面的一个字节是实际操作数地址。这种直接在指令中给出操作数真实地址的方式这种直接在指令中给出操作数真实地址的方式称为直接寻址。称为直接寻址。4.2.2直接寻址直接寻址操作码操作码操作数地址操作数地址操作码操作码操作数地址操作数地址立即数立即数 操作码操作码源操作数地址源操作数地址目的操作数地址目的操作数地址指令有三种形式:指令有三种形式:MOVA,30H;A(30H)注意:立即数字址与直接寻址的区别:注意:立即数字址与直接寻址的区别:立即数寻址是在指令中直接给出操作数本身,

9、立即数寻址是在指令中直接给出操作数本身,直接寻址是在指令中直接给出操作的地址。直接寻址是在指令中直接给出操作的地址。如图如图4-3所示。所示。例如:例如:E5H30HPC PC+1操作码操作码操作数操作数地址地址内部内部 RAM 30H A图图4-3指令指令MOVA,30H的执行过程的执行过程ANL30H,#30H;30H(30H)30H图图4-4指令指令ANL30H,#30H的执行过程的执行过程例如:例如:结果结果 E5H 30H PC PC+1 操作码操作码 操作数地址操作数地址内部内部RAM 30H 30H PC+2 立即数立即数 ALU “与与” 寻址空间:寻址空间:R0R7,A、B、

10、CY(位),位),DPTR。指令选定的寄存器内容就是实际操作数,指令选定的寄存器内容就是实际操作数,这种寻址方式称为寄存器寻址。这种寻址方式称为寄存器寻址。特点是被寻址的某个寄存器已隐含在操作特点是被寻址的某个寄存器已隐含在操作码中,故有时称寄存器寻址为隐含寻址。码中,故有时称寄存器寻址为隐含寻址。4.2.3寄存器寻址寄存器寻址例如:例如:MOVA,R3;A(R3)操作码操作码操作码操作码立即数立即数操作码操作码直接地址直接地址有三种指令形式。有三种指令形式。寻址空间:寻址空间:内部内部RAM(R0,R1,SP)和外部数据存储器(和外部数据存储器(R0,R1,DPTR)。)。指令选定的寄存器内

11、容就是实际操作数的指令选定的寄存器内容就是实际操作数的地址(而不是操作数),这种寻址方式称为寄地址(而不是操作数),这种寻址方式称为寄存器间接寻址。存器间接寻址。有三种指令形式。有三种指令形式。操作码操作码操作码操作码立即数立即数操作码操作码直接地址直接地址4.2.4寄存器间接寻址寄存器间接寻址MOVR0,A设:(设:(R0)=30H,则该指令是把累加器则该指令是把累加器A的内容写入内部的内容写入内部RAM的的30H单元中;单元中;指令执行过程如图指令执行过程如图4-5所示。所示。30H F6H PC PC+1 操作码操作码30H R0内部内部RAM A图图4-5指令指令MOVR0,A的执行过

12、程的执行过程例如:例如:MOVXA,DPTR这是一条外部数据存储器读指令。这是一条外部数据存储器读指令。设(设(DPTR)=2000H。当执行指令时,外部当执行指令时,外部数据存储器数据存储器2000H单元的内容读入累加器单元的内容读入累加器A中,中,如图如图4-6所示。所示。2000H E0H PC PC+1 操作码操作码2000H A外部外部RAMDPTR图图4-6指令指令MOVXA,DPTR的执行过程的执行过程例如例如:寻址空间:寻址空间:程序存储器(程序存储器(A+DPTR,A+PC)。)。它以它以DPTR或或PC作基址寄存器,作基址寄存器,A作变址作变址寄存器(存放寄存器(存放8位无

13、符号数),两者相加形成位无符号数),两者相加形成16位程序存储器地址作操作数地址。这种寻址方位程序存储器地址作操作数地址。这种寻址方式是单字节指令,用于读出程序存储器中数据式是单字节指令,用于读出程序存储器中数据表格的常数。表格的常数。4.2.5基址变址间接寻址基址变址间接寻址例如:例如:MOVCA,A+DPTR设累加器设累加器A与数据指针与数据指针DPTR在寻址在寻址前的值分别为:前的值分别为:(A)=0FH(DPTR)=2400H指令的执行过程如图指令的执行过程如图4-7所示所示93H PC PC+1 操作码操作码240FH ALU 0FH 2400H ADPTR 图图4-7指令指令MOV

14、CA,A+DPTR的执行过程的执行过程寻址空间:寻址空间:程序存储器。程序存储器。用于程序控制,利用指令修正用于程序控制,利用指令修正PC指针的方指针的方式实现转移。即以程序计数器式实现转移。即以程序计数器PC的内容为基地的内容为基地址,加上指令中给出的偏移量址,加上指令中给出的偏移量rel,所得结果为所得结果为转移目标地址。转移目标地址。注意:偏移量注意:偏移量rel是一是一8位有符号数补码,范位有符号数补码,范围围-128+127。所以转移范围应在当前。所以转移范围应在当前PC指针指针的的128+127之间某一程序存储器地址中。之间某一程序存储器地址中。相对寻址一般为双字节或三字节指令。相

15、对寻址一般为双字节或三字节指令。4.2.6相对寻址相对寻址操作码操作码操作码操作码直接地址直接地址操作码操作码立即数立即数rel rel rel 有三种指令形式:有三种指令形式:JNZrel;累加器累加器A的内容不等于零则转移。的内容不等于零则转移。设设rel=23H,指令操作码存放在程序存储器指令操作码存放在程序存储器2000H单元,并且在执行该指令前单元,并且在执行该指令前A中内容不为中内容不为零,则执行过程如图零,则执行过程如图4-8所示。转移目标地址:所示。转移目标地址:D=(PC)+rel=2002H+23H=2025H反过来,若已知转移目标地址为反过来,若已知转移目标地址为1FFC

16、H,(PC)当前值为当前值为2002H,则:则:rel=D(PC)=1FFCH2002H=FFFAH,即即rel=FAH=(6)补补。例如:例如:图图4-8指令指令JNZrel的执行过程的执行过程23H 下一条指令下一条指令2000H 2001H 操作码操作码 2025HALU 70H 2002H rel=23HPC当前值当前值2002H地址(地址( PC) =2025H修正后转移目标修正后转移目标PC的当的当前值前值相对偏相对偏移量移量rel寻址空间:寻址空间:片内片内RAM的的20H2FH中的中的128个可寻址位和个可寻址位和11个字节地址能被个字节地址能被8整除的整除的SFR中的中的83

17、个可寻址位,共个可寻址位,共211个位。个位。注意:对注意:对CY的寻址方式既属于寄存器寻的寻址方式既属于寄存器寻址又属于位寻址。址又属于位寻址。以访问触发器的方式对内部以访问触发器的方式对内部RAM、特殊特殊功能寄存器功能寄存器SFR中的位地址空间进行访问称之中的位地址空间进行访问称之为位寻址为位寻址。4.2.7位寻址位寻址寻址方式寻址方式利用的变量利用的变量使用的空间使用的空间寄存器寻址寄存器寻址R0R7,A,B,CY,DPTR片内片内直接寻址直接寻址direct片内片内RAM低低128字节字节特殊功能寄存器特殊功能寄存器SFR寄存器间址寄存器间址R0,R1,SPR0,R1,DPTR片内片

18、内RAM片外片外RAM与与I/O口口立即寻址立即寻址#data程序存储器程序存储器基址加变址基址加变址A+PCA+DPTR 程序存储器程序存储器相对寻址相对寻址PC+rel程序存储器程序存储器位寻址位寻址bit片内片内RAM的的20H2FH可位寻址的可位寻址的SFR表表4-1寻址方式与相应的寻址空间寻址方式与相应的寻址空间指令分类:指令分类:按指令所占字节数分为按指令所占字节数分为按指令执行时间分为按指令执行时间分为按指令操作功能分为按指令操作功能分为4.3MCS-51系列系列单片机指令系片机指令系统单字节指令(单字节指令(49条)条)双字节指令(双字节指令(45条)条)三字节指令(三字节指令

19、(17条)条)单周期指令(单周期指令(64条)条)双周期指令(双周期指令(45条)条)四周期指令(两条)四周期指令(两条)数据传送指令(数据传送指令(29条)条)算术运算指令(算术运算指令(24条)条)逻辑运算指令(逻辑运算指令(24条)条)控制转移指令(控制转移指令(17条)条)位操作指令位操作指令(17条)条)4.3.1数据传送指令数据传送指令1一般传送指令一般传送指令(1)数据传送到累加器)数据传送到累加器A的一般传送指令的一般传送指令MOVA,Rn;A(Rn)【例例1】MOVA,R7MOVA,direct;A(direct)【例例2】MOVA,40HMOVA,Ri;A(Ri)【例例3】

20、MOV A,R0MOVA,#data;Adata【例例4】MOVA,#09HMOVRn,A;Rn(A)【例例5】MOVR3,AMOVRn,direct ;Rn(direct)【例例6】MOVR2,20HMOVRn,#data ;Rndata【例例7】MOVR4,#75H(2)数据传送到)数据传送到Rn的一般传送指令的一般传送指令(3)数据传送到直接寻址)数据传送到直接寻址单元单元direct的一般传送指令的一般传送指令MOVdirect,A;direct(A)【例例8】MOV70H,AMOVdirect,Rn;direct(Rn)【例例9】MOV80H,R6MOVdirect1, direct

21、2;direct1direct2)【例例10】MOV90H,P1 MOV direct,#data ;directdata 【例11】MOV 4FH,#9BH MOV direct,Ri;direct(Ri) 【例12】MOV 36H,R1 (4)数据传送到)数据传送到Ri间接寻址间接寻址的存储单元的一般传送指令的存储单元的一般传送指令MOVRi,A;(;(Ri)(A)【例例13】MOVR1,AMOVRi,direct;(;(Ri)(direct)【例例14】MOVR0,P1MOVRi,#data;(;(Ri)data【例例15】MOVR1,#0B7H(5)16位立即数传送到位立即数传送到DP

22、TR指令指令MOVDPTR,#data16;DPTRdata16说明:指令功能是将说明:指令功能是将16位立即数装入位立即数装入16位寄位寄存器存器DPTR中。这是唯一的一条中。这是唯一的一条16位数据传送指位数据传送指令,用于设置外部存储器的地址指针。实际上是令,用于设置外部存储器的地址指针。实际上是将将data16的高的高8位(位(dataH)装入到装入到DPTR的高的高8位位DPH中,中,#data16的低的低8位(位(dataL)装入到装入到DPTR的低的低8位位DPL中。中。例如:例如:MOVDPTR,#2000H上述上述16条一般传送指令都是在内条一般传送指令都是在内部部RAM和特

23、殊功能寄存器中进行数和特殊功能寄存器中进行数据传送,并且,助记符都是据传送,并且,助记符都是MOV,它们可以用图它们可以用图4-9描述。描述。图图4-9MOV指令的数据流向指令的数据流向由上图可知:由上图可知:MOVRn,RnMOVRi,RiMOVRn,RiMOV#data,A等等等指令是非法指令。等指令是非法指令。另外,另外,上述指令不影响除上述指令不影响除PSW的除的除P位外的任位外的任何标志位何标志位2堆栈指令堆栈指令(1)入栈指令)入栈指令PUSHdirect;SP(SP)+1(SP)(direct)说说明明:指指令令功功能能是是将将指指定定的的直直接接寻寻址址单单元元的内容压入堆栈。

24、的内容压入堆栈。具具体体操操作作:先先将将堆堆栈栈指指针针寄寄存存器器的的内内容容加加1,使使其其指指向向一一个个空空单单元元,然然后后将将指指令令指指定定的的直直接寻址单元的内容复制到这个空单元。接寻址单元的内容复制到这个空单元。【例【例16】PUSH90H设设(SP)中内容为中内容为43H,(90H)=34H,则执行指令后,则执行指令后,(SP)=44H,而而(44H)=34H,90H单元中的内容不变。单元中的内容不变。(2)出栈指令)出栈指令POPdirect;direct(SP)SP(SP)1说明:指令功能是将栈顶单元的内容弹说明:指令功能是将栈顶单元的内容弹出堆栈。具体操作是:先将出

25、堆栈。具体操作是:先将SP指向的单元内容指向的单元内容复制到指令指定的直接寻址单元,然后复制到指令指定的直接寻址单元,然后SP内容内容减减1。【例【例17】POPACC设原来设原来SP中内容为中内容为60H,60H单元单元内容为内容为F6H,累加器累加器A中内容为中内容为09H,则执行指令后,则执行指令后,SP中内容变为中内容变为5FH,A中内容为中内容为F6H。3累加器专用传送指令累加器专用传送指令(1)字节交换指令)字节交换指令XCHA,Rn;(;(A) (Rn)说明:指令功能是将累加器说明:指令功能是将累加器A的内容与工作的内容与工作寄存器寄存器Rn的内容相交换。的内容相交换。【例【例1

26、8】XCHA,R4XCHA,direct;(;(A) (direct)说明:指令功能是将累加器说明:指令功能是将累加器A的内容与直的内容与直接寻址的内部接寻址的内部RAM单元(或单元(或SFR)内容进行内容进行交换。交换。XCHA,Ri;(;(A) (Ri)说明:指令功能是将累加器说明:指令功能是将累加器A的内容与的内容与Ri间接寻址的内部间接寻址的内部RAM单元内容进行交换。单元内容进行交换。(2)半字节交换指令)半字节交换指令XCHDA,Ri;(;(A)03 (Ri)03说明:指令功能是将累加器说明:指令功能是将累加器A中内容的低中内容的低4位与位与Ri间接寻址的内部存储单元中内容的低间接

27、寻址的内部存储单元中内容的低4位相互交换,而位相互交换,而它们的高它们的高4位保持不变。位保持不变。【例【例19】XCHDA,R1设原来设原来A中内容为中内容为7AH,R1中内容为中内容为23H,23H单单元中内容为元中内容为B6H,则执行该指令后,则执行该指令后,A中内容变为中内容变为76H,23H中内容变为中内容变为BAH。SWAPA;(;(A)47 (A)03说明:指令功能是将累加器说明:指令功能是将累加器A中内容进行高、低中内容进行高、低4位互换。位互换。(3)累加器与外部数据存储器的传送指令)累加器与外部数据存储器的传送指令MOVXA,Ri;(;(A)(Ri)说明:说明:指令功能是将

28、指令功能是将Ri间接寻址的外部数间接寻址的外部数据存储器单元或扩展的据存储器单元或扩展的I/O端口内容复制到累加端口内容复制到累加器中。器中。Ri对外部数据存储器或对外部数据存储器或I/O端口的寻址范端口的寻址范围是围是00FFH。【例例20】MOVXA,R0设设(A)=00H,(R0)=20H,而而20H是扩展的是扩展的8255A的的A端口地址,则执行指令后,端口地址,则执行指令后,A中内容中内容为为8255A的的A口数据。口数据。MOVXA,DPTR;A(DPTR)说明:说明:指令功能是将指令功能是将DPTR间接寻址的外间接寻址的外部数据存储器单元或扩展的部数据存储器单元或扩展的I/O端口

29、内容复制到端口内容复制到累加器中。累加器中。DPTR对外部数据存储器或对外部数据存储器或I/O端端口的寻址范围是口的寻址范围是0000FFFFH。MOVXRi,A ;(;(Ri)(A)说明:说明:指令功能是将累加器指令功能是将累加器A的内容复制到的内容复制到Ri间接地址的外部数据存储器单元或间接地址的外部数据存储器单元或I/O端口中。端口中。 MOVXDPTR,A;(DPTR)(A)说明:说明:指令功能是将累加器指令功能是将累加器A的内容复制的内容复制到到DPTR间接地址的外部数据存储器单元或间接地址的外部数据存储器单元或I/O端口中。端口中。【例例21】MOVXDPTR,A设原来设原来DPT

30、R的内容为的内容为1000H,1000H单元单元的内容为的内容为00H,A的内容为的内容为59H,则执行指令则执行指令后,后,1000H单元的内容变为单元的内容变为59H,而而A和和DPTR内容不变。内容不变。MOVX A,RiMOVX A,DPTRMOVX Ri,AMOVX DPTR,A执行过程中会使WR、RD有效。例:例:试编写一程序段,实现将外部试编写一程序段,实现将外部RAM0FAH单元中的内容传送到外部单元中的内容传送到外部RAM04FFH单元单元中。中。解:解:MOVDPTR,#04FFHMOVR0,#0FAHMOVXA,R0MOVXDPTR,A(4)累加器与外部程序存储器的传送指

31、令)累加器与外部程序存储器的传送指令MOVCA,A+PC;A(A)+(PC)说明:指令功能是将程序存储器中存储单说明:指令功能是将程序存储器中存储单元内容复制到累加器元内容复制到累加器A,该存储单元地址是指令该存储单元地址是指令指针指针PC内容与累加器内容与累加器A内容之和。内容之和。该指令是单字节指令,取指后该指令是单字节指令,取指后PC内容加内容加1,以当前以当前PC值去执行值去执行16位无符号数加法操作获得位无符号数加法操作获得基址加变址之和(基址加变址之和(PC作为基址寄存器,作为基址寄存器,A作为变作为变址寄存器),即址寄存器),即16位程序存储器地址。然后执行位程序存储器地址。然后

32、执行该单元的读操作,并将该单元内容送该单元的读操作,并将该单元内容送A。指令执指令执行后行后PC内容不变内容不变,以保证程序顺序执行。,以保证程序顺序执行。【例【例22】MOVCA,A+PC设原来设原来A的内容为的内容为03H,程序中指令所程序中指令所在地址为在地址为4010H,程序存储器程序存储器4014H单元单元中内容为中内容为FFH,则执行指令则执行指令该该后,后,A的内容的内容变为变为FFH,PC的内容为的内容为4011H。如图如图4-10所示。所示。+1+ 111111114010H 4011H 10000011 4012H4013H4014H11111111PCA4010H 03H

33、外部程序存储器外部程序存储器图图4-10“MOVCA,A+PC”举例示意图举例示意图APCPCMOVCA,A+DPTR;A(A)+(DPTR)说明:指令功能是将程序存储器中存储单说明:指令功能是将程序存储器中存储单元内容复制到累加器元内容复制到累加器A中,该存储单元地址是中,该存储单元地址是DPTR内容与累加器内容与累加器A的内容之和。这条指令与的内容之和。这条指令与上一条上一条MOVC指令的操作基本相同,只是将指令的操作基本相同,只是将PC改为改为DPTR,而而DPTR是用户可访问的是用户可访问的16位寄位寄存器,所以程序在存器,所以程序在MOVCA,A+DPTR指令指令之前可由指令之前可由

34、指令MOVDPTR,#data设置设置DPTR的值。的值。MOVCA,A+PCMOVCA,A+DPTR执行过程中会使执行过程中会使PSEN有效。有效。MOVC含义是传送常数。含义是传送常数。以以DPTR为基地址的指令,可在为基地址的指令,可在ROM的的64KB范围内查表;范围内查表;而以而以PC为基地址的指令只能在(为基地址的指令只能在(PC)+1为为起点的起点的256B范围内查表。范围内查表。 例例4 4、设(、设(A A)= = 一个一个BCDBCD码常数,试用查码常数,试用查表法获得其相应的表法获得其相应的ASCIIASCII码。设(码。设(A A)=5=5解法解法I:MOVDPTR,#

35、TABMOVCA,A+DPTRAJMPNEXTTAB:DB30HDB31HDB32H,33H,34H,35HNEXT:解法解法II:ADDA,#02HMOVCA,A+PCAJMPNEXTTAB:DB30H,31H,32H,33HDB34H,35H,36H,37HNEXT:4.3.2算术运算指令算术运算指令1加法指令加法指令(1)不带进位加法指令)不带进位加法指令ADDA,Rn;A(A)+(Rn)【例例23】ADDA,R0设原来设原来A的内容为的内容为15H,R0的内容为的内容为36H,则则执行指令后,累加器执行指令后,累加器A中内容变为中内容变为4BH,R0中中内容不变。内容不变。ADDA,d

36、irect;A(A)+(direct)ADDA,Ri;A(A)+(Ri)ADDA,#data;A(A)+data(2)带进位加法指令)带进位加法指令ADDCA,Rn;A(A)+(Rn)+(C)ADDCA,direct;A(A)+(direct)+(C)ADDCA,Ri;A(A)+(Ri)+(C)【例例24】ADDCA,R1设原来设原来A的内容为的内容为40H,R1的内容为的内容为7FH,7FH单元内容为单元内容为56H,上一条指令使上一条指令使进位标志置进位标志置“1”,则执行指令后,则执行指令后,A的内容的内容变为变为57H,其余不变。其余不变。ADDCA,#data;A(A)+data+(

37、C)上述四条指令多用于多字节数相加。上述四条指令多用于多字节数相加。2带借位减法指令带借位减法指令(1)SUBBA,Rn;A(A)()(Rn)()(C)(2)SUBBA,direct;A(A)()(direct)()(C)【例例25】SUBBA,65H设原来累加器设原来累加器A的内容为的内容为F7H,内部内部RAM单元单元65H的内容为的内容为30H,前一条指令是对进位前一条指令是对进位标志清零的指令,则执行指令后,标志清零的指令,则执行指令后,A中的内容变中的内容变为为C7H,其余不变。其余不变。(3)SUBBA,Ri;A(A)()(Ri)()(C)(4)SUBBA,#data;A(A)da

38、ta(C)注意:减法之前先清零注意:减法之前先清零C C。3十进制加法调整指令十进制加法调整指令DAA;若若(A)309(AC)=1,则则A(A)+06H若若(A)749(CY)=1,则则A(A)+60H【例例25】设(】设(A)=37H,(,(R0)=36H,则执行下列程序段的过程如下:则执行下列程序段的过程如下:ADDA,R0DAA这里这里37H和和36H是是BCD数数00110111和和00110110,CPU是按二进制操作的,相加是按二进制操作的,相加后结果为后结果为01101101,结果存在,结果存在A中,但已不中,但已不是是BCD数。需要调整,因(数。需要调整,因(A)309,故故

39、将将A中的和加中的和加06H,结果为结果为01110011,即十,即十进制的进制的73。例:两个例:两个4位位BCD码相加,一个存放在码相加,一个存放在(31H)()(30H););另一个存放在另一个存放在(33H)()(32H););存于(存于(31H)()(30H)中,中,试编程实现之。试编程实现之。MOVR0,#30HMOVR1,#32HMOVA,R0ADDA,R1DAAMOVR0,AINCR0INCR1MOVA,R0ADDCA,R1DAAMOVR0,A注意:注意:1)DA指令只能跟在加法指令后面使用;指令只能跟在加法指令后面使用;2)调整前参与运算的两数是)调整前参与运算的两数是BCD

40、码数;码数;3)DA指令不能与减法指令配对使用。指令不能与减法指令配对使用。BCD减法(补充)减法(补充)MCS-51中的中的BCD码减法运算必须采用码减法运算必须采用BCD补码补码运算法则,变被减数减减数为加减数的补码,然运算法则,变被减数减减数为加减数的补码,然后对其和进行十进制加法调整来实现。具体实现后对其和进行十进制加法调整来实现。具体实现步骤为:步骤为:1)求)求BCD减数的补码,即减数的补码,即9AH-减数。因两位减数。因两位BCD减数的模是减数的模是100,需要,需要9位二进制,故只好用位二进制,故只好用9AH代替两位代替两位BCD数的模数的模100。2)被减数加)被减数加BCD

41、减数的补码。减数的补码。3)对第二步中得到的两数和进行十进制加法调)对第二步中得到的两数和进行十进制加法调整便可得到正确的整便可得到正确的BCD减法的运算结果。减法的运算结果。例如:已知:内部例如:已知:内部RAM的的50H单元和单元和60H单元单元中分别存有被减数中分别存有被减数91和减数和减数36,试编程求其差,试编程求其差存于存于70H单元中。单元中。CLRCMOVA,#9AHSUBBA,60HADDA,50H注意:注意:将减法转换为加法,若加法时有进位,将减法转换为加法,若加法时有进位,表明减法时无借位,若加法时无进位,则减法表明减法时无借位,若加法时无进位,则减法时应有借位。时应有借

42、位。DAAMOV70H,ACPL C4加加1指令指令INCA;A(A)+1INCRn;Rn(Rn)+1INCdirect;direct(direct)+1INCRi;(;(Ri)(Ri)+1【例例26】INCR0设原来设原来R0=6DH,6DH单元的内容为单元的内容为45H,则执行指令后,则执行指令后,6DH单元内容变为单元内容变为46H,R0中内容不变。中内容不变。INCDPTR;DPTR(DPTR)+15减减1指令指令DECA;A(A)1DECRn;Rn(Rn)1DECdirect;direct(direct)1【例例27】DEC58H设原来设原来58H单元中的内容为单元中的内容为4BH,

43、则执行指令则执行指令后,后,58H中的内容变为中的内容变为4AH。DECRi;(;(Ri)(Ri)16无符号数乘法指令无符号数乘法指令MULAB;BA(A)(B)说明:指令功能是将累加器说明:指令功能是将累加器A中的无符号数与中的无符号数与寄存器寄存器B中的无符号数相乘,所得乘积的高中的无符号数相乘,所得乘积的高8位存于寄存器位存于寄存器B中,低中,低8位存于累加器位存于累加器A中。中。该指令对标志位的影响该指令对标志位的影响:若积若积FFH,则则OV置置“1”,否则,否则OV清清“0”,CY总是清总是清“0”。【例【例28】MULAB7无符号数除法指令无符号数除法指令DIVAB;A(A)(B

44、)的商,的商,B(A)(B)的余数的余数说明:指令功能是用累加器说明:指令功能是用累加器A中的无符号中的无符号数除以寄存器数除以寄存器B中的无符号数,所得的商存于累中的无符号数,所得的商存于累加器加器A中,所得的余数存于寄存器中,所得的余数存于寄存器B中。中。该指令对标志位的影响:只有当除数为该指令对标志位的影响:只有当除数为0时,时,OV置置“1”,其余情况,其余情况OV和和CY均清均清“0”。【例【例29】DIVAB例:试将例:试将A中的二进制数转换为中的二进制数转换为3位位BCD码,码,其中,百位数存放于其中,百位数存放于31H单元,十位数和个位单元,十位数和个位数压缩后存于数压缩后存于

45、30H单元中。单元中。MOVB,#100DIVABMOV31H,AMOVA,#10XCHA,BDIVABSWAPAADDA,BMOV30H,A4.3.3逻辑运算指令逻辑运算指令ANLA,Rn;A(A)(Rn)【例例30】ANLA,R2设设(A)=01100011B,(R2)=11101001B,则执行则执行指令后,指令后,(A)=01100001B,R2的内容不变。的内容不变。1逻辑逻辑“与与”指令指令:ANLA,direct;A(A)(direct)data【例例31】ANL46H,#11100101B设原来内部数据设原来内部数据RAM(46H)=10001110B,则执行指令后则执行指令后

46、,(46H)=10000100B。ANLA,Ri;A(A)(Ri)ANLA,#data;A(A)dataANLdirect,A;direct(direct)(A)ANLdirect,#data;direct(direct)2逻辑逻辑“或或”指令指令ORLA,Rn;A(A)(Rn)ORLA,direct;A(A)(direct)ORLA,Ri;A(A)(Ri)【例例32】ORLA,R0设设(A)=11110000B,(R0)=40H,(40H)=10101111B。则执行指令后,则执行指令后,(A)=11111111B,其余不变。其余不变。ORLA,#data; A(A)dataORLdirec

47、t,Adirect(direct)(A)ORLdirect,#datadirect(direct)data3逻辑逻辑“异或异或”指令指令XRLA,Rn;A(A)(Rn)XRLA,direct;A(A)(direct)XRLA,Ri;A(A)(Ri)XRLA,#data;A(A)dataXRLdirect,A;direct(direct)(A)【例例33】XRL63H,A设原来设原来()63H)=01101001B,(A)=10100110B,则执行指令后,则执行指令后,(63H)=11001111B,其余不变。其余不变。XRLdirect,#data;direct(direct)data例:例

48、:XRLP1,#00110001B在上述在上述ANL、ORL、XRL操作中,用于端操作中,用于端口操作时,无论口操作时,无论P0P3是第一、还是第二操是第一、还是第二操作数,都遵循作数,都遵循“读读修改修改写写”端口锁存器端口锁存器的操作而不是读引脚的操作而不是读引脚。4逻辑移位指令逻辑移位指令RLA【例例34】RLARLCARRARRCA【例例35】RRCA设原来设原来(A)=10001110B,C=1,则执行指则执行指令后,令后,(A)=11000111B,C=0。注:左移一位相当于乘注:左移一位相当于乘2;右移一位相当于除;右移一位相当于除2。cc5累加器逻辑取反指令累加器逻辑取反指令C

49、PLA;A(A)【例例36】设原来累加器】设原来累加器A的内容为的内容为11000011B,则执行指令则执行指令CPLA后,后,A的的内容变为内容变为00111100B。6累加器清零指令累加器清零指令CLRA;A04.3.4控制转移指令控制转移指令1无条件转移指令无条件转移指令长跳转指令长跳转指令LJMPaddr16;PCaddr15-0绝对跳转指令绝对跳转指令AJMPaddr11;PC(PC)+2,PC10-0addr10-0PC1511不变不变转移目的地址与(转移目的地址与(PC)+2在同一在同一2KB范围内。范围内。【例例37】设某程序中,】设某程序中,AJMP指令所在地址指令所在地址为

50、为1000H,标号标号LOOP1处的指令第一个单处的指令第一个单元的地址为元的地址为1050H,则则AJMPLOOP1跳转的距离为跳转的距离为:1050H1000H2=4EH短跳转指令:短跳转指令:SJMPrel ;PC(PC)+2,PC(PC)+rel间接跳转指令间接跳转指令JMPA+DPTR;PC(A)+(DPTR)间接转移,散转移指令。间接转移,散转移指令。该指令执行后,不改变该指令执行后,不改变A及及DPTR中的中的内容。常用于多分支程序结构中,可在程序运内容。常用于多分支程序结构中,可在程序运行过程中动态地决定程序分支走向。行过程中动态地决定程序分支走向。【例例38】JMPA+DPT

51、R设原来累加器设原来累加器A的内容为的内容为10H,DPTR的内的内容为容为2000H,则执行指令后,程序无条件则执行指令后,程序无条件转移到转移到2010H处去执行。处去执行。例:设例:设A中为键值,试编写按键值处理相应事中为键值,试编写按键值处理相应事件的程序段。件的程序段。MOVDPTR,#KYEGMOVB,#03HMULABJMPA+DPTRKYEG:LJMPKYEG0LJMPKYEG1比较比较LJMP、AJMP、SJMP、JMP转移的起点和范围转移的起点和范围: :LJMPLJMPPC64KAJMPAJMPPC+2SJMPSJMPPC+2-128+127JMPJMPA+DPTRPCP

52、C+2DPTR256ROMROMROMROM2条件转移指令条件转移指令累加器为零转移指令累加器为零转移指令JZrel;若(若(A)=0,则则PC(PC)+2+rel若(若(A)0,则(则(PC)(PC)+2说明:指令功能是当累加器说明:指令功能是当累加器A的内容为零时,的内容为零时,使程序转移到使程序转移到rel表示的地址处去执行。表示的地址处去执行。累加器非零转移指令累加器非零转移指令JNZrel ;若(若(A)0,则则PC(PC)+2+rel若(若(A)=0,则则PC(PC)+2说明:指令功能是当累加器说明:指令功能是当累加器A的内容不为的内容不为零时,使程序转移到零时,使程序转移到rel

53、表示的地址处去执行。表示的地址处去执行。CJNEA,direct,rel若(若(A)(direct),则则PC(PC)+3+rel,Cy0若(若(A)#data,则则PC(PC)+3+rel,CY0若(若(A)data,则则PC(PC)+3+rel,CY0若(若(Rn)data,则(则(C(PC)+3+rel,CY0若(若(Ri)B吗吗?入口入口YN123相等相等大于大于小于小于4循环转移指令循环转移指令DJNZRn,rel;(;(Rn)(Rn)1若(若(Rn)0,则则PC(PC)+2+rel若(若(Rn)=0,则则PC(PC)+2说明:指令功能是先将工作寄存器说明:指令功能是先将工作寄存器R

54、n中的中的内容减内容减1,然后判断其是否为零,若不为零,则,然后判断其是否为零,若不为零,则程序转到程序转到rel所表示的地址处去执行,否则顺序所表示的地址处去执行,否则顺序执行。执行。 DJNZRn,rel也为双功能指令,即减也为双功能指令,即减1操作操作和判断转移操作。和判断转移操作。第一操作数内容减第一操作数内容减1后,若差值不为零,则转移;后,若差值不为零,则转移;否则顺序执行。否则顺序执行。转移目的地址转移目的地址=(PC)+2或或3+relDJNZdirect,rel;direct(direct)1,若(若(direct)0,则则PC(PC)+3+rel若(若(direct)=0,

55、则则PC(PC)+3说明:指令功能是先将直接寻址的内部说明:指令功能是先将直接寻址的内部RAM单元(或单元(或SFR)的内容减的内容减1,然后判断该单,然后判断该单元内容是否为零,若不为零,则程序转到元内容是否为零,若不为零,则程序转到rel所所表示的地址处去执行,否则顺序执行。表示的地址处去执行,否则顺序执行。【例【例40】DJNZ32H,LOOP2例:将例:将8031内部内部RAM的的40H4FH单元单元置初值置初值#A0H#AFH。MOVR0,#40HMOVR2,#10HMOVA,#0A0HLOOP:MOVR0,AINCR0INCADJNZR2,LOOP 5子程序调用与返回指令子程序调用

56、与返回指令长调用指令长调用指令LCALLaddr16PC(PC)+3,SP(SP)+1(SP)(PC)7-0,SP(SP)+1(SP)(PC)15-8,PC15-0addr16说明:指令功能是将说明:指令功能是将LCALL指令的下一条指指令的下一条指令第一个字节的地址入栈保护,并使程序转移令第一个字节的地址入栈保护,并使程序转移到地址到地址addr16处去执行。处去执行。LCALL指令可在指令可在64KB范围内调用子程序。范围内调用子程序。绝对调用指令绝对调用指令ACALLaddr11PC(PC)+2,SP(SP)+1(SP)(PC)7-0,SP(SP)+1(SP)(PC)15-8,PC10-

57、0addr11说明:指令功能是将说明:指令功能是将ACALL指令的下一条指指令的下一条指令第一个字节的地址入栈保护,并使程序转移令第一个字节的地址入栈保护,并使程序转移到到addr11表示的地址处去执行。表示的地址处去执行。ACALL指令可指令可在在2KB范围内调用子程序。范围内调用子程序。子程序返回指令子程序返回指令RETPC15-8(SP),),SP(SP)1PC7-0(SP),),SP(SP)1说明:指令功能是将执行调用指令时保护到堆说明:指令功能是将执行调用指令时保护到堆栈中的返回地址弹到指令指针栈中的返回地址弹到指令指针PC中,从而使程中,从而使程序返回到主程序中调用指令的下一条指令

58、处去执序返回到主程序中调用指令的下一条指令处去执行。行。中断返回指令中断返回指令RETIPC15-8(SP),(),(SP)(SP)1PC7-0(SP),(),(SP)(SP)1说明:指令功能是将断点(中断的后继指令)说明:指令功能是将断点(中断的后继指令)地址弹出堆栈,恢复到地址弹出堆栈,恢复到PC中,并释放中断逻中,并释放中断逻辑,从而使程序返回到主程序断点处执行。这辑,从而使程序返回到主程序断点处执行。这条指令条指令与子程序返回指令的区别就在于它要释与子程序返回指令的区别就在于它要释放中断逻辑。放中断逻辑。6空操作指令空操作指令NOP;PC(PC)+1说明:该指令没有指定功能,除了将指令

59、说明:该指令没有指定功能,除了将指令指针加指针加1外,不进行任何操作,在程序中常外,不进行任何操作,在程序中常用于产生一个机器周期的延时。用于产生一个机器周期的延时。4.3.5位操作指令位操作指令包括:位传送指令、条件转移指令、位运算指令。包括:位传送指令、条件转移指令、位运算指令。位操作由单片机内布尔处理器来完成。位操作由单片机内布尔处理器来完成。位地址的四种表示:位地址的四种表示:1)使用直接位地址表示;如使用直接位地址表示;如20H、30H、33H等;等;2)使用位寄存器名来表示;如使用位寄存器名来表示;如C、OV、F0等;等;3)用特殊功能寄存器名后加位数来表示;用特殊功能寄存器名后加

60、位数来表示;如如PSW.4、P0.5、ACC.3等;等;4)字节地址加位数来表示;字节地址加位数来表示;如如20H.0、2DH.4、90H.7、0D5H.5等。等。1位传送指令位传送指令MOVC,bit;C(bit)说明:指令功能是将直接寻址的位(说明:指令功能是将直接寻址的位(bit)的内容复制到位累加器(进位标志的内容复制到位累加器(进位标志CY)C中。中。【例【例41】MOVC,33HMOVbit,C;bit(C)说明:指令功能是将位累加器说明:指令功能是将位累加器C的内容复制的内容复制到直接寻址的位(到直接寻址的位(bit)中。即与上一条指令的中。即与上一条指令的传送方向相反。传送方向

61、相反。2.位逻辑操作指令位逻辑操作指令(1)位逻辑)位逻辑“与与”指令:指令:ANLC,bit ;C(C)(bit)说说明明:指指令令功功能能是是用用位位累累加加器器C的的内内容容和和直直接接寻寻址址位位(bit)的的内内容容相相“与与”,结结果果存存回回C中。中。ANLC,/bit;C(C)(bit)说明:指令功能是用位累加器说明:指令功能是用位累加器C的内容和直的内容和直接寻址位(接寻址位(bit)取反后的内容相取反后的内容相“与与”,结果,结果存回存回C中。中。(2)位逻辑位逻辑“或或”指令指令ORLC,bit;C(C)(bit)说明:指令功能是用位累加器说明:指令功能是用位累加器C的内

62、容和直接的内容和直接寻址位(寻址位(bit)的内容相的内容相“或或”,结果存回,结果存回C中。中。ORLC,/bit;(C)(C)(bit)说明:指令功能是用位累加器说明:指令功能是用位累加器C的内容和直接的内容和直接寻址位(寻址位(bit)取反后的内容相取反后的内容相“或或”,结果存,结果存回回C中。中。【例【例42】ORLC,/32H例:用软件实现下图所示的例:用软件实现下图所示的P1.0 P1.0 P1.3 P1.3间的间的逻辑运算。逻辑运算。MOV C,P1.1MOV C,P1.1ORL C,P1.2ORL C,P1.2ANL C,P1.0ANL C,P1.0MOV P1.3,CMOV

63、 P1.3,CP1.1P1.2P1.0P1.3&(3)位清零指令:)位清零指令:CLRC ;C0说明:指令功能是将位累加器说明:指令功能是将位累加器C清零。清零。CLRbit ;bit0说明:指令功能是将直接寻址位清零。说明:指令功能是将直接寻址位清零。(4)位置位置“1”指令:指令:SETBC ;C1说明:指令功能是将位累加器说明:指令功能是将位累加器C置置“1”。SETBbit;bit1说明:指令功能是将直接寻址位置说明:指令功能是将直接寻址位置“1”。(5)位取反指令:)位取反指令:CPLC;C(C)说明:指令功能是将位累加器说明:指令功能是将位累加器C的内容取反,再的内容取反,再送回送

64、回C中。中。CPLbit;bit(bit)说明:指令功能是将直接寻址位的内容取反,再说明:指令功能是将直接寻址位的内容取反,再送回该位中。送回该位中。3位条件转移指令位条件转移指令JCrel若(若(C)=1,则则PC(PC)+2+rel 若(若(C)=0,则则PC(PC)+2说明:指令功能是判断位累加器说明:指令功能是判断位累加器C的内容,的内容,若为若为“1”,则程序转移到,则程序转移到rel所表示的地址去所表示的地址去执行,否则顺序执行。执行,否则顺序执行。JBbit,rel;若(bit)=1,则PC(PC)+3+rel若(bit)=0,则PC(PC)+3说明:指令功能是判断直接寻址位的内

65、容,若为“1”,则程序转移到rel所表示的地址去执行,否则顺序执行。JNBbit,rel;若(bit)=0,则PC(PC)+3+rel若(bit)=1,则PC(PC)+3 说明:指令功能是判断直接寻址位的内容,若为“0”,则程序转移到rel所表示的地址去执行,否则顺序执行。JNCrel若(若(C)=0,则则PC(PC)+2+rel若(若(C)=1,则则PC(PC)+2说明:指令功能是判断位累加器说明:指令功能是判断位累加器C的内的内容,若为容,若为“0”,则程序转移到,则程序转移到rel所表示的所表示的地址去执行,否则顺序执行。地址去执行,否则顺序执行。JBCbit,rel若(若(bit)=1

66、,则则PC(PC)+3+rel,且且bit0若(若(bit)=0,则则PC(PC)+3说明:指令功能是判断直接寻址位的内容,若说明:指令功能是判断直接寻址位的内容,若为为“1”,则程序转移到,则程序转移到rel所表示的地址去执行,所表示的地址去执行,并且将该位清零,否则顺序执行。并且将该位清零,否则顺序执行。【例【例43】串行通信中,接收方收到一个有】串行通信中,接收方收到一个有效数据,则接收中断标志效数据,则接收中断标志RI自动置自动置“1”。当用查询方式接收数据时,应该用当用查询方式接收数据时,应该用JBCRI,rel指令将指令将RI清零,并转到清零,并转到rel处读取收到的数处读取收到的

67、数据。据。RI必须用软件清零,以便为下一次接收必须用软件清零,以便为下一次接收数据做好准备。数据做好准备。例例: :试判断试判断A A中的正负,若为正数,存入中的正负,若为正数,存入2020H H单元;单元;若为负数则存入若为负数则存入2121H H单元。单元。 JB ACC.7JB ACC.7,LOOPLOOP MOV 20H MOV 20H,A A SJMP $ SJMP $ LOOP LOOP:MOV 21HMOV 21H,A A SJMP $ SJMP $MOVA,30HCJNEA,40H,LOOPSETB7FHSJMP$LOOP1:JCLOOP2 例例: :比较内部比较内部RAMRA

68、M3030H H和和4040H H单元中的二单元中的二个无符号数的大小,将大数存入个无符号数的大小,将大数存入2020H H单元,小单元,小数存入数存入2121H H单元,若二数相等,则使内单元,若二数相等,则使内RAMRAM的的第第127127位置位置1 1。MOV20H,AMOV21H,40HSJMP$LOOP2:MOV20H,40HMOV21H,ASJMP$4.3.6综合应用举例综合应用举例【例【例44】编写一程序实现下列运算】编写一程序实现下列运算y=a2+2ab+b2。其其中中a从从P1口输入,口输入,b从从P3口输入,口输入,y的低的低8位从位从P1口输口输出,高出,高8位从位从P

69、3口输出。口输出。MOVP1,#0FFHMOVP3,#0FFHCLRPSW.4CLRPSW.3MOVA,P1MOVB,AMULABMOVR0,AMOVR1,BMOVA,P1RLAMOVB,AMOVA,P3MULABADDA,R0MOVR0,AMOVA,BADDCA,R1MOVR1,AMOVA,P3MOVB,AMULABADDA,R0MOVP1,AMOVA,BADDCA,R1MOVP3,A【例【例45】编写程序段完成下列逻辑运算。高变量】编写程序段完成下列逻辑运算。高变量X0,X1,X2,X3,X4,X5,X6分别从分别从P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6输入,输入,Y从从P1.7输出。输出。Y=X0+X1X2X3+X4X5+X6MOVC,P1.1ANLC,/P1.2ANLC,/P1.3MOV36H,CMOVC,P1.4ANLC,P1.5ORLC,/P1.6ORLC,P1.0ORLC,36HMOVP1.7,C程序段为:程序段为:&X0X2X3X4X5X6X1Y

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号