第3章80C5的指令系统.ppt
《第3章80C5的指令系统.ppt》由会员分享,可在线阅读,更多相关《第3章80C5的指令系统.ppt(81页珍藏版)》请在三一文库上搜索。
1、2019/4/16,1,第3章 80C51的指令系统,指令格式及常用符号,3.1,80C51的寻址方式,3.2,数据传送指令 (29条),3.3,算数运算指令 (24条),3.4,逻辑运算与循环类指令(24条),3.5,控制转移类指令 (17条),3.6,位操作类指令 (17条),3.7,2019/4/16,2, 一台计算机所能执行的全部的指令集合,指令系统概述,指令是计算机中具有特定功能的操作命令, 程序与程序设计,按预定要求编排的指令序列称为程序。编排的过程称为程序设计, 指令系统,设计一种CPU,一般从设计指令系统开始,因而,一种机器的指令系统是机器本身固有的,决定了机器的性能,用户无法
2、改变,必须继承、学习、掌握、应用,2019/4/16,3,机器语言:,二进制代码,是机器唯一能直接识别、执行的语言。,汇编语言:,为了记忆和阅读方便,制造商对指令系统每一条指令,都给出了指令助记符。用助记符,操作数,标号编写的程序称为汇编语言源程序。,一、汇编语言,汇编语言必须翻译成机器语言才能被机器执行, 程序设计语言,汇编语言:,高级语言:,符号语言:,上页,下页,回目录,如P55,图3-1所示。全是机器码,2019/4/16,4,完成由汇编语言到机器代码的过程叫汇编,汇编的方法有两种:自动汇编、手工汇编,由机器代码到汇编语言的过程叫反汇编,汇编语言 源程序,机器语言,汇编,反汇编,交叉
3、汇编,2019/4/16,5,3.1 指令格式及常用符号,3.1.1 机器指令的字节编码形式,8位编码仅为操作码,单字节指令(49条),机器指令:计算机能直接识别和执行的指令。,如:INC A 编码为:,即:04H,8位编码含操作码和寄存器编码,如:MOV A,R0 编码为:,即:E8H,操作数仅有A,AB,Rn,DPTR,C,2019/4/16,6,双字节指令(45条),三字节指令(17条),如:MOV A,#50H 编码为:,即:74H 50H,如:MOV 20H,#50H 编码为:,即:75H 20H 50H,仅含有一个 data8,direct,rel,address11,2019/4
4、/16,7,书写格式,注意: 操作助记符不能缺少 操作数个数可为:1、2、3个 2个操作数的指令,目的操作数在左边 标号表示符号地址,一般格式 标号:操作助记符 目的操作数,源操作数;注释,3.1.2 符号指令的书写格式,2019/4/16,8,75H,81H,ROM,60H ,MAIN:MOV SP,#60H;设置堆栈指针,0030H,0031H,0032H,0033H,02H,00H,30H,0000H,LJMP MAIN,ORG 0030H,ORG 0000H,2019/4/16,9,描述符号,Rn(n=07)-当前工作寄存器组中的寄存器R0R7之一 Ri(i=0,1)-当前工作寄存器组
5、中的寄存器R0或R1 -间址寄存器前缀 #data -8位立即数/ #data16-16位立即数 direct-片内低128个RAM单元地址及SFR地址 addr11-11位目的地址 addr16-16位目的地址 rel-8位地址偏移量,范围:128127 bit-片内RAM位地址、SFR的位地址 ()-表示 地址单元或寄存器中的内容 / -位操作数的取反操作前缀,2019/4/16,10,我的信在他那!找信去!,注:找信是寻找信的“地址”!,你能说出第二封信的“地址”吗?,2019/4/16,11,用何种方式寻找指令的操作数 或指令的执行地址,1、立即寻址,寻址空间:,指令形式:,程序存储器
6、,指令的操作数存放在程序存储器中,操作数紧跟操作码后面,立即寻址:,在 哪 里 ?,用何种方式寻找,OP #data,Immediate Addressing,上页,下页,回目录,指令的寻址方式:,指令的寻址方式:,80C51的寻址方式,3.2,2019/4/16,12,MOV A,# 30H,例1:,30H,MOV DPTR,# 8000H,例2:,80H,00H,上页,下页,回目录,2019/4/16,13,2、直接寻址,寻址空间:,指令的三种形式:,直接寻址,直接寻址是访问 SFR 的唯一方法,Direct Addressing,上页,下页,回目录,00H7FH 80HFFH,CPU内部
7、,直接 间接,2019/4/16,14,“与”,上页,下页,回目录,MOV A, 30H,例1:, ,ANL 30H,#30H,例2:, ,“结果”,另一类直接寻址是转移目标地址的寻址。如:LJMP ADDR16,2019/4/16,15,3、寄存器寻址,寻址空间:,指令的三种形式:,当前选定的寄存器内容就是实际操作数,MOV A,R3,例1:,ADD A,R3,例2:,寄存器寻址:,Register Addressing,操作数隐含,操作数显然,隐含寻址,上页,下页,回目录,2019/4/16,16,4、寄存器间接寻址,寻址空间:,指令的三种形式:,寄存器间接寻址:,Register Ind
8、irect Addressing,上页,下页,回目录,2019/4/16,17,MOV R0,A,例1:,;累加器传送指令, ,MOVX A,DPTR,例2:, ,“读”,“读”,上页,下页,回目录,2019/4/16,18,5、变址寻址,基址寄存器加变址寄存器间接寻址:,以DPTR或PC作基址寄存器,A作变址寄存器 两者相加形成操作数地址。,寻址空间:,程序存储器(A+DPTR、A+PC),指令形式:,上页,下页,回目录,2019/4/16,19,MOVC A,A+DPTR,例:,设(A)= 0FH (DPTR)= 2400H, ,“读”,“读”,MOVC A,A+DPTR,上页,下页,回目
9、录,2019/4/16,20,6、相对寻址,程序存储器,寻址空间:,指令的三种形式:,相对寻址,以当前PC值为基准地址,加上指令的偏移量“rel”,结果为目标地址。rel为有符号补码数,范围:-128+127,一般为双字节或三字节指令,Relative Addressing,上页,下页,回目录,寻址指令 执行地址 目标地址,2019/4/16,21,JNZ rel,例:,; 累加器A不等零则转移 设:rel=23H,(PC)=2002H,rel=23H,修正后转移 目标地址D (PC) = 2025H,上页,下页,回目录,(PC) = 2 0 0 2 H,Rel = 2 3 H,),0,0,5
10、,2,0,2,H,D =,2019/4/16,22,(PC)=2112H,rel=F2H,修正后转移 目标地址 D (PC) = 2104H,上页,下页,回目录,例:DJNZ R7,rel ;(R7) 1不为“0”则转,(PC) = 2 1 1 2 H,Rel = F 2 H,),F,F,4,0,1,2,H,D =,2019/4/16,23,7、位寻址,寻址空间:,片内RAM的20H2FH字节地址 位地址:00H7FH 共128位,SFR中12个能被8整除的字节地址 位地址请参看P43 表2-16 共93位,Bit Addressing,以访问触发器的方式,对内部RAM、SFR 的位地址空间进
11、行访问,称为位寻址。位地址 用于布尔指令。,上页,下页,回目录,位寻址方式实质属于位的直接寻址。,2019/4/16,24,【例】位地址00H内容为1,MOV C,00H执行后,位地址PSW.7的内容为1。,2019/4/16,25,寻址方式与相应的寻址空间,小结:,2019/4/16,26,一般不影响标志寄存器PSW的状态。,传送类指令有两大类 一般传送( MOV ) 特殊传送,如: MOVC MOVX PUSH、POP XCH、XCHD SWAP,数据传送指令 (29条),3.3,2019/4/16,27,3.3.1 一般传送指令,1、16位传送(仅1条),MOV DPTR,#data16
12、; DPTR data16,例:执行指令 MOV DPTR,#1234H 后 (DPH)=12H,(DPL)=34H。,三字节指令,2019/4/16,28,3.3.1 一般传送指令,2、8位传送,通用格式: MOV , ;,功能:把源字节内容送目的字节,源字节内容不变,目的地址 源地址,数 据,MOV A,#20H,20H,A,20H,,,MOV, (1)源操作数和目的操作数不相同(direct除外) (2)Rn、Ri之间不可相互传送。 (3)立即数不可以做目的操作数,2019/4/16,29,MOV direct,direct,MOV R0,R7,MOV A,R7 MOV R0,A,MOV
13、 00H,07H,MOV R0,07H,MOV 00H,R7,MOV SP,R0,MOV 81H,00H,2B2T,3B2T,2B2T,2B2T,2019/4/16,30,3.3.2 特殊传送指令,以DPTR内容为基址,读ROM中常数表项指令MOVC(查表指令),ROM中可以存放程序代码,还经常存放常数表,MOVC A,A+DPTR;A (A)+(DPTR),以PC内容为基址,MOVC A,A+PC ;A (A)+(PC),常数表存放约束小,称为远程查表指令。占用DPTR,常数表存放约束大,称为近程查表指令。不占用DPTR,93H,机器码,1B2T,83H,机器码,1B2T,2019/4/16
14、,31,MOV DPTR,#TAB MOVC A,A+DPTR,例:在外部ROM中存放09的平方值。,根据累加器A中的数( 09 ),查找对应的平方值。,TAB: DB 0, 1, 4, 9, 16 DB 25,36,49,64,81,2019/4/16,32,09H,;设(A)= 03H,查“3”的平方,2019/4/16,33,用PC作基址寄存器,它并不指向表格首址,;是PC当前值与所查表格首址之间的距离 ;即(PC)+ #data TAB表格首址,设(A)= 03H,是表格中的第3项,;单字节指令,设指令在ROM中的地址为1FF0H,ADD A,#data,MOVC A,A+PC,000
15、FH,;#data是变址调整值,TAB:,2019/4/16,34,MOVC A,A+PC,(PC)=1FF1H,09H,;查“3”的平方,2019/4/16,35,读片外RAM,读片外RAM及接口单元数据的指令MOVX,片外RAM中经常存放数据采集与处理的中间数据,MOVX A,DPTR ;A (DPTR) MOVX A,Ri ;A (Ri),写片外RAM,MOVX DPTR,A ;(DPTR)A MOVX Ri,A ;(Ri)A,注意:用Ri寻址时,高8位地址由P2口提供,E0H,1B2T,E2HE3H,1B2T,F0H,1B2T,F2HF3H,1B2T,2019/4/16,36,【例】
16、0BF02H: MOV DPTR,#0BFF8H 0BF05H: MOVX A,DPTR 0BF06H: INC DPTR 0BF07H: MOVX DPTR,A,2019/4/16,37,2019/4/16,38,2019/4/16,39,入栈指令PUSH,堆栈操作指令PUSH和POP,堆栈是一片存储区,遵循“后进先出”原则,栈顶由SP指示。 80C51的堆栈设在片内RAM低端的128个单元,向上生长。,PUSH direct ;SP(SP)1,(SP)(direct),出栈指令POP,POP direct ;(direct)(SP),SP (SP)1,注:堆栈用于子程序调用时保护返回地址,
17、或者用于保护子程序调用之前的某些重要数据(即保护现场),还可以用于数据交换。,2019/4/16,40,利用堆栈完成40H与50H单元内容的交换的示例,MOV SP,#6FH;将堆栈设在70H以上RAM空间 PUSH 40H ;将40H单元的“23H”入栈,之后(SP)=70H PUSH 50H ;将50H单元的“45H”入栈,之后(SP)=71H POP 40H ;将SP指向的71H单元的内容弹到40H单元,之后(SP)=70H POP 50H ;将SP指向的70H单元的内容弹到50H单元,之后(SP)=6FH,(a)初始状态 (b)2条PUSH指令执行后 (c)2条POP指令执行后,201
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 80 C5 指令系统
链接地址:https://www.31doc.com/p-2601949.html