单片机3-1幻灯片

上传人:F****n 文档编号:88147552 上传时间:2019-04-20 格式:PPT 页数:177 大小:673KB
返回 下载 相关 举报
单片机3-1幻灯片_第1页
第1页 / 共177页
单片机3-1幻灯片_第2页
第2页 / 共177页
单片机3-1幻灯片_第3页
第3页 / 共177页
单片机3-1幻灯片_第4页
第4页 / 共177页
单片机3-1幻灯片_第5页
第5页 / 共177页
点击查看更多>>
资源描述

《单片机3-1幻灯片》由会员分享,可在线阅读,更多相关《单片机3-1幻灯片(177页珍藏版)》请在金锄头文库上搜索。

1、第三章 89C51单片机指令系统,Exit,3.3 89C51单片机指令系统,3.1 汇编语言,3.2 寻址方式,3.4 程序设计举例,指令学习要点 了解指令的操作 了解指令的寻址格式 了解指令对程序状态字的影响 合理使用指令,3.1 汇编语言,3.1.1 指令和程序设计语言 3.1.2 指令格式,BACK,3.1 汇编语言,计算机指令系统是一套控制计算机操作的编码,称为机器语言。 计算机只能识别和执行机器语言的指令。 为了便于记忆和使用,通常用符号指令(即汇编语言)来描述计算机的指令系统。 不同的计算机有不同的汇编语言。,BACK,3.1.1 指令和程序设计语言,指令: 是CPU根据人的意图

2、来执行某种操作的 命令。 指令系统: 一台计算机所能执行的全部指令的集合。要使计算机按照人的思维完成一项工作,就必须让CPU按顺序执行各种操作。 即一步步地执行一条条的指令。,3.1.1 指令和程序设计语言,程序: 按人的要求编排的指令操作序列称为 程序。 程序设计: 编写程序的过程就叫作程序设计。,3.1.1 指令和程序设计语言,程序设计语言是实现人机交换信息的基本工具,分为: 机器语言 汇编语言 高级语言,3.1.1 指令和程序设计语言,机器语言: 用二进制编码表示每条指令,是计算机能 直接识别和执行的语言。 用机器语言编写的程序称为机器语言程序或指令程序(机器码程序)。 因为机器只能直接

3、识别机器码程序,所以又称它为目标程序。,3.1.1 指令和程序设计语言,机器语言举例: 要做“10+20”的加法,在MCS-51中可用机器码指令编程: 01110100 00001010 把10放到累加器A中; 00100100 00010100 A加20,结果仍放在A中 为了便于书写和记忆,可采用十六进制表示指令码:74 0AH 24 14H,3.1.1 指令和程序设计语言,机器语言特点: 用机器语言编写程序不易记忆,不易 查错,不易修改。,3.1.1 指令和程序设计语言,汇编语言: 用助记符、符号和数字等来表示指令的程序设计语言。它与机器语言指令是一一对应的。 它与机器语言指令是一一对应的

4、。,3.1.1 指令和程序设计语言,汇编语言举例: 例如:“10+20”例子可写成: 汇编语言程序 机器语言程序 MOV A,#0AH 74 0AH ADD A,#14H 24 14H,3.1.1 指令和程序设计语言,汇编语言特点: 用与CPU的硬件结构紧密相关。 不同的CPU其汇编语言是不同的。 汇编语言程序不能移植,使用不便。 用汇编语言进行程序设计必须了解所使用的CPU硬件的结的与性能,对程序设计人员有较高的要求。,3.1.1 指令和程序设计语言,高级语言: 脱离具体机器的语言。,3.1.2 指令格式,89C51汇编语言指令由 操作码助记符字段和操作数字段两部分组成。 指令格式如下: 操

5、作码 目的操作数,源操作数;注释 例如: MOV A,#00H,3.1.2 指令格式,操作码部分 规定了指令所实现的操作功能, 由2-5个英文字母表示。 例如,JB, MOV, DJNZ, LCALL等。,3.1.2 指令格式,操作数部分 指出了参与操作的数据来源和操作结果存放的目的单元。 操作数可以直接是一个数(立即数), 或者是一个数据所在的空间地址,即在执行指令时从指定的地址空间取出操作数。,3.1.2 指令格式,操作码和操作数都有对应的二进制代码,指令代码由若干字节组成。 对于不同的指令,指令的字节数不同。 89C51指令系统中,有: 1、单字节指令 、双字节指令 、三字节指令。,1、

6、单字节指令,单字节指令中的8位二进制代码 既包含操作码的信息,也包含操作数的信息。 这种指令有两种情况。 1)指令码中隐含着对某一种寄存器的操作 2)由指令中的rrr三位的不同编码指定某一 寄存器,1、单字节指令,1)指令码中隐含着对某一种寄存器的操作 INC DPTR 指令代码: A3H=,1 1 1 0 1 r r r,1、单字节指令,2)由指令中的rrr三位的不同编码指定某一 寄存器 MOV A,Rn 指令代码:,2、双字节指令,用一个字节表示操作码,另一个字节表示操作数或操作数所在的地址。 格式为:,操作码,立即数或地址,3、三字节指令,一个字节操作码,两个字节操作数。 格式为:,操作

7、码,立即数或地址,立即数或地址,3.2 寻址方式,3.2.0 寻址的概念 3.2.1 寻址方式的种类 3.2.2 寻址空间及符号注释,3.2.0 寻址的概念,寻址: 就是寻找指令中操作数或操作数所在地址。 寻址方式: 就是如何找到存放操作数的地址,把操作数提取出来的方法。 寻址方式是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一,必须十分熟悉,牢固掌握。,3.2.1 寻址方式的种类,1、寄存器寻址 2、直接寻址 3、立即数寻址 4、寄存器间接寻址 5、变址寻址 6、相对寻址 7、位寻址,1、寄存器寻址,由指令指出寄存器组R0R7中的某一个或其他寄存器(A,B,DPTR等)的内

8、容作为操作数。 例如: MOV A,R0; (R0)A MOV P1,A; (A)P1口 ADD A,R0; (A)+(R0)A,2、直接寻址,在指令中直接给出操作数所在存储单元的地址。指令中操作数部分是操作数所在地址。 例如: MOV A,3AH; (3A) A MOV A,P1; (P1口) A 或: MOV A,90H; 90H是P1口的地址,2、直接寻址,直接寻址方式可访问: 片内RAM的128个单元、所有的SFR。 对于SFR,既可以使用它们的地址,也可以使用它们的名字。 直接寻址的地址占一字节,所以,一条直接寻址方式的指令至少占内存两个单元。,2、直接寻址,注意下面指令的区别: M

9、OV A,20H MOV C,20H,3、立即数寻址,指令操作码后面紧跟的是一字节或两字节操作数,用“#”号表示,以区别直接地址。 例如: MOV A,3AH;(3AH)A MOV A,#3AH;3AHA MOV DPTR,#2000H;2000HDPTR ;(DPH)=20H ;(DPL)=00H,4、寄存器间接寻址,操作数的地址事先存放在某个寄存器中, 寄存器间接寻址是把指定寄存器的内容作为地址,由该地址所指定的单元内容作为操作数。 89C51规定R0、R1为间接寻址寄存器,它可寻址内部地址RAM低位的128B单元内容。 还可采用DPTR作为间接寻址寄存器,寻址外部数据存储器的64KB空间

10、。 例如,例如:将片内RAM 65H单元内容47H送A,可执行指令“MOV A,R0”。其中R0内容为65H。如图所示:,5、变址寻址(基址寄存器+变址寄存器间接寻址),以某个寄存器的内容为基地址,在这个基地址的基础上加上地址偏移量形成真正的操作数地址。 89C51中没有专门的变址寄存器。而是采用DPTR或PC为变址寄存器,A的内容为地址偏移量。 变址寻址只能访问程序存储器,访问范围为64KB。 例如,例如:MOVC A,A+DPTR,0302H,ROM,DPTR,A,A,02F1H,11H,1EH,+,DPTR内容与A的内容之和为程序存储器地址,程序存储器内容送A,6、相对寻址,相对寻址只出

11、现在相对转移指令中。 以当前的PC值加上指令中规定的偏移量rel而形成实际的转移地址。 当前的PC值是指执行完相对指令后的PC值; 相对转移指令操作码所在地址称为源地址; 转移后的地址称为目的地址。,6、相对寻址,目的地址=源地址+相对转移指令字节数+rel rel为补码表示的有符号数。,7、位寻址,采用位寻址方式的指令的操作数是8位二进制数中的某一位,指令中给出的是位地址。 位地址在指令中用bit表示。 例如:CLR bit; 位地址的两种表示方法: 直接使用位地址,如D3H; 直接用寄存器名字加位数,如PSW.3。,7、位寻址,位寻址空间: 片内RAM的20H-2FH的16个字节单元中的1

12、28位(位地址:00HFFH) 部分SFR(字节地址能被8整除的SFR),3.2.2 寻址空间及符号注释,1、寻址空间 2、符号注释,1、寻址空间,2、符号注释,Rn(n=0-7):当前选中的工作寄存器组R0-R7。 Ri(i=0,1):作为地址指针两个工作寄存器R0, R1。 #data:8位立即数。 #data16:16位立即数。 direct:8位片内RAM单元(包括SFR)的直接地址。 addr11:11位目的地址,用于ACALL和AJMP指 令中。 addr16:16位目的地址。用于LCALL和LJMP指 令中。,2、符号注释,rel:补码表示的8位地址偏移量。 范围:-128 +1

13、27D。 bit:片内RAM或SFR的直接寻址位地址。 :间接寄存器的符号。 /:位操作指令中对该位先取反再参与操作,不影响原值。 ():中的内容。 ():指出的地址单元中的内容。 :指令操作流程方向。,3.3 89C51单片机指令系统,3.3.0 绪 3.3.1 数据传送指令 3.3.2 算术运算指令 3.3.3 逻辑运算及移位指令 3.3.4 控制程序转移指令 3.3.5 位操作指令(布尔操作),3.3.0 绪,89C51指令系统由111条指令组成。 单字节指令49条,双字节指令45条,三字 节指令17条。 单周期指令64条,双周期45条, 只有乘、除指令为4个周期。,3.3.0 绪,指令

14、系统可分为五大类: 数据传送指令:28条 算术运算指令:24条 逻辑运算及移位指令:25条 控制转移指令:17条 位操作指令(布尔操作):17条,3.3.1 数据传送指令,1.以累加器A为目的操作数的指令 (4条,即4种寻址方式) 2.以寄存器Rn为目的操作数的指令(3条) 3.以直接地址为目的操作数的指令(5条) 4.以间接地址为目的操作数的指令(3条),最基本、最重要的操作。,3.3.1 数据传送指令,5.十六位数据传送指令(1条) 6.查表指令(2条) 7.累加器A与片外RAM传送指令(4条) 8.栈操作指令(2条) 9.交换指令(4条),1、以累加器A为目的操作数的指令 (4条,即4种

15、寻址方式),MOV A, Rn MOV A, direct MOV A, Ri MOV A, #data,例:(30H)=11H, (R1)=30H,MOV A,#30H ;(A)=30H MOV A, 30H ;(A)=11H MOV A,R1 ;(A)=11H MOV A,R1 ;(A)=30H,2 、以寄存器Rn为目的操作数的指令(3条),MOV Rn, A MOV Rn, direct MOV Rn, #data,注意: 在8051指令系统中没有 “MOV Rn,Rn”传送指令。,例如:(A)=78H,(R5)=47H, (70H)=F2H,执行指令:,MOV R5,A ; (R5)=78H MOV R5,70H ; (R5)=F2H MOV R5,#A3H; (R5)=A3H,3 、以直接地址为目的操作数的指令(5条),MOV direct, A MOV direct, Rn MOV direct, direct MOV direct, Ri MOV direct, #data,这组指令的功能是把源操作数所指定的内容送入由直接地址direct所指出的片内存储单元中。 源操作数有寄存器寻址,直接寻址,寄存器间接寻址和立即寻址等方式。,3 、以直接地址为目的操作数的指令

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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