第3章指令系统.ppt
《第3章指令系统.ppt》由会员分享,可在线阅读,更多相关《第3章指令系统.ppt(66页珍藏版)》请在三一办公上搜索。
1、3.1 指令系统基本概念,标号:操作码 操作数;注释,3.1.1 指令基本格式,第3章 80C51系列单片机指令系统和汇编程序设计,标号:指令的符号地址。,用于一段功能程序的识别标记或控制转移地址。,指令前的标号代表该指令的地址,是用符号表示的地址。,一般用英文字母和数字组成。,标号必须用冒号“:”与操作码分隔。,操作码:表示指令的操作功能。,操作码用助记符表示,它代表了指令的操作功能。,操作码是指令的必需部分,是指令的核心,不可缺少。,操作数:参加操作的数据或数据地址。,操作数与操作码之间用空格分隔,操作数与操作数之间用逗号“,”分隔。,操作数可以是数据,也可以是数据的地址、数据地址的地址或
2、操作数的其他信息。,操作数可分为目的操作数和源操作数。,操作数可用二进制数、十进制数或十六进制数表示。,操作数的个数可以是03个。,注释:指令功能说明。,注释属于非必需项,是为便于阅读,对指令功能作的说明和注解。,注释必须以“;”开始。,3.1.2 指令分类,按指令功能分类:可分为数据传送类、算术运算类、逻辑运算类、位操作类和 控制转移类 等5大类指令。,80C51共有111条指令。,按指令长度分类:可分为1字节、2字节和3字节指令。,按指令执行时间分类:可分为1机周、2机周和4机周指令。,3.1.3 指令系统中的常用符号,bit:位地址。代表片内RAM中的可寻址位00H7FH及SFR中的可寻
3、址位。,#:立即数符。#data:8位立即数;#data16:16位立即数。,direct:8位直接地址代表内RAM 00H7FH或SFR的80HFFH。,:间接寻址符。如Ri,DPTR,A+PC,A+DPTR。,addr11:11位目的地址。addr16:16位目的地址。,rel:带符号的8位偏移地址。用于转移指令,其范围是相对于下一条指令第1字节地址的-128+127个字节。,3.2 MCS-51系列单片机的寻址方式,【例】,寻址就是寻找操作数的地址。,立即寻址,立即寻址是直接给出操作数,操作数前有立即数符“#”。,MOV A,#30H;将立即数30H传送至A中MOV DPTR,#5678
4、H;将立即数5678H传送至DPTR,直接寻址,MOV A,3AH;将内RAM 3AH单元中的数据传送至A中MOV A,P0;将特殊功能寄存器P0口中的数据传送至A中说明:3AH和P0是以direct形式出现的直接地址,直接寻址是给出操作数的直接地址。直接寻址范围为内RAM 128B和特殊功能寄存器。,【例】,寄存器寻址,MOV A,R0;将R0中的数据传送至A中,寄存器寻址的操作数在规定的寄存器中。规定的寄存器有:工作寄存器R0R7 累加器A 数据指针DPTR这些被寻址寄存器中的内容就是操作数,【例】,寄存器间接寻址,MOV A,R0;将以R0中内容为地址的存储单元中的数据 传送至A中MOV
5、X A,DPTR;将外RAM DPTR所指存储单元中的数据 传送至A中,间接寻址是根据操作数地址的地址寻找操作数。间接寻址用间址符“”作为前缀。,【例】,变址寻址,MOVC A,A+DPTR,【例】,在变址寻址中,操作数地址基址变址用于读ROM数据操作。,;将A的内容与DPTR内容相加,得到一个新地址,从该地址 ROM中读取数据送入A中。,MOVC A,A+PC,相对寻址一般用于相对转移指令,转移目的地址当前PC值相对偏移量rel。,;将位地址07H(字节地址20H中最 高位)中的数据传送至进位位Cy。,相对寻址,6 位寻址,位寻址是对内RAM和特殊功能寄存器中的可寻址位进行操作的寻址方式。,
6、【例】,MOV C,07H,3.3 MCS-51系列单片机的指令系统,MOV A,Rn;RnA,n=07 MOV A,Ri;(Ri)A,i=0、1 MOV A,direct;(direct)A MOV A,#data;dataA,3.3.1 数据传送类指令,内RAM数据传送指令,以累加器A为目的字节的传送指令(4条),MOV Rn,A;ARn,n=07 MOV Rn,direct;(direct)Rn,n=07 MOV Rn,#data;dataRn,n=07,以工作寄存器Rn为目的字节 的传送指令(3条),以直接地址为目的字节的传送指令(5条),MOV direct,A;A(direct)M
7、OV direct,Rn;Rn(direct),n=07 MOV direct,Ri;(Ri)(direct),i=0、1 MOV direct1,direct2;(direct2)(direct1)MOV direct,#data;data(direct),以寄存器间址为目的字节的传送指令(3条),MOV Ri,A;A(Ri),i=0、1 MOV Ri,direct;(direct)(Ri),i=0、1 MOV Ri,#data;data(Ri),i=0、1,2、16位数据传送指令,MOV DPTR,#data16;data16DPTR,【例】,MOV DPTR,#1234H;DPTR=12
8、34H该指令也可以用两条8位数据传送指令实现:MOV DPH,#12H;DPH=12HMOV DPL,#34H;DPL=34H,DPTR=1234H,MOVX A,Ri;(Ri)A,i=0、1 MOVX A,DPTR;(DPTR)A MOVX Ri,A;A(Ri),i=0、1 MOVX DATR,A;A(DATR),外RAM传送指令(4条),读ROM指令(2条),内RAM(包括特殊功能寄存器):用MOV指令传送;外RAM:用MOVX指令传送;ROM:用MOVC指令传送。,MOVC A,A+DPTR;(A+DPTR)A MOVC A,A+PC;PC+1PC,(A+PC)A,三个不同的存储空间用三
9、种不同的指令传送:,其中“MOVC A,A+DPTR”指令以DPTR作为基址,加上累加器A的内容后,所得的16位二进制数作为待读出的程序存储器单元地址,并将该地址单元的内容传送到累加器A中。这条指令主要用于查表,例如在程序存储器中,依次存放0F的七段数码显示器的字模码3F、06、5B、4F、66、6D、7D、07、7F、6F、77、7C、39、5E、79、71,则当需要在P1口输出某一数码,如“3”时,可通过如下指令实现:,查 表 指 令,MOV DPTR,#2000H;假设字模存放在2000H开始的程序存储器中,通过该指令将字模首地址;传送到DPTR寄存器中 MOV A,#03H;把待显示的
10、数码传送到累加器A中 MOVC A,A+DPTR;2000H+03H,即2003H单元的内容(4F)读 到累加器A中 MOV P1,A;将数码“3”对应的字模码“4F”输出到P1口 ORG2000H DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,从程序存储器中读出某一字节时,也可以使用PC内容作为基址,通过“MOVC A,A+PC”取出,但使用这条指令读取ROM中表格数据时,表格数据项必须位于该指令后,灵活性差,例如:MOV A,#03H;把待显示的数码传送到累加器A中MOVC A,A+PC;PC+03H单
11、元内容(4F)读到累加器A中DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H 由于程序存储器只能读出,不能写入,因此,也就没有写程序存储器指令。,PUSH direct;SP+1SP,(direct)(SP)POP direct;(SP)(direct),SP-1SP,堆栈操作指令(2条),PUSH为入栈指令例PUSH 30H;(30H)=2BH,具体操作是:,先将堆栈指针SP的内容(0FH)加1,指向堆栈顶的一个空单元,此时SP=10H;然后将指令指定的直接寻址单元30H中的数据(2BH)送到该空单元中。,P
12、OP为出栈指令例 POP 40H;(40H)=4CH,具体操作是:,先将SP所指单元0FH(栈顶地址)中的数据(4CH)弹出,送到指定的内RAM单元40H,(40H)=4CH;然后SP-1SP,SP=0EH,SP仍指向栈顶地址。,交换指令(5条),XCH A,Rn;ARn,n=07 XCH A,Ri;A(Ri),i=0、1 XCH A,direct;A(direct),SWAP A;A74A30,字节交换指令,半字节交换指令,XCHD A,Ri;A30(Ri)30 高4位不变。i=0、1,累加器高低四位互换,3.3.2 算术运算类指令,ADD A,Rn;A+RnA(n=07)有进位,Cy=1;
13、无进位,Cy=0 ADD A,Ri;A+(Ri)A(i=0、1)有进位,Cy=1;无进位,Cy=0 ADD A,direct;A+(direct)A 有进位,Cy=1;无进位,Cy=0 ADD A,#data;A+dataA 有进位,Cy=1;无进位,Cy=0,加法指令,不带Cy加法指令(4条),带Cy加法指令(4条),ADDC A,Rn;A+Rn+CyA(n=07)有进位,Cy=1;无进位,Cy=0 ADDC A,Ri;A+(Ri)+CyA(i=0、1)有进位,Cy=1;无进位,Cy=0 ADDC A,direct;A+(direct)+CyA 有进位,Cy=1;无进位,Cy=0 ADDC
14、A,#data;A+data+CyA 有进位,Cy=1;无进位,Cy=0,减法指令(4条),SUBB A,Rn;A-Rn-CyA,(n=07),有借位,Cy=1;无借位,Cy=0 SUBB A,Ri;A-(Ri)-CyA,(n=01),有借位,Cy=1;无借位,Cy=0 SUBB A,direct;A-direct-CyA,有借位,Cy=1;无借位,Cy=0 SUBB A,#data;A-data-CyA,有借位,Cy=1;无借位,Cy=0,INC A;A+1A INC Rn;Rn+1Rn,n=07 INC Ri;(Ri)+1(Ri),i=0、1 INC direct;(direct)+1(d
15、irect)INC DPTR;DPTR+1DPTR,加1减1指令,加1指令(5条),减1指令(4条),DEC A;A-1A DEC Rn;Rn-1Rn,n=07 DEC Ri;(Ri)-1(Ri),i=0、1 DEC direct;(direct)-1(direct),加1减1指令涉及 A时,会影响P,但不影响其他标志位。,DIV AB;(AB)商A,余数B Cy=0,OV=0,BCD码调整指令,DA A,功能:对加法运算结果进行BCD码调整。,乘除法指令,乘法指令(1条),MUL AB;ABBA,除法指令(1条),3.3.3 逻辑运算及移位指令,ANL A,Rn;ARnA ANL A,Ri;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统
链接地址:https://www.31ppt.com/p-6356714.html