大学MCS51单片机的指令系统ppt课件

上传人:枫** 文档编号:567954009 上传时间:2024-07-22 格式:PPT 页数:74 大小:585KB
返回 下载 相关 举报
大学MCS51单片机的指令系统ppt课件_第1页
第1页 / 共74页
大学MCS51单片机的指令系统ppt课件_第2页
第2页 / 共74页
大学MCS51单片机的指令系统ppt课件_第3页
第3页 / 共74页
大学MCS51单片机的指令系统ppt课件_第4页
第4页 / 共74页
大学MCS51单片机的指令系统ppt课件_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《大学MCS51单片机的指令系统ppt课件》由会员分享,可在线阅读,更多相关《大学MCS51单片机的指令系统ppt课件(74页珍藏版)》请在金锄头文库上搜索。

1、第三章第三章MCS-51单片机的指令系片机的指令系统本章引见MCS-51单片机的指令格式、寻址方式(包括立刻寻址、直接寻址、存放器寻址、存放器间接寻址、基址加变址存放器间接寻址、相对寻址、隐含寻址等七种方式)、指令系统(包括数据传送类、算术运算类、逻辑运算类、位操作类、控制转移类等五大类指令)。经过本章的学习,要求学生可以熟练掌握MCS-51单片机的指令功能和运用。指令格式指令格式指令的表示方法称之为指令格式,其内容包括指指令的表示方法称之为指令格式,其内容包括指令的长度和指令内部信息的安排等。令的长度和指令内部信息的安排等。一条指令通常由操作码和操作数两部分组一条指令通常由操作码和操作数两部

2、分组成。成。操作码规定指令所完成的操作,操作数表示操操作码规定指令所完成的操作,操作数表示操作的对象。操作数能够是一个详细的数据,也能作的对象。操作数能够是一个详细的数据,也能够是指出获得数据的地址或符号。够是指出获得数据的地址或符号。单片微机执行指令的过程单片微机执行指令的过程单片微机执行指令的过程,分为取指令和执行指令两项根本内容。在取指阶段,单片微机从程序存储器中取出指令操作码,送到指令存放器IR中,经过指令译码器的译码,产生一系列的控制信号。在指令执行阶段中,利用指令译码产生的控制信号,进展本指令规定的操作51指令系统公用于指令系统公用于51系列单片机,是一个具有系列单片机,是一个具有

3、255种操作码种操作码(00H至至FFH,除,除A5H外外)的集合。的集合。用汇编言语表达操作代码时,用汇编言语表达操作代码时,42种助记符代种助记符代表了表了33种功能,有的功能如数据传送,可以有几种功能,有的功能如数据传送,可以有几种助记符,如种助记符,如MOV、MOVC、MOVX。指令功能助记符与操作数各种寻址方式的结合,指令功能助记符与操作数各种寻址方式的结合,共构造出共构造出111种指令,同一种指令所对应的操作码种指令,同一种指令所对应的操作码可以多至可以多至8种种(如指令中如指令中Rn对应存放器对应存放器R0R7)。寻址方式址方式 3.1寻址:在指令中给出的寻觅操作数或操作数所寻址

4、:在指令中给出的寻觅操作数或操作数所在地址的方法。在地址的方法。执行任何一条指令都需求运用操作数。执行任何一条指令都需求运用操作数。89S5l指令系统中共有指令系统中共有7种寻址方式。种寻址方式。立刻立刻寻址址在指令中直接在指令中直接给出操作数,出如今指令中的操出操作数,出如今指令中的操作数称作数称为立刻数。立刻数。在立刻数前面必需加上前在立刻数前面必需加上前缀“。 例如:指令例如:指令MOVDPTR,1234H指令功能:把指令功能:把16位立刻数位立刻数1234H送入数据指送入数据指针DPTR中。中。2直接直接寻址址在指令中直接在指令中直接给出操作数出操作数单元的地址。元的地址。例如:指令例

5、如:指令MOVA,3AH功能:把片内功能:把片内RAM中中3AH单元内的数据元内的数据传送送给累加器累加器A,如下,如下图。直接直接寻址方式只能址方式只能给出出8位地址,限于片内位地址,限于片内RAM:低低128单元,在指令中直接以元,在指令中直接以单元地址方式元地址方式给出。出。特殊功能存放器,可以特殊功能存放器,可以单元地址方式元地址方式给出外,出外,还可可以存放器符号方式以存放器符号方式给出。直接出。直接寻址是址是访问特殊功能存放器特殊功能存放器的独一方法。的独一方法。3存放器寻址在指令中将指定存放器的内容作为操作数。 存放器寻址方式中,用符号称号来表示存放器。 例如:指令INCR0功能

6、:把存放器R0的内容加1,再送回R0中。由于操作数在R0中,指定了R0,也就得到了操作数,如下图。存放器寻址方式的寻址范围包括:存放器寻址方式的寻址范围包括:14个存放器组共个存放器组共32个通用存放器。个通用存放器。指令中只能运用当前存放器组。经过指定指令中只能运用当前存放器组。经过指定PSW中中的的RS1、RS0,以选择运用的当前存放器组。,以选择运用的当前存放器组。2部分特殊功能存放器。部分特殊功能存放器。例如累加器例如累加器A、AB存放器对以及数据指针存放器对以及数据指针DPTR。4存放器存放器间接接寻址址 在指令中在指令中给出的存放器内容是操作数的地址,从出的存放器内容是操作数的地址

7、,从该地地址中取出的才是操作数。址中取出的才是操作数。存放器存放器间接接寻址也需以存放器符号称号的方式表示。址也需以存放器符号称号的方式表示。在存放器在存放器间接接寻址中,在存放器的称号前面加前址中,在存放器的称号前面加前缀“。例如:指令例如:指令ANLA,R1假定假定R1存放器的内容是存放器的内容是60H,指令的功能是以,指令的功能是以R1存存放器的内容放器的内容60H为地址,将地址,将60H地址地址单元的内容与累加器元的内容与累加器A中的数相中的数相“与与,其,其结果仍存放在果仍存放在A中、其功能表示中、其功能表示请参参见图。存放器存放器间接接寻址的址的寻址范址范围:片内片内RAM的低的低

8、128单元,只能采用元,只能采用R0或或R1为间址存放器。其方式址存放器。其方式为Rii0,1。片外片外RAM的的64KB单元,运用元,运用DPTR作作为间址存放器。例如:址存放器。例如:MOVXA,DPTR。片外片外RAM低低256单元,运用元,运用R0或或R1作作间址址存放器。存放器。例如:例如:MOVXA,R0。堆堆栈区:堆区:堆栈操作指令操作指令PUSH和和POP,以,以SP作作间址存放器的址存放器的间接接寻址方式。址方式。相相对寻址址在指令中在指令中给出的操作数出的操作数为程序程序转移的偏移量。移的偏移量。在相在相对转移指令中,移指令中,给出地址偏移量以出地址偏移量以“rel表示表示

9、,把,把PC的当前的当前值加上偏移量就构成了程序加上偏移量就构成了程序转移的目的移的目的地址。地址。转移的目的地址可用如下公式表示:移的目的地址可用如下公式表示:目的地址目的地址(转移指令所在地址移指令所在地址转移指令字移指令字节数数)rel在在51的指令系的指令系统中,有中,有许多条相多条相对转移指令,移指令,这些指些指令多数均令多数均为两字两字节指令只需个指令只需个别的是三字的是三字节的指令。的指令。偏移量偏移量rel是一个是一个带符号的符号的8位二位二进制制补码数,所能表数,所能表示的数的范示的数的范围是一是一128127。因此,以相。因此,以相对转移指令移指令的所在地址的所在地址为基点

10、,向前最大可基点,向前最大可转移移127十十转移指令字移指令字节数个数个单元地址,向后最大可元地址,向后最大可转移移128一一转移指令字移指令字节数个数个单元地址。元地址。例如:指令例如:指令JC80H假假设进位位位位C为0,那么程序,那么程序计数器数器PC中的内中的内容加容加2,即,即顺序往下;序往下;假假设进位位位位C为1,那么以程序,那么以程序计数器数器PC中当中当前前值为基地址,加上偏移量基地址,加上偏移量80H后所得后所得结果作果作为该转移指令的目的地址,其移指令的目的地址,其执行表示行表示图如下如下图。指令的操作指令的操作码存在存在1000H单元,偏移量存在元,偏移量存在1001H

11、单元。元。执行行该指令后,程序指令后,程序计数器数器PC指向指向1002H即当前即当前值。这里里80H即即128,故,故1002H与与12880H相加相加补码运算后得运算后得到到转移地址移地址0F82H。6变址寻址变址寻址以以DPTR或或PC为基址存放器,累加器为基址存放器,累加器A为变址为变址存放器,以两者内容相加后构成的存放器,以两者内容相加后构成的16位程序存储位程序存储器地址作为操作数地址。器地址作为操作数地址。又称基址存放器变址存放器间接寻址。又称基址存放器变址存放器间接寻址。例如:例如:MOVCA,ADPTR功能:把功能:把DPTR和和A的内容相加所得到的程序的内容相加所得到的程序

12、存储器地址单元的内容送存储器地址单元的内容送A。假定指令执行前:假定指令执行前:A54H,DPTR1256H该指令的操作表示参见图。该指令的操作表示参见图。变址寻址构成的操作数地址为变址寻址构成的操作数地址为1256H54H12AAH,假设,假设12AAH单元的内容为单元的内容为00H,那么,那么该指令执行的结果是该指令执行的结果是A的内容为的内容为00H。89S51指令系指令系统统中的中的变变址址寻寻址指令有如下特点:址指令有如下特点: 变变址址寻寻址方式只能址方式只能对对程序存程序存储储器器进进展展寻寻址址。 变变址址寻寻址指令只需址指令只需3条条MOVCA,ADPTRMOVCA,APCJ

13、MPADPTR这这3条指令都是条指令都是单单字字节节指令。指令。 变变址址寻寻址方式用于址方式用于查查表操作。表操作。7位寻址位寻址位寻址的寻址范围:位寻址的寻址范围:1片内片内RAM中的位寻址区。中的位寻址区。 片内片内RAM中的单元地址中的单元地址20H2FH,共,共16个个单元单元128位,为位寻址区,位地址是位,为位寻址区,位地址是00H7FH。例如例如MOVC,2BH指令的功能是把位寻址区的指令的功能是把位寻址区的2BH位形状送累加位位形状送累加位C。 2可位寻址的特殊功能存放器位。可位寻址的特殊功能存放器位。可供位寻址的特殊功能存放器共有可供位寻址的特殊功能存放器共有11个,有个,

14、有寻址位寻址位83位位寻址位在指令中有以下址位在指令中有以下4种表示方法:种表示方法:直接运用位地址表示。直接运用位地址表示。单元地址加位。例如元地址加位。例如88H单元的位元的位5,那么表,那么表示示为88H.5。特殊功能存放器符号加位、例如特殊功能存放器符号加位、例如PSW存放器存放器的位的位5,可表示,可表示为:为PSW.5。位称号表示方法,特殊功能存放器中的一些位称号表示方法,特殊功能存放器中的一些寻址位是有称号的,例如址位是有称号的,例如PSW存放器位存放器位5为F0标志志位,那么可运用位,那么可运用F0表示表示该位。位。对于指令中的操作数,由于指令操作常伴有从右于指令中的操作数,由

15、于指令操作常伴有从右向左向左传送数据的内容,所以常把左送数据的内容,所以常把左边操作数称操作数称为目的操作数,而右目的操作数,而右边操作数称操作数称为源操作数。源操作数。 89S51指令系指令系统的的7种种寻址方式概括起来如表址方式概括起来如表31所列。所列。7.隐含寻址操作数的地址隐含在操作码中,不需求指明,这种方式称为隐含寻址。不是明显的给出操作数地址,而是在指令中隐含着操作数的地址,即要寻觅的地址包含在操作码中。例如在单地址指令格式中,就是不明显的给出第二操作数的地址,而是以隐含的方式规定累加器作为第二操作数的地址。单字字节指令指令指令只需一个字指令只需一个字节,操作,操作码和操作数同在

16、一个和操作数同在一个字字节中。中。如如MOVA,Rn指令机器指令机器码为单字字节11001rrr,其中,其中rrr可表示可表示为000111,分,分别代表代表R0R7双字双字节指令:其中一个字指令:其中一个字节为操作操作码,另一个,另一个字字节是操作数。是操作数。如如MOVA,#data8位立刻数位立刻数data需占一个字需占一个字节,操作操作码也需一个字也需一个字节。三字三字节指令:操作指令:操作码占一个字占一个字节,操作数占两,操作数占两个字个字节。其中操作数既能。其中操作数既能够是数据,也能是数据,也能够是地是地址。址。如如ANLdirect,#data指令需指令需3个字个字节,第,第1

17、字字节为操作操作码,第,第2字字节为8位直接地址位直接地址direct,第,第3字字节为8位立刻数位立刻数data。从指令从指令执行行时间来看,来看,单机器周期指令有机器周期指令有64种,双机器周期指令有种,双机器周期指令有45种,只需乘法、除法指种,只需乘法、除法指令的令的执行行时间为4个机器周期。在个机器周期。在12MHz晶振条晶振条件下,件下,89S51的指令的指令执行行时间分分别为1S、2S、4S。指令分指令分类89S5189S51的指令系的指令系统,共有,共有111111条指令,按其功能可分条指令,按其功能可分为5 5大大类: 数据数据传送送类指令指令2828条;条; 算算术运算运算

18、类指令指令2424条;条; 逻辑运算运算类指令指令2525条;条; 控制控制转移移类指令指令(17 (17 条条) ); 布布尔操作位操作位类指令指令1717条。条。指令系统中运用符号阐明指令系统中运用符号阐明Rnn07,表示当前存放器组的,表示当前存放器组的8个通用存个通用存放器放器R0R7中的一个。中的一个。Rii0,l,可用作间接寻址的存放器,只,可用作间接寻址的存放器,只能是能是R0、R1两个存放器中的一个。两个存放器中的一个。direct内部的内部的8位地址,既可以指片内位地址,既可以指片内RAM的低的低128个单元地址,也可以指特殊功能存个单元地址,也可以指特殊功能存放器的地址或符

19、号称号,因此,放器的地址或符号称号,因此,direct表示直接表示直接寻址方式。寻址方式。#data指令中所含的指令中所含的8位立刻数。位立刻数。#data16指令中所含的指令中所含的16位立刻数。位立刻数。addr1616位目的地址位目的地址,只限于在只限于在LCALL和和LJMP指令中指令中 运用。运用。addr1111位目的地址,只限于在位目的地址,只限于在ACALL和和AJMP指令指令中运用。中运用。rel相对转移指令中的偏移量,为相对转移指令中的偏移量,为8位带符号数。位带符号数。为为 SJMP和一切条件转移指令所用。转移范围为和一切条件转移指令所用。转移范围为相相 对于下一条指令笫

20、一字节地址的对于下一条指令笫一字节地址的-128127。DPTR 数据指针。数据指针。bit片内片内RAM包括部分特殊功能存放器包括部分特殊功能存放器中的中的直接寻址位。直接寻址位。A累加器。累加器。B B存放器。存放器。C进进位位标标志位,是布志位,是布尔尔处处置机中的累加器,置机中的累加器,称之称之为为累加位。累加位。 间间址存放器的前址存放器的前缀标缀标志。志。/ 位地址的前位地址的前缀标缀标志,表示志,表示对该对该位操作数取反。位操作数取反。 某存放器或某某存放器或某单单元的内容。元的内容。 由由寻寻址的址的单单元中的内容。元中的内容。箭箭头头左左边边的内容被箭的内容被箭头头右右边边的

21、内容所取的内容所取代。代。(1)(1)标标号:用号:用户户定定义义的符号地址。的符号地址。 (2)(2)操作操作码码:该该字段必不可少,表示指令字段必不可少,表示指令进进展何种操作,即操作性展何种操作,即操作性质质。(3)(3)操作数:操作数:该该字段能字段能够够有,能有,能够够没有。没有。(4)(4)注注释释:该该字段不是字段不是汇编汇编言言语语的功能部分,的功能部分,只添加程序的可只添加程序的可读读性。注性。注释释前要加前要加“;“;1、内部数据传送指令 (1)以累加器A为目的地址的指令指令操作MOVA,Rn(A)(Rn)MOVA,direct(A)(direct)MOVA,Ri(A)(R

22、i)MOVA,#data(A)data这组指令的功能是将源操作数送入累加器A中。源操作数的寻址方式分别为存放器寻址、直接寻址、存放器间接寻址和立刻寻址方式(2)以Rn为目的地址的指令指令操作MOVRn,A(Rn)(A)MOVRn,direct(Rn)(direct)MOVRn,#data(Rn)data这组指令的功能是将源操作数送入当前任务存放器区R0R7中的某一存放器中。源操作数的寻址方式分别为隐含寻址、直接寻址和立刻寻址方式。(3)(3)以直接地址以直接地址为为目的地址的指令目的地址的指令 指令指令 操作操作 MOV direct,A (direct)(A) MOV direct,A (d

23、irect)(A) MOV direct,Rn (direct)(Rn) MOV direct,Rn (direct)(Rn) MOV direct,Ri MOV direct,Ri (direct)(Ri) (direct)(Ri) MOV direct1,direct2 MOV direct1,direct2 (direct1)(direct2) (direct1)(direct2) MOV direct,#data (direct) data MOV direct,#data (direct) data 这组这组指令的功能是将源操作数送入由直指令的功能是将源操作数送入由直接地址指出的存接

24、地址指出的存储单储单元中。源操作数的元中。源操作数的寻寻址址方式分方式分别为隐别为隐含含寻寻址、存放器址、存放器寻寻址、存放器址、存放器间间接接寻寻址、直接址、直接寻寻址和立刻址和立刻寻寻址方式。址方式。(4)以存放器间接地址为目的地址的指令 MOV Ri,A (Ri)(A) MOV Ri,direct (Ri)(direct) MOV Ri,# data (Ri) data 这组指令的功能是将源操作数送入R0或R1间址的片内RAM存储单元中。源操作数的寻址方式分别为隐含寻址、直接寻址和立刻寻址方式。留意:目操可以是A、direct、Rn、Ri中的任一个,源操可以是A、direct、Rn、Ri

25、、#data中的任一个。#data不能作目操。目操和源操不能同时出现Rn、Ri。目操和源操不能同时为A。目操和源操可以同时为direct类型。目操和源操数据长度应坚持一致。2.外部数据传送指令(1)16位数据传送指令指令操作MOVDPTR,#data16(DPTR)data16(2)外部RAM数据传送指令MOVX功能:实现片外数据存储器(或扩展I/O口)与累加器A之间的数据传送。 指令 操作 MOVX A,DPTR (A)(DPTR) MOVX A,Ri (A)(Ri) MOVX DPTR,A (DPTR)(A) MOVX Ri,A (Ri)(A) (3)外部ROM数据传送指令MOVCMOVC

26、 A, APC ;(A)(A)(PC) MOVC A, ADPTR;(A)(A)(DPTR) 3. 数据交数据交换换指令指令(1)字字节节交交换换指令指令XCH 指令指令 操作操作 XCH A, Rn (A) (Rn) XCH A, direct (A) (direct) XCH A, Ri (A) (Ri) (2)半字半字节节交交换换指令指令XCHD 指令指令 操作操作 XCHD A,Ri(A) 低低4位位(Ri)低低4位位 压栈过程程出出栈过程程(1)压栈指令PUSH指令操作PUSHdirect(SP)(SP)1(SP)(direct)(2)出栈指令POP指令操作POPdirect(dir

27、ect)(SP)(SP)(SP)14.堆堆栈栈操作指令操作指令算算术运算运算类指令指令 3.4MCS-51单片机算术运算指令包括: 加法指令带进位加法指令带进位减法指令加1指令减1指令十进制调整指令乘法和除法指令共24条 1、加法指令、加法指令(1)不不带进带进位的加法指令位的加法指令ADD指令指令操作操作ADDA,Rn(A)(A)+(Rn)ADDA,direct(A)(A)+(direct)ADDA,Ri(A)(A)+(Ri)ADDA,#data(A)(A)+data这组这组加法指令的功能是将源操作数和累加加法指令的功能是将源操作数和累加器器A的内的内容相加,容相加,结结果存放在果存放在A中

28、。源操作数分中。源操作数分别为别为存存放器放器寻寻址、直接址、直接寻寻址、存放器址、存放器间间接接寻寻址和立刻址和立刻寻寻址方式。址方式。(2)带进位加法指令ADDC 指令 操作 ADDC A, Rn (A)(A)+(Rn)+CY ADDC A, direct (A)(A)+(direct)+CY ADDC A, Ri (A)(A)+(Ri)+CY ADDC A, #data (A)(A)+ data +CY 这组指令的功能是将源操作数、进位标志 CY和累加器A的内容相加,结果存放在A中。ADDC指令对标志位的影响与ADD指令一样,这条指令多用于多字节加法运算,使得在进展高字节加法时,思索到低

29、位字节向高位字节的进位情况。 (3)加1指令INC 指令 操作 INC A (A)(A)+1 INC Rn (Rn)(Rn)+1 INC direct (direct)(direct)+1 INC Ri (Ri)(Ri)+1 INC DPTR (DPTR)(DPTR)+1 这组指令的功能是将源操作数加1,结果仍送给源操作数(因此源操也是目操)。假设原来为0FFH,那么将溢出为00H。本组指令除指令INC A影响P标志外,其他不影响任何标志,操作数可采用存放器寻址、直接寻址或存放器间接寻址方式。 (4)BCD码加法调整指令DA 指令 操作DA A 对(A)进展二十进制调整BCD码是指用4位二进制

30、编码方式表示1位十进制数09。假设一个字节存放两位BCD码数,那么称为紧缩BCD码数。调整原那么为:假设相加结果的低4位大于9(即出现字母),或AC=1,那么进展加06H调整;假设相加结果的高4位大于9(即出现字母),或CY=1,那么进展加60H调整。调整结果仍存放在A中。 2. 减法指令减法指令(1)带进带进位减法指令位减法指令SUBB 指令指令 操作操作 SUBB A,Rn (A)(A)(Rn)CY SUBB A,direct (A)(A)(direct)CY SUBB A, Ri (A)(A)(Ri)CY SUBB A, #data (A)(A)dataCY 这组这组指令的功能是将累加器

31、指令的功能是将累加器A减去源操作减去源操作数及数及进进位位标标志志CY,结结果存放在果存放在A中。假中。假设设需需进进展不展不带带借位的减法运算,那么借位的减法运算,那么应该应该先将先将CY清清0,然后再,然后再执执行行SUBB指令。指令。 (2)减1指令DEC 指令 操作 DEC A (A)(A)1 DEC Rn (Rn)(Rn)1 DEC direct (direct)(direct)1 DEC Ri (Ri)(Ri)1 这组指令的功能是将源操作数减1,结果仍送给源操作数(因此源操也是目操)。假设原来为00H,减1后下溢为0FFH。本组指令除指令DEC A影响P标志外,其他均不影响任何标志

32、。 3.乘法指令乘法指令MUL指令MULAB这条指令是把累加器A和存放器B中的8位无符号二进制数相乘,16位乘积的低8位留在累加器A中,高8位存放在存放器B中。假设乘积大于0FFH,那么OV=1,否那么OV=0。CY标志总是被清0。设(A)50H,(B)0A0H,执行指令:MULAB结果:(B)32H,(A)00H(即积为3200H),OV1,CY=0。4.除法指令除法指令DIV指令指令DIVAB这条指令的功能是把累加器这条指令的功能是把累加器A中的中的8位无符号位无符号二进制数除以存放器二进制数除以存放器B中的中的8位无符号二进制数,位无符号二进制数,所得商的整数部分存放在累加器所得商的整数

33、部分存放在累加器A中,余数部分中,余数部分存放在存放器存放在存放器B中。中。假设原来假设原来B的内容为的内容为0,即除数为,即除数为0,那么结果,那么结果A和和B的内容不定,且溢出标志位的内容不定,且溢出标志位OV=1。CY标志标志总是被清总是被清0。设设(A)=0FBH,(B)=12H,执行指令:,执行指令:DIVAB结果为:结果为:(A)0DH,(B)11H,CY0,OV0。逻辑运算指令运算指令 3.5MCS-51单片机的逻辑运算指令包括:累加器A的逻辑操作指令两个操作数的逻辑与指令逻辑或指令及逻辑异或指令 共25条 1.两个操作数的逻辑操作指令(1)逻辑与指令ANL指令操作ANLA,Rn

34、(A)(A)(Rn)ANLA,direct(A)(A)(direct)ANLA,Ri(A)(A)(Ri)ANLA,#data(A)(A)dataANLdirect,A(direct)(direct)(A)ANLdirect,#data(direct)(direct)data(2)逻辑或指令ORL指令操作ORLA,Rn(A)(A)(Rn)ORLA,direct(A)(A)(direct)ORLA,Ri(A)(A)(Ri)ORLA,#data(A)(A)dataORLdirect,A(direct)(direct)(A)ORLdirect,#data(direct)(direct)data(3)逻

35、辑异或指令XRL指令操作XRLA,Rn(A)(A)(Rn)XRLA,direct(A)(A)(direct)XRLA,Ri(A)(A)(Ri)XRLA,#data(A)(A)dataXRLdirect,A(direct)(direct)(A)XRLdirect,#data(direct)(direct)data2.累加器A的逻辑操作指令(1)清0指令指令操作CLRA(A)00H这条指令的功能是将累加器A清0。只影响P标志。(2)取反指令指令操作CPLA(A)这条指令的功能是将累加器A的每一位逻辑取,不影响标志。(3)左循环移位指令指令操作RLA这条指令的功能是将累加器A的内容向左循环移1位,A

36、CC.7移入ACC.0。不影响标志(4)带进位左循环移位指令 指令 操作 RLC A 这条指令的功能是将累加器A的内容和进位标志(CY)一同向左循环移1位,ACC.7移入CY,CY移入ACC.0。影响进位标志和奇偶标志,不影响其它标志。(5)右循环移位指令指令操作RRA累加器A的内容向右循环移1位。ACC.0移入ACC.7。不影响标志。(6)带进位右循环移位指令指令操作RRCA累加器A的内容和进位标志CY的内容一同向右循环移1位,ACC.0移入CY,CY移入ACC.7。影响进位标志和奇偶标志,不影响其它标志。(7)累加器半字节交换指令指令操作SWAPA(A)74(A)30这条指令的功能是将累加

37、器A的高4位与低4位互换,不影响标志位。位操作位操作类指令指令 3.61.位位传传送指令送指令 指令指令 操作操作 MOV C,bit Cbit MOV bit,C bitC 这组这组指令的功能是在以指令的功能是在以bit表示的位表示的位和位累加器和位累加器C之之间进间进展数据展数据传传送。送。2. 位修正指令位修正指令 指令指令 操作操作 CLR C C0 CLR bit bit0 CPL C C CPL bit bit SETB C C1 SETB bit bit1 这组这组指令的功能是将指定的位清指令的功能是将指定的位清0、取反或置取反或置1 3. 位位逻辑逻辑操作指令操作指令(1)位位

38、逻辑逻辑与指令与指令 指令指令 操作操作 ANL C,bit CCbit ANL C, CC这组这组指令是将指定的位地址指令是将指定的位地址单单元内容元内容(或取反后的内容或取反后的内容)与位累加器与位累加器C的内容的内容进进展展逻辑逻辑与操作,与操作,结结果送入果送入C中,源位地址中,源位地址单单元内容不元内容不变变。 (2)位逻辑或指令 指令 操作 ORL C,bit CCbit ORL C, CC这组指令与ANL指令类似,是将指定位地址单元中的内容(或取反后的内容)与位累加器C进展逻辑或操作,结果送入C中。控制控制转移移类指令指令 3.7控制转移指令分:无条件转移指令条件转移指令调用和前

39、往指令 共有22条 1.无条件转移指令(1)绝对转移指令AJMPaddr11(2)相对转移指令SJMPrel(3)长转移指令LJMPaddr16;(PC)addr16(4)基址存放器加变址存放器间接转移指令(散转指令)JMPA+DPTR(PC)(A)+(DPTR)2.条件转移指令(1)条件满足转移指令指令转移条件JZrel(A)0;假设累加器A内容为0,那么转移JNZrel(A)0;假设累加器A内容不为0,那么转移JCrelCY=1;假设进位标志CY=1,那么转移JNCrelCY=0;假设进位标志CY=0,那么转移JBbit,relbit=1;假设直接寻址位值为1,那么转移JNBbit,rel

40、bit=0;假设直接寻址位值为0,那么转移JBCbit,relbit=1;假设直接寻址位值为1,那么转移,然后将该位清0(2)比较不等转移指令CJNE A, direct, rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE Ri,#data,rel 这组指令的功能是比较指令中两个操作数的值能否相等,假设它们的值不相等,那么转移,转移目的地址为PC当前值(本指令地址加3)与偏移量rel相加所得地址。假设第一操作数(无符号数)小于第二操作数,那么置CY=1,否那么CY=0。假设两数相等,那么程序顺序执行下一条指令。(3)减1不为0转移指令(循环转移指令) DJ

41、NZ Rn,rel DJNZ direct,rel 这组指令的功能是将第一操作数减1,结果仍送回第一操作数。假设结果不为0,那么转移,目的地址为PC当前值(本指令地址加2或3)与偏移量rel相加所得地址。假设结果为0,那么程序顺序执行下一条指令。这组指令常用于循环计数,允许编程者把任务存放器或片内RAM单元用作程序循环计数器。3.调用和前往指令MCS-51单片机的调用指令为ACALL和LCALL,调用前往指令为RET。(1)绝对调用指令ACALLaddr11该指令的操作为:(PC)(PC)+2;(SP)(SP)1,(SP)(PCL);(SP)(SP)1,(SP)(PCH);(PC10PC0)a

42、ddr11,(PC15PC11)不变。(2)长调用指令LCALLaddr16该指令的操作为:(PC)(PC)+3;(SP)(SP)1,(SP)(PCL);(SP)(SP)1,(SP)(PCH);(PC)addr16。(3)前往指令调用子程序前往指令RET操作:(PCH)(SP),(SP)(SP)1;(PCL)(SP),(SP)(SP)1。使得CPU从堆栈中弹出的PC值处开场执行程序。中断前往指令RETI4. 空操作指令空操作指令 NOP 该指令无任何操作,执行该指令仅使该指令无任何操作,执行该指令仅使PC加加1,然后继续执行下条指令。,然后继续执行下条指令。NOP在时间上占用一个机器周期,因在时间上占用一个机器周期,因此常用于软件延时程序。此常用于软件延时程序。本章小结本章小结1、引见了指令格式和寻址方式。2、寻址方式就是寻觅操作数地址的方式3、 对MCS-51单片机的数据传送类、算术运算类、逻辑运算类、位操作类及控制转移类这五大类指令进展了详细的引见与分析。

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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