【大学课件】MCS51单片机的指令系统P74.ppt
《【大学课件】MCS51单片机的指令系统P74.ppt》由会员分享,可在线阅读,更多相关《【大学课件】MCS51单片机的指令系统P74.ppt(74页珍藏版)》请在三一办公上搜索。
1、第三章 MCS-51单片机的指令系统,本章介绍MCS-51单片机的指令格式、寻址方式(包括立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寄存器间接寻址、相对寻址、隐含寻址等七种方式)、指令系统(包括数据传送类、算术运算类、逻辑运算类、位操作类、控制转移类等五大类指令)。通过本章的学习,要求学生能够熟练掌握MCS-51单片机的指令功能和应用。,http:/,指令格式,指令的表示方法称之为指令格式,其内容包括指令的长度和指令内部信息的安排等。一条指令通常由操作码和操作数两部分组成。操作码规定指令所完成的操作,操作数表示操作的对象。操作数可能是一个具体的数据,也可能是指出取得数据的地址或
2、符号。,http:/,单片微机执行指令的过程,单片微机执行指令的过程,分为取指令和执行指令两项基本内容。在取指阶段,单片微机从程序存储器中取出指令操作码,送到指令寄存器IR中,通过指令译码器的译码,产生一系列的控制信号。在指令执行阶段中,利用指令译码产生的控制信号,进行本指令规定的操作,http:/,51指令系统专用于51系列单片机,是一个具有255种操作码(00H至FFH,除A5H外)的集合。用汇编语言表达操作代码时,42种助记符代表了33种功能,有的功能如数据传送,可以有几种助记符,如MOV、MOVC、MOVX。指令功能助记符与操作数各种寻址方式的结合,共构造出111种指令,同一种指令所对
3、应的操作码可以多至8种(如指令中Rn对应寄存器R0R7)。,3.1,http:/,寻址:在指令中给出的寻找操作数或操作数所在地址的方法。执行任何一条指令都需要使用操作数。89S5l指令系统中共有7种寻址方式。,http:/,立即寻址在指令中直接给出操作数,出现在指令中的操作数称为立即数。在立即数前面必需加上前缀“”。例如:指令 MOV DPTR,1234H指令功能:把16位立即数1234H送入数据指针DPTR中。,http:/,http:/,2直接寻址在指令中直接给出操作数单元的地址。例如:指令 MOV A,3AH功能:把片内RAM中3AH单元内的数据传送给累加器A,如图所示。直接寻址方式只能
4、给出8位地址,限于片内RAM:低128单元,在指令中直接以单元地址形式给出。特殊功能寄存器,可以单元地址形式给出外,还可以寄存器符号形式给出。直接寻址是访问特殊功能寄存器的唯一方法。,http:/,http:/,3寄存器寻址 在指令中将指定寄存器的内容作为操作数。寄存器寻址方式中,用符号名称来表示寄存器。例如:指令INC R0功能:把寄存器R0的内容加1,再送回R0中。由于操作数在R0中,指定了R0,也就得到了操作数,如图所示。,http:/,http:/,寄存器寻址方式的寻址范围包括:(1)4个寄存器组共32个通用寄存器。指令中只能使用当前寄存器组。通过指定PSW中的RS1、RS0,以选择使
5、用的当前寄存器组。(2)部分特殊功能寄存器。例如累加器A、AB寄存器对以及数据指针DPTR。,http:/,4寄存器间接寻址 在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才是操作数。寄存器间接寻址也需以寄存器符号名称的形式表示。在寄存器间接寻址中,在寄存器的名称前面加前缀“”。例如:指令ANL A,R1 假定R1寄存器的内容是 60H,指令的功能是以 R1寄存器的内容 60H为地址,将60H地址单元的内容与累加器A中的数相“与”,其结果仍存放在A中、其功能示意请参见图。,http:/,http:/,寄存器间接寻址的寻址范围:片内RAM的低128单元,只能采用R0或R1为间址寄存器。
6、其形式为Ri(i0,1)。片外RAM 的64 KB单元,使用DPTR作为间址寄存器。例如:MOVX A,DPTR。片外RAM低256单元,使用R0或R1作间址寄存器。例如:MOVX A,R0。堆栈区:堆栈操作指令PUSH和POP,以SP作间址寄存器的间接寻址方式。,http:/,相对寻址在指令中给出的操作数为程序转移的偏移量。在相对转移指令中,给出地址偏移量(以“rel”表示),把PC的当前值加上偏移量就构成了程序转移的目的地址。转移的目的地址可用如下公式表示:目的地址(转移指令所在地址转移指令字节数)rel在51的指令系统中,有许多条相对转移指令,这些指令多数均为两字节指令只有个别的是三字节
7、的指令。偏移量rel是一个带符号的8位二进制补码数,所能表示的数的范围是一128127。因此,以相对转移指令的所在地址为基点,向前最大可转移(127十转移指令字节数)个单元地址,向后最大可转移(128一转移指令字节数)个单元地址。,http:/,例如:指令JC 80H 若进位位C为0,则程序计数器PC中的内容加2,即顺序往下;若进位位C为1,则以程序计数器PC中当前值为基地址,加上偏移量80H后所得结果作为该转移指令的目的地址,其执行示意图如图所示。指令的操作码存在 1000H单元,偏移量存在 1001H单元。执行该指令后,程序计数器PC 指向1002 H(即当前值)。这里80H即128,故1
8、002H与128(80H)相加(补码运算)后得到转移地址 0F82H。,http:/,http:/,6变址寻址以DPTR或PC为基址寄存器,累加器A为变址寄存器,以两者内容相加后形成的16位程序存储器地址作为操作数地址。又称基址寄存器变址寄存器间接寻址。例如:MOVC A,ADPTR功能:把DPTR和A的内容相加所得到的程序存储器地址单元的内容送A。,http:/,假定指令执行前:(A)54H,(DPTR)1256H 该指令的操作示意参见图。变址寻址形成的操作数地址为1256H54H12AAH,若12AAH单元的内容为00H,则该指令执行的结果是A的内容为00H。,http:/,http:/,
9、89S51指令系统中的变址寻址指令有如下特点:变址寻址方式只能对程序存储器进行寻址。变址寻址指令只有3条 MOVC A,ADPTR MOVC A,APC JMP ADPTR 这3条指令都是单字节指令。变址寻址方式用于查表操作。,http:/,7位寻址位寻址的寻址范围:(1)片内RAM中的位寻址区。片内RAM中的单元地址20H2FH,共16个单元128位,为位寻址区,位地址是00H7FH。例如 MOV C,2BH指令的功能是把位寻址区的2BH位状态送累加位C。(2)可位寻址的特殊功能寄存器位。可供位寻址的特殊功能寄存器共有11个,有寻址位83位,http:/,寻址位在指令中有以下4种表示方法:直
10、接使用位地址表示。单元地址加位。例如 88H单元的位5,则表示为88H.5。特殊功能寄存器符号加位、例如 PSW寄存器的位5,可表示为:为 PSW.5。位名称表示方法,特殊功能寄存器中的一些寻址位是有名称的,例如 PSW寄存器位5为F0标志位,则可使用F0表示该位。,http:/,对于指令中的操作数,因为指令操作常伴有从右向左传送数据的内容,所以常把左边操作数称为目的操作数,而右边操作数称为源操作数。89S51指令系统的7种寻址方式概括起来如表31所列。,http:/,7.隐含寻址 操作数的地址隐含在操作码中,不需要指明,这种方式称为隐含寻址。不是明显的给出操作数地址,而是在指令中隐含着操作数
11、的地址,即要寻找的地址包含在操作码中。例如在单地址指令格式中,就是不明显的给出第二操作数的地址,而是以隐含的方式规定累加器作为第二操作数的地址。,http:/,单字节指令 指令只有一个字节,操作码和操作数同在一个字节中。如 MOV A,Rn 指令机器码为单字节11001rrr,其中rrr可表示为000111,分别代表R0R7,http:/,双字节指令:其中一个字节为操作码,另一个字节是操作数。如MOV A,#data 8位立即数data需占一个字节,操作码也需一个字节。三字节指令:操作码占一个字节,操作数占两个字节。其中操作数既可能是数据,也可能是地址。,http:/,如ANL direct,
12、#data 指令需3个字节,第1字节为操作码,第2字节为8位直接地址direct,第3字节为8位立即数data。从指令执行时间来看,单机器周期指令有64种,双机器周期指令有45种,只有乘法、除法指令的执行时间为4个机器周期。在12MHz晶振条件下,89S51的指令执行时间分别为1S、2S、4S。,http:/,指令分类89S51的指令系统,共有111条指令,按其功能可分为5大类:数据传送类指令(28条);算术运算类指令(24条);逻辑运算类指令(25条);控制转移类指令(17 条);布尔操作(位)类指令(17条)。,http:/,指令系统中使用符号说明,Rn n07,表示当前寄存器组的8个通用
13、寄存器R0R7 中的一个。Ri i0,l,可用作间接寻址的寄存器,只能是R0、R1 两个寄存器中的一个。direct 内部的8位地址,既可以指片内RAM的低128个单元地址,也可以指特殊功能寄存器的地址或符号名称,因此,direct表示直接寻址方式。#data指令中所含的8位立即数。#data16 指令中所含的16位立即数。,http:/,addr16 16位目的地址,只限于在LCALL和LJMP指令中 使用。addr11 11位目的地址,只限于在ACALL和AJMP指令中使用。rel 相对转移指令中的偏移量,为8位带符号数。为SJMP和所有条件转移指令所用。转移范围为相对于下一条指令笫一字节
14、地址的-128127。DPTR数据指针。bit 片内 RAM(包括部分特殊功能寄存器)中的直接寻址位。,http:/,A累加器。BB寄存器。C 进位标志位,是布尔处理机中的累加器,称之为累加位。间址寄存器的前缀标志。/位地址的前缀标志,表示对该位操作数取反。()某寄存器或某单元的内容。()由寻址的单元中的内容。箭头左边的内容被箭头右边的内容所取代。,http:/,(1)标号:用户定义的符号地址。(2)操作码:该字段必不可少,表示指令进行何种操作,即操作性质。(3)操作数:该字段可能有,可能没有。(4)注释:该字段不是汇编语言的功能部分,只增加程序的可读性。注释前要加“;”,http:/,1、内
15、部数据传送指令,(1)以累加器A为目的地址的指令 指令 操作 MOV A,Rn(A)(Rn)MOV A,direct(A)(direct)MOV A,Ri(A)(Ri)MOV A,#data(A)data 这组指令的功能是将源操作数送入累加器A中。源操作数的寻址方式分别为寄存器寻址、直接寻址、寄存器间接寻址和立即寻址方式,http:/,(2)以Rn为目的地址的指令 指令 操作 MOV Rn,A(Rn)(A)MOV Rn,direct(Rn)(direct)MOV Rn,#data(Rn)data 这组指令的功能是将源操作数送入当前工作寄存器区R0R7中的某一寄存器中。源操作数的寻址方式分别为隐
16、含寻址、直接寻址和立即寻址方式。,http:/,(3)以直接地址为目的地址的指令 指令 操作 MOV direct,A(direct)(A)MOV direct,Rn(direct)(Rn)MOV direct,Ri(direct)(Ri)MOV direct1,direct2(direct1)(direct2)MOV direct,#data(direct)data 这组指令的功能是将源操作数送入由直接地址指出的存储单元中。源操作数的寻址方式分别为隐含寻址、寄存器寻址、寄存器间接寻址、直接寻址和立即寻址方式。,http:/,(4)以寄存器间接地址为目的地址的指令 MOV Ri,A(Ri)(A
17、)MOV Ri,direct(Ri)(direct)MOV Ri,#data(Ri)data 这组指令的功能是将源操作数送入R0或R1间址的片内RAM存储单元中。源操作数的寻址方式分别为隐含寻址、直接寻址和立即寻址方式。,http:/,注意:目操可以是A、direct、Rn、Ri中的任一个,源操可以是A、direct、Rn、Ri、#data中的任一个。#data不能作目操。目操和源操不能同时出现Rn、Ri。目操和源操不能同时为A。目操和源操可以同时为direct类型。目操和源操数据长度应保持一致。,http:/,2.外部数据传送指令,(1)16位数据传送指令 指令 操作 MOV DPTR,#d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学课件 大学 课件 MCS51 单片机 指令系统 P74
链接地址:https://www.31ppt.com/p-5925295.html