单片微型计算机原理与接口技术 第二版 第3章___80C51单片微机的指系统06[1].12[....ppt
《单片微型计算机原理与接口技术 第二版 第3章___80C51单片微机的指系统06[1].12[....ppt》由会员分享,可在线阅读,更多相关《单片微型计算机原理与接口技术 第二版 第3章___80C51单片微机的指系统06[1].12[....ppt(154页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、普通高等教育“十一五”国家级规划教材单片微型计算机原理与接口技术单片微型计算机原理与接口技术(第二版)(第二版)高锋高锋编著编著科学出版社科学出版社北京北京第三章第三章80C51单片微机的指令系单片微机的指令系统统3.180C51指令系统概述指令系统概述80C51指令系统专用于指令系统专用于80C51系列单片微机,是一系列单片微机,是一个具有个具有255种操作码种操作码(00H至至FFH,除,除A5H外外)的集合。的集合。用汇编语言表达操作代码时,用汇编语言表达操作代码时,42种助记符代表了种助记符代表了33种功能,有的功能如数据传送,可以有几种助记符,种功能,有的功能如数据传送,可以有几种助
2、记符,如如MOV、MOVC、MOVX。指令功能助记符与操作数各种寻址方式的结合,指令功能助记符与操作数各种寻址方式的结合,共构造出共构造出111种指令,同一种指令所对应的操作码可以种指令,同一种指令所对应的操作码可以多至多至8种种(如指令中如指令中Rn对应寄存器对应寄存器R0R7)。寻寻址址方方式式就就是是在在指指令令中中给给出出的的寻寻找找操操作作数数或或操操作作数所在地址的方法。数所在地址的方法。执行任何一条指令都需要使用操作数。执行任何一条指令都需要使用操作数。80C5l指令系统中共有指令系统中共有7种寻址方式。种寻址方式。3.1.1寻址方式寻址方式立即寻址立即寻址在指令中直接给出操作数
3、,出现在指令中的在指令中直接给出操作数,出现在指令中的操作数称为立即数。操作数称为立即数。在立即数前面必需加上前缀在立即数前面必需加上前缀“”。例如:指令例如:指令MOVDPTR,1234H1234H是是立立即即数数,指指令令功功能能是是把把16位位立立即即数数1234H送入数据指针送入数据指针DPTR中,如中,如图图31所示。所示。2直接寻址直接寻址在指令中直接给出操作数单元的地址。在指令中直接给出操作数单元的地址。例如:指令例如:指令MOVA,3AH功功能能:把把片片内内RAM中中3AH单单元元内内的的数数据据传传送送给给累累加器加器A,如,如图图32所示。所示。直接寻址方式只能给出直接寻
4、址方式只能给出8位地址,限于片内位地址,限于片内RAM:低低128单元,在指令中直接以单元地址形式给出。单元,在指令中直接以单元地址形式给出。特特殊殊功功能能寄寄存存器器,可可以以单单元元地地址址形形式式给给出出外外,还还可可以以寄寄存存器器符符号号形形式式给给出出。直直接接寻寻址址是是访访问问特特殊殊功功能能寄寄存存器的唯一方法。器的唯一方法。3寄存器寻址寄存器寻址在指令中将指定寄存器的内容作为操作数。在指令中将指定寄存器的内容作为操作数。寄存器寻址方式中,用符号名称来表示寄存器。寄存器寻址方式中,用符号名称来表示寄存器。例如:指令例如:指令INCR0功功能能 把把寄寄存存器器R0的的内内容
5、容加加1,再再送送回回R0中中。由由于于操操作作数数在在R0中中,指指定定了了R0,也也就就得得到到了了操操作作数数,如如图图33所示。所示。寄存器寻址方式的寻址范围包括:寄存器寻址方式的寻址范围包括:(1)4个寄存器组共个寄存器组共32个通用寄存器。个通用寄存器。指指令令中中只只能能使使用用当当前前寄寄存存器器组组。通通过过指指定定PSW中中的的RS1、RS0,以选择使用的当前寄存器组。,以选择使用的当前寄存器组。(2)部分特殊功能寄存器。)部分特殊功能寄存器。例如累加器例如累加器A、AB寄存器对以及数据指针寄存器对以及数据指针DPTR。4寄存器间接寻址寄存器间接寻址在在指指令令中中给给出出
6、的的寄寄存存器器内内容容是是操操作作数数的的地地址址,从从该该地址中取出的才是操作数。地址中取出的才是操作数。寄存器间接寻址也需以寄存器符号名称的形式表示。寄存器间接寻址也需以寄存器符号名称的形式表示。在寄存器间接寻址中,在寄存器的名称前面加前缀在寄存器间接寻址中,在寄存器的名称前面加前缀“”。例如:例如:指令指令ANLA,R1假假定定R1寄寄存存器器的的内内容容是是60H,指指令令的的功功能能是是以以R1寄寄存存器器的的内内容容60H为为地地址址,将将60H地地址址单单元元的的内内容容与与累累加加器器A中中的的数数相相“与与”,其其结结果果仍仍存存放放在在A中中、其其功功能能示示意意请请参见
7、参见图图34。寄存器间接寻址的寻址范围:寄存器间接寻址的寻址范围:片片内内RAM的的低低128单单元元,只只能能采采用用R0或或R1为为间间址址寄存器。其形式为寄存器。其形式为Ri(i0,1)。)。片片外外RAM的的64KB单单元元,使使用用DPTR作作为为间间址址寄寄存存器。例如器。例如 MOVXA,DPTR。片外片外RAM低低256单元,使用单元,使用R0或或R1作间址寄存器。作间址寄存器。例如:例如:MOVXA,R0。堆堆栈栈区区:堆堆栈栈操操作作指指令令PUSH和和POP,以以SP作作间间址址寄存器的间接寻址方式。寄存器的间接寻址方式。相对寻址相对寻址在指令中给出的操作数为程序转移的偏
8、移量。在指令中给出的操作数为程序转移的偏移量。在在相相对对转转移移指指令令中中,给给出出地地址址偏偏移移量量(以以“rel”表表示示),把把PC的当前值加上偏移量就构成了程序转移的目的地址。的当前值加上偏移量就构成了程序转移的目的地址。转移的目的地址可用如下公式表示:转移的目的地址可用如下公式表示:目的地址目的地址(转移指令所在地址转移指令字节数转移指令所在地址转移指令字节数)rel在在8051的的指指令令系系统统中中,有有许许多多条条相相对对转转移移指指令令,这这些些指指令令多数均为两字节指令只有个别的是三字节的指令。多数均为两字节指令只有个别的是三字节的指令。偏偏移移量量rel是是一一个个
9、带带符符号号的的8位位二二进进制制补补码码数数,所所能能表表示示的的数数的的范范围围是是一一128127。因因此此,以以相相对对转转移移指指令令的的所所在在地地址址为为基基点点,向向前前最最大大可可转转移移(127十十转转移移指指令令字字节节数数)个个单单元元地地址址,向向后后最大可转移(最大可转移(128一转移指令字节数)个单元地址。一转移指令字节数)个单元地址。例如:指令例如:指令JC80H若若进进位位位位C为为0,则则程程序序计计数数器器PC中中的的内内容容加加2,即即顺顺序序往往下;下;若若进进位位位位C为为1,则则以以程程序序计计数数器器PC中中当当前前值值为为基基地地址址,加加上上
10、偏偏移移量量80H后后所所得得结结果果作作为为该该转转移移指指令令的的目目的的地地址址,其其执执行行示示意图如意图如图图35所示。所示。指令的操作码存在指令的操作码存在1000H单元,偏移量存在单元,偏移量存在1001H单元。单元。执行该指令后,程序计数器执行该指令后,程序计数器PC指向指向1002H(即当前值)。这里(即当前值)。这里80H即即128,故,故1002H与与128(80H)相加(补码运算)后得到)相加(补码运算)后得到转移地址转移地址0F82H。1002H80H0F82H6变址寻址变址寻址以以DPTR或或PC为基址寄存器,累加器为基址寄存器,累加器A为变址寄存器,以为变址寄存器
11、,以两者内容相加后形成的两者内容相加后形成的16位程序存储器地址作为操作数地址。位程序存储器地址作为操作数地址。又称基址寄存器变址寄存器间接寻址。又称基址寄存器变址寄存器间接寻址。例如:例如:MOVCA,ADPTR其其功功能能是是把把DPTR和和A的的内内容容相相加加所所得得到到的的程程序序存存储储器器地地址址单元的内容送单元的内容送A。假定指令执行前假定指令执行前(A)54H,(,(DPTR)1256H则该指令的操作示意请参见则该指令的操作示意请参见图图36。变址寻址形成的操作数地址为变址寻址形成的操作数地址为1256H54H12AAH,若,若12AAH单元的内容为单元的内容为00H,则该指
12、令执行的结果是,则该指令执行的结果是A的内容为的内容为00H。80C51指令系统中的变址寻址指令有如下特点:指令系统中的变址寻址指令有如下特点:变址寻址方式只能对程序存储器进行寻址变址寻址方式只能对程序存储器进行寻址。变址寻址指令只有变址寻址指令只有3条条MOVCA,ADPTRMOVCA,APCJMPADPTR这这3条指令都是单字节指令。条指令都是单字节指令。变址寻址方式用于查表操作。变址寻址方式用于查表操作。7位寻址位寻址位寻址的寻址范围:位寻址的寻址范围:(1)片内)片内RAM中的位寻址区。中的位寻址区。片片内内RAM中中的的单单元元地地址址20H2FH,共共16个个单单元元128位位,为
13、位寻址区,位地址是为位寻址区,位地址是00H7FH。例例如如MOVC,2BH指指令令的的功功能能是是把把位位寻寻址址区区的的2BH位位状状态态送送累加位累加位C。(2)可位寻址的特殊功能寄存器位。可位寻址的特殊功能寄存器位。可供位寻址的特殊功能寄存器共有可供位寻址的特殊功能寄存器共有11个,有寻址位个,有寻址位83位。位。寻址位在指令中有以下寻址位在指令中有以下4种表示方法:种表示方法:直接使用位地址表示。直接使用位地址表示。单元地址加位。例如单元地址加位。例如88H单元的位单元的位5,则表示为,则表示为88H.5。特特殊殊功功能能寄寄存存器器符符号号加加位位、例例如如PSW寄寄存存器器的的位
14、位5,可可表表示示为为:为为PSW.5。位位名名称称表表示示方方法法,特特殊殊功功能能寄寄存存器器中中的的一一些些寻寻址址位位是是有有名名称称的的,例如例如PSW寄存器位寄存器位5为为F0标志位,则可使用标志位,则可使用F0表示该位。表示该位。对于指令中的操作数,因为指令操作常伴有从右向左传送对于指令中的操作数,因为指令操作常伴有从右向左传送数据的内容,所以常把左边操作数称为目的操作数,而右边操数据的内容,所以常把左边操作数称为目的操作数,而右边操作数称为源操作数。作数称为源操作数。80C51指令系统的指令系统的7种寻址方式概括起来如种寻址方式概括起来如表表31所列。所列。指令的表示方法称之为
15、指令格式,其内容包括指指令的表示方法称之为指令格式,其内容包括指令的长度和指令内部信息的安排等。令的长度和指令内部信息的安排等。一条指令通常由操作码和操作数两部分组成。一条指令通常由操作码和操作数两部分组成。操作码规定指令所完成的操作,操作数表示操作操作码规定指令所完成的操作,操作数表示操作的对象。操作数可能是一个具体的数据,也可能是指出的对象。操作数可能是一个具体的数据,也可能是指出取得数据的地址或符号。取得数据的地址或符号。3.l.2指令格式指令格式单字节指令单字节指令指令只有一个字节,操作码和操作数同在一个字节中。在指令只有一个字节,操作码和操作数同在一个字节中。在80C51系列的指令系
16、统中,共有系列的指令系统中,共有49条单字节指令。条单字节指令。操作码操作码地址码地址码如如MOVA,Rn指令机器码为单字节指令机器码为单字节11001rrr,其中,其中rrr可表可表示为示为000111,分别代表,分别代表R0R7双双字字节节指指令令:其其中中一一个个字字节节为为操操作作码码,另另一一个个字字节节是是操作数。在操作数。在80C51系列的指令系统中,共有系列的指令系统中,共有45条双字节指令。条双字节指令。操作码操作码地址码地址码数据或地址码数据或地址码如如MOVA,#data8位立即数位立即数data需占一个字节,操作码也需一需占一个字节,操作码也需一个字节。个字节。三字节指
17、令三字节指令:操作码占一个字节,操作数占两个字节。其中:操作码占一个字节,操作数占两个字节。其中操作数既可能是数据,也可能是地址。在操作数既可能是数据,也可能是地址。在80C51系列的指令系统系列的指令系统中,共有中,共有17条三字节指令。条三字节指令。操作码操作码数据或地址码数据或地址码数据或地址码数据或地址码如如ANLdirect,#data指指令令需需3个个字字节节,第第1字字节节为为操操作作码码,第第2字节为字节为8位直接地址位直接地址direct,第,第3字节为字节为8位立即数位立即数data。从指令执行时间来看,单机器周期指令有从指令执行时间来看,单机器周期指令有64种,双机器周种
18、,双机器周期指令有期指令有45种,只有乘法、除法指令的执行时间为种,只有乘法、除法指令的执行时间为4个机器周期。个机器周期。在在12MHz晶振条件下,晶振条件下,80C51的指令执行时间分别为的指令执行时间分别为1S、2S、4S。80C51的指令系统,共有的指令系统,共有111条指令,按其功能可分为条指令,按其功能可分为5大类:大类:数据传送类指令(数据传送类指令(28条);条);算术运算类指令(算术运算类指令(24条);条);逻辑运算类指令(逻辑运算类指令(25条);条);控制转移类指令控制转移类指令(17条条);布尔操作(位)类指令(布尔操作(位)类指令(17条)。条)。3.1.3 3.1
19、.3 指令分类指令分类Rnn07,表示当前寄存器组的,表示当前寄存器组的8个通用寄存个通用寄存器器R0R7中的一个。中的一个。Rii0,l,可可用用作作间间接接寻寻址址的的寄寄存存器器,只只能能是是R0、R1两个寄存器中的一个。两个寄存器中的一个。direct内内部部的的8位位地地址址,既既可可以以指指片片内内RAM的的低低128个个单单元元地地址址,也也可可以以指指特特殊殊功功能能寄寄存存器器的的地地址址或或符符号号名称,因此,名称,因此,direct表示直接寻址方式。表示直接寻址方式。#data指令中所含的指令中所含的8位立即数。位立即数。#data16指令中所含的指令中所含的16位立即数
20、。位立即数。3.1.4指令系统中使用符号说明指令系统中使用符号说明addr1616位位目目的的地地址址,只只限限于于在在LCALL和和LJMP指指令令中中使用。使用。addr1111位位目目的的地地址址,只只限限于于在在ACALL和和AJMP指指令令中使用。中使用。rel相相对对转转移移指指令令中中的的偏偏移移量量,为为8位位带带符符号号数数。为为SJMP和和所所有有条条件件转转移移指指令令所所用用。转转移移范范围围为为相相对于下一条指令笫一字节地址的对于下一条指令笫一字节地址的-128127。DPTR数据指针。数据指针。bit片片内内RAM(包包括括部部分分特特殊殊功功能能寄寄存存器器)中中
21、的的直接寻址位。直接寻址位。A累加器。累加器。BB寄存器。寄存器。C进进位位标标志志位位,是是布布尔尔处处理理机机中中的的累累加加器器,称称之之为为累加位。累加位。间址寄存器的前缀标志。间址寄存器的前缀标志。/位地址的前缀标志,表示对该位操作数取反。位地址的前缀标志,表示对该位操作数取反。()某寄存器或某单元的内容。某寄存器或某单元的内容。()由)由寻址的单元中的内容。寻址的单元中的内容。箭头左边的内容被箭头右边的内容所取代。箭头左边的内容被箭头右边的内容所取代。单单片片微微机机执执行行指指令令的的过过程程,分分为为取取指指令令和和执执行行指指令两项基本内容。令两项基本内容。在在取取指指阶阶段
22、段,单单片片微微机机从从程程序序存存储储器器中中取取出出指指令令操操作作码码,送送到到指指令令寄寄存存器器IR中中,通通过过指指令令译译码码器器的的译译码码,产生一系列的控制信号。产生一系列的控制信号。在指令执行阶段中,利用指令译码产生的控制信在指令执行阶段中,利用指令译码产生的控制信号,进行本指令规定的操作号,进行本指令规定的操作。3.1.5 3.1.5 单片微机执行指令的过程单片微机执行指令的过程3.2数据传送类指令数据传送类指令数据传送方向及相互关系见数据传送方向及相互关系见图图37。可分为内部可分为内部8位数据传送指令、位数据传送指令、16位数据传送指位数据传送指令令(专用于设定地址指
23、针专用于设定地址指针)、外部数据传送指令、程序存、外部数据传送指令、程序存储器数据传送指令、交换指令和堆栈操作指令。助记储器数据传送指令、交换指令和堆栈操作指令。助记符有符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP等等8种。种。源操作数可采用寄存器、寄存器间接、直接、立即、源操作数可采用寄存器、寄存器间接、直接、立即、寄存器基址加变址等寄存器基址加变址等5种寻址方式。种寻址方式。目的操作数可以采用寄存器、寄存器间接、直接等目的操作数可以采用寄存器、寄存器间接、直接等3种寻址方式。种寻址方式。一般操作是把源操作数传送到目的操作数,指令一般操作是把源操作数传送到目的
24、操作数,指令执行后源操作数不变,目的操作数被修改为源操作执行后源操作数不变,目的操作数被修改为源操作数。数。若要求进行数据传送时,目的操作数不变,则若要求进行数据传送时,目的操作数不变,则可以用交换指令。可以用交换指令。数数据据传传送送类类指指令令不不影影响响标标志志位位C、AC、OV。对对于于P标志一般不加以说明。标志一般不加以说明。堆堆栈栈操操作作指指令令可可以以直直接接修修改改程程序序状状态态字字PSW,这这时时可以使某些标志位发生改变。可以使某些标志位发生改变。从从图图37中可以看出数据传送指令的特点有:中可以看出数据传送指令的特点有:可可以以进进行行直直接接地地址址到到直直接接地地址
25、址的的数数据据传传送送,能能把把一一个个并并行行I/O口口中中的的内内容容传传送送到到片片内内RAM单单元元中中,而而不不必经过累加器或工作寄存器必经过累加器或工作寄存器Rn。用用R0和和R1寄寄存存器器间间址址访访问问片片外外数数据据存存储储器器256个个字字节节址址及及片片内内RAM中中的的任任一一单单元元。用用DPTR间间址址访访问问片片外全部外全部64KB的数据存储器或的数据存储器或I/O。累累加加器器A能能对对Rn寄寄存存器器寻寻址址;能能与与特特殊殊功功能能寄寄存存器器之之间间进进行行一一个个字字节节的的数数据据传传送送;能能对对片片内内RAM直直接接寻寻址址;能能与与片片内内RA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片微型计算机原理与接口技术 第二版 第3章_80C51单片微机的指系统061.12. 单片 微型计算机 原理 接口 技术 第二 _80C51 微机 系统 06 12
链接地址:https://www.taowenge.com/p-70679670.html
限制150内