单片机原理与应用 教学课件 PPT 作者 张东亮 第3章8051单片机指令系统

上传人:E**** 文档编号:89367304 上传时间:2019-05-24 格式:PPT 页数:71 大小:502.50KB
返回 下载 相关 举报
单片机原理与应用 教学课件 PPT 作者 张东亮 第3章8051单片机指令系统_第1页
第1页 / 共71页
单片机原理与应用 教学课件 PPT 作者 张东亮 第3章8051单片机指令系统_第2页
第2页 / 共71页
单片机原理与应用 教学课件 PPT 作者 张东亮 第3章8051单片机指令系统_第3页
第3页 / 共71页
单片机原理与应用 教学课件 PPT 作者 张东亮 第3章8051单片机指令系统_第4页
第4页 / 共71页
单片机原理与应用 教学课件 PPT 作者 张东亮 第3章8051单片机指令系统_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《单片机原理与应用 教学课件 PPT 作者 张东亮 第3章8051单片机指令系统》由会员分享,可在线阅读,更多相关《单片机原理与应用 教学课件 PPT 作者 张东亮 第3章8051单片机指令系统(71页珍藏版)》请在金锄头文库上搜索。

1、第3章 8051单片机指令系统,3.1 指令系统概述 3.2 寻址方式 3.3 数据传送类指令 3.4 算术运算类指令 3.5 逻辑运算类指令 3.6 控制转移类指令 3.7 布尔运算类指令,指令和指令系统 计算机通过执行程序完成人们指定的任务,程序由一条一条指令构成,能为CPU识别并执行的指令的集合就是该CPU的指令系统。 助记符指令格式 8051单片机汇编语言指令格式: 操作码 目的操作数,源操作数 操作码指明该指令完成什么操作; 操作数是指明该指令的操作对象。目的操作数是存放结果的。,3.1 指令系统概述,双字节指令:,三字节指令:,指令按字节长度可以分为三种:,指令的格式:,例如: M

2、OV A,R0 机器码:E8H,例如:MOV A,30H 机器码:E530H,例如:MOV DPTR,#2010H 机器码:902010H,指令分类 数据传送指令(29条) 算术运算指令(24条) 逻辑运算和移位指令(24条) 位操作指令 (17条) 控制转移指令(17条) 共111条,指令中操作数提供的方式称为寻址方式。,3.2 寻址方式,指令符号约定,8051的寻址方式(8种) 立即寻址 寄存器寻址 直接寻址 间接寻址 变址寻址 相对寻址 位寻址 隐含寻址,1.立即寻址 指令中直接给出操作数的寻址方式。在指令系统中,立即数用一个前面加 “#”号的8位数(#data,如#52H)或16位数(

3、#data16,如#2052H)表示。立即寻址中的数,称为立即数。 例如指令:MOV A,#52H; 对比MOV A,52H MOV DPTR,#2052H,2.寄存器寻址 操作数存放在寄存器中。 寻址对象:A,B,DPTR,R0R7 。 B 仅在乘除法指令中为寄存器寻址,在其他指令中为直接寻址。 A 可以寄存器寻址又可以直接寻址,直接寻址时写作ACC。,例如:MOV A,R0 ;R0A,A、R0均为寄 存器寻址,机器码E8 MUL AB ;ABBA,A、B为寄 存器寻址,机器码A4,3.直接寻址: 操作数的地址直接出现在指令中。 寻址对象:内部数据存贮器:使用它的地址 特殊功能寄存器:既可使

4、用它的地址,也可以 直接使用寄存器名。,例:MOV A,40H ; A=56H 机器码 E540H,MOV P0,#45H ;45HP0, P0为直接寻址的 SFR,其地址为 80H, 机器码为758045H,MOV 40H,41H ; 机器码为854140H 内部RAM (41H)(40H) (40H)=(41H)=78H,4.寄存器间接寻址 操作数存放在以寄存器内容(R0, R1, DPTR, SP)为地址的单元中。 例如: MOV R0,#20H MOV R0,A ;A(20H) 地址的内部RAM MOVX A,R1 ;外部RAM(地址为P2 R1 ) 的 内容A MOVX DPTR,A

5、 ;A以DPTR内容为地址的 外部RAM,5.变址寻址 以DPTR或PC寄存器内容为基地址,与A的内容相加形成操作数的地址。其中累加器A内容可变。 例如: MOVC A, A+DPTR ; A(A+DPTR) MOVC A, A+PC ;A(A+PC) 设 A=22H, DPTR=63A0H, (63C2H)=38H, 则结果 A=22H,例如:SJMP 38H ;PC=PC+2+38H=186CH,6.相对寻址 相对寻址是将程序计数器PC的当前值与指令第二字节给出的补码偏移量(-128 +127)相加,从而形成转移的目标地址。,7.位寻址 对片内RAM中20H2FH中的128个位地址及SFR

6、中的可位寻址的位地址寻址。,例如: MOV C,20H;20H位即24H.0的内容送CY标志 位,C称为位累加器。 MOV A,20H ;字节寻址,将内部 RAM中20H单,以上两条指令均为直接寻址,究竟是位寻址还是字节寻址,根据两操作数类型一致的原则,由另一个操作数决定。 例如, MOV ACC.7, C,位寻址地址表,3D,3C,3B,3F,3E,3A,39,38,27H,8.隐含寻址 执行指令的所有信息均在操作码中,此时操作数是某个寄存器的内容,而寄存器名隐含在操作码中。隐含寻址方式的指令一般为单字节指令。,例如:指令助记符 CLR A ; 功能是将累加器A清零。机器指令码为E4H。,操

7、作数寻址方式及有关寻址空间表,传送类指令占有较大的比重。数据传送(Data Transfer )是进行数据处理的最基本的操作,这类指令一般不影响标志寄存器PSW的状态。,传送类指令可以分成两大类。一是采用MOV操作符,称为一般传送指令;二是采用非MOV操作符,称为特殊传送指令,如:MOVC、MOVX、PUSH、POP、XCH、XCHD及SWAP。,3.3 数据传送类指令,CY :进位标志。反映最高位的进位借位,加法为进位、减法为借位。CY又作为位操作累加器C。 CY=1,有进位,否则无进位。 AC :辅助进位标志。反映高半字节与低半字节之间的进/借位,AC=1有进位; AC=0无进位 。AC主

8、要用于BCD码调整。 FO:用户标志位。可由用户设定其含义。 RS1、RS0:工作寄存器组选择位。(Register Selection) 取00,01,10,11分别表示03组(区:bank)工作寄存器 OV:溢出标志。反映补码运算的运算结果有无溢出。 有溢出, OV=1,无溢出OV=0。 -:保留位。 P:奇偶标志(Parity)。运算结果寄存器A中有奇数个“1”,P=1;有偶数个“1”,P=0。,程序状态字PSW,这类指令有29条。普通传送指令可以分为片内RAM数据传送、片外RAM数据传送、程序存储器数据传送等类型。,3.3.1内部RAM、SFR数据传送指令,以A为目的操作数 MOV A

9、,Rn ;A Rn MOV A,direct ;A(direct) MOV A,Ri ;A(Ri) MOV A,#data ;A #data,以Rn为目的操作数 MOV Rn,A ;Rn A MOV Rn,direct ;Rn (direct) MOV Rn,#data ;Rn #data,以间接地址为目的操作数 MOV Ri,A ;(Ri) A MOV Ri,direct ;(Ri) (direct) MOV Ri,#data ;(Ri) #data,直接地址为目的操作数 MOV direct ,A ;( direct ) A MOV direct1 ,direct2 ; (direct1)

10、(direct2) MOV direct ,#data ;( direct ) #data MOV direct, Ri ; ( direct ) (Ri),例如, MOV P1, R2 ;R2内容送P1口 MOV 90H, R2 ;R2内容送P1口, 90H为P1地址 MOV R5,60H ;R5 (60H),MOV Ri,A direct #data,MOV direct ,A Rn Ri #data direct,8051单片机片内数据传送图,16位立即数传送指令: MOV DPTR, #data16 这条指令的功能是将源操作数data16(通常是地址常数)送入目的操作数DPTR中。源操

11、作数的寻址方式为立即寻址。,例如: 执行指令 MOV DPTR,#1234H 后, DPTR=#1234 H,DPH=12H,DPL=34H。,A,外部数据 存储器,Ri , A DPTR , A A , Ri A , DPTR,MOVX,3.3.2 外部RAM和A之间的数据传送,MOVX,MOVX的“X”表示外部(EXternal)RAM的意思。Ri是8位地址指针,寻址范围为256字节。DPTR是16位地址指针,寻址范围为64K字节。由于片外I/O与片外RAM统一编址,所以片外I/O的读写也用MOVX指令。用到的控制信号为/RD 或/WR。,MOVX A,DPTR ;A (DPTR) MOV

12、X DPTR,A ;(DPTR) A MOVX A,Ri ;A (P2Ri) MOVX Ri,A ;(P2Ri) A,3.3.3 程序存储器的数据传送,A,程序 存储器,MOVC,A , A+PC A , A+DPTR,MOVC,MOVC为查表指令,用于读取程序存储器中的常数(Constant) 。,MOVC A,A+DPTR ;A (A+DPTR) MOVC A,A+PC ;A (A+PC),例如,用查表的方法,将A中的16进制数(0F)转换为ASCII码,并送回A。,指令地址 源程序 ORG 4000H ;程序起始地址 4000H CHTAB: INC A ;A=09, AF 4001H

13、MOVC A,A+PC ;查表A=3039, 4146 ;MOV DPTR,#TAB, MOVC A, A+DPTR 4002H RET ;子程序结束 4003H TAB: DB 30H,31H, 32H, 33H, 39H ; 09 的ASCII码 400DH DB 41H,, 46H ; AF的ASCII码,若A=3, 则查表得3的ASCII码A=33H,3.3.4 堆栈操作指令,子程序与中断服务子程序调用、现场保护要用到堆栈。 堆栈是在内部RAM中按“后进先出”的规则组织的一片存储区。此区的一端固定,称为栈底;另一端是活动的,称为栈顶。栈顶的位置由栈指针SP指示(即SP的内容是栈顶的地址

14、)。 在8051中,堆栈的生长方向是向上的(地址增大)。,系统复位时,SP的内容为07H。通常用户应在系统初始化时对SP重新设置。SP的值越小,堆栈的深度越深。 PUSH direct ;SP SP 1,(SP)(direct) POP direct ;(direct)(SP),SP SP1,例如:MOV SP,#3FH ;SP=#3FH MOV A, #51H ;A=51H PUSH ACC ;压入堆栈 SP=40H, (40H)=51H POP 28H ;弹出堆栈 (28H)=51H, SP=3FH,例如: MOV SP,#30H ; SP=30H PUSH 50H ; SPSP+1=31

15、H, (31H) (50H) POP 40H ; (40H)(31H), SPSP-1=30H,堆栈操作示例,3.3.5 数据交换指令,例如:若R0=80H,A=20H。执行指令 XCH A,R0 后,A=80H,R0=20H。,对于单一的MOV类指令,传送通常是单向的,即数据是从一处(源)到另一处(目的)的拷贝。而交换类指令完成的传送是双向的,是两字节间或两半字节间的双向交换 。,1字节交换,XCH A,Rn ; A Rn n=07 direct ; A (direct) Ri ; A (Ri) i=0,1,XCH A,Rn ;A Rn, n=07 exchange XCH A ,direct ;A(direct) XCH A,Ri ;A(Ri), i=0,1,2半字节交换,XCHD指令的功能是间址操作数的低半字节与A的低半字节内容互换(Exchange decimal)。 SWAP指令的功能是累加器 的高低4位互换。,例如:若R030H,(30H)67H, A20H。执行指令 XCHD A,R0 指令后,A27H,(30H)60H。 若A30H,执行指令SWAP A后,A03H。,XCHD A,Ri ;Decimal, A03(Ri)03 SWAP A ;A03A47,数据传送指令(29条),算术运算指令可以完成加、减、乘、除及加1和减

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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