单片机原理及应用——C语言程序设计与实现 第2版 教学课件 ppt 作者 王长涛 韩忠华 夏兴华 第二章

上传人:E**** 文档编号:89355665 上传时间:2019-05-23 格式:PPT 页数:23 大小:721.50KB
返回 下载 相关 举报
单片机原理及应用——C语言程序设计与实现 第2版  教学课件 ppt 作者  王长涛 韩忠华 夏兴华 第二章_第1页
第1页 / 共23页
单片机原理及应用——C语言程序设计与实现 第2版  教学课件 ppt 作者  王长涛 韩忠华 夏兴华 第二章_第2页
第2页 / 共23页
单片机原理及应用——C语言程序设计与实现 第2版  教学课件 ppt 作者  王长涛 韩忠华 夏兴华 第二章_第3页
第3页 / 共23页
单片机原理及应用——C语言程序设计与实现 第2版  教学课件 ppt 作者  王长涛 韩忠华 夏兴华 第二章_第4页
第4页 / 共23页
单片机原理及应用——C语言程序设计与实现 第2版  教学课件 ppt 作者  王长涛 韩忠华 夏兴华 第二章_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《单片机原理及应用——C语言程序设计与实现 第2版 教学课件 ppt 作者 王长涛 韩忠华 夏兴华 第二章》由会员分享,可在线阅读,更多相关《单片机原理及应用——C语言程序设计与实现 第2版 教学课件 ppt 作者 王长涛 韩忠华 夏兴华 第二章(23页珍藏版)》请在金锄头文库上搜索。

1、第2章 51单片机指令系统及汇编语言程序设计基础,2.1 51单片机指令格式,2.2 51单片机寻址方式,2.3 51单片机指令,2.4 汇编语言程序设计基础,计算机的指令系统是一套控制计算机执行操作的编码,通常称为机器语言,机器语言指令是计算机唯一能识别和执行的指令。为了容易理解,便于记忆和使用,通常使用汇编语言指令和高级语言来描述计算机的指令系统。汇编语言指令需要通过汇编程序或人工方法汇编成机器能识别和执行的机器语言指令;高级语言需要经过编译或解释成机器能识别和执行的机器语言指令。,第2章51单片机指令系统及汇编语言程序设计基础,2.1 51单片机指令格式,2.1.1 指令格式 在最原始的

2、计算机中,操作数部分包括四部分地址,故称为四地址计算机,这种计算机的指令格式如下:,51单片机的指令系统采用了地址压缩技术,将操作数字段的四个地址压缩到一个地址中,因而称为单地址指令,其具体的指令格式如下:,2.1.2 指令的分类,51单片机的指令系统有42种助记符,代表了33种操作功能(有的功能可以有几种助记符,如数据传送的助记符有MOV、MOVC、MOVX)。指令功能助记符与操作数各种可能的寻址方式相结合,共构成111条指令。 (1)根据指令在程序存储器中所占的字节数,指令系统分为如下3类: 单字节指令(49条); 双字节指令(45条); 三字节指令(17条)。 (2)根据指令执行的时间,

3、指令系统分为如下3类: 1个机器周期(12个时钟振荡周期)指令(64条); 2个机器周期指令(45条); 4个机器周期指令。 (3)根据指令的功能,指令系统分为如下5类: 数据传送类(29条); 算术运算类(24条); 逻辑操作类(24条); 控制转移类(17条); 位操作类(17条)。,2.2 51单片机寻址方式,2.3 51单片机指令,2.3.1 数据传送类指令,2.3.2 算术运算类指令,2.3.3 逻辑运算及移位指令,2.3.4 控制转移类指令,2.3.5 位操作类指令,2.3.6 伪指令,1ORG定位伪指令 ORG伪指令总是出现在每段源程序或数据块的开始。它指明此语句后面的程序或数据

4、块的起始地址。,2DB定义字节伪指令 其一般格式为: 标号: DB 字节常数或字符或表达式 其中,标号区段可有可无,字节常数或字符是指一个字节数据或用逗号分开的字节串,或用引号括起来的ASCII码字符串。此伪指令的功能是把字节常数或字节串存入内存连续单元中,3DW定义伪指令 其一般格式为: 标号: DW 字或字串 DW伪指令的功能与DB相似,其区别在于DB是定义一个字节,而DW是定义一个字(规定为两个字节,即16位二进制数),因此DW主要用来定义地址。存放时一个字需要两个单元。,4. EQU赋值伪指令 其一般格式为: 标号: EQU 操作数 EQU伪指令的功能是将操作数赋予标号,使两边的两个量

5、等值。,5DS定义存储空间伪指令 其一般格式为: DS 表达式 在汇编时,从指定地址开始保留“表达式”的值所指定的存储单元。,6BIT定义位地址符号伪指令 其一般格式为: 字符名称 BIT 位地址 这里的“字符名称”与标号不同(其后没有“:”),但是必需的,其功能是将“位地址”赋值给“字符名称”。,7END汇编结束伪指令 其一般格式为: 标号: END 地址或标号 其中,标号以及操作数字段的地址或标号不是必要的。 END伪指令是一个结束标志,用来指示汇编语言源程序段在此结束。因此,在一个源程序中只允许出现一个END语句,并且必须放在整个程序(包括伪指令)的最后面,是源程序模块的最后一个语句。如

6、果END语句出现在中间,则汇编程序将不汇编END后面的语句。,2.4 汇编语言程序设计基础,2.4.1 汇编语言程序的格式,汇编语言分为3个部分,即标号、操作码、操作数。每个部分之间要用分隔符隔开,分隔符可以采用空格、冒号、分号,,2.4.2 汇编语言程序的基本结构,汇编语言程序的基本结构形式有顺序结构、分支结构、循环结构等。,2.4.3 顺序结构程序设计,顺序结构程序是一种最简单、最基本的程序,又称为简单程序,是按照逻辑操作顺序从某一条指令开始依次顺序执行。顺序结构程序中没有分支、循环或子程序,可以完成一定的功能,它是构成复杂程序的基础。,2.4.4 分支程序设计,分支结构的程序是根据某种条

7、件判断结果决定程序的流向。分支程序的特点是程序执行流程中包含条件判断,符合条件要求和不符合条件要求的有不同的处理路径。 分支结构程序是通过执行条件转移指令或散转指令来实现。51指令系统中,除了零条件转移指令、比较转移指令外,还有一些位操作转移指令,将这些指令结合在一起使用可以完成多种条件判断,如正负判断、溢出判断、大小判断等。 分支结构程序一般分为简单分支程序和散转程序两类。,2.4.4 分支程序设计,分支结构的程序是根据某种条件判断结果决定程序的流向。分支程序的特点是程序执行流程中包含条件判断,符合条件要求和不符合条件要求的有不同的处理路径。 分支结构程序是通过执行条件转移指令或散转指令来实

8、现。51指令系统中,除了零条件转移指令、比较转移指令外,还有一些位操作转移指令,将这些指令结合在一起使用可以完成多种条件判断,如正负判断、溢出判断、大小判断等。 分支结构程序一般分为简单分支程序和散转程序两类。,本章分4个部分介绍了51单片机指令系统和汇编语言程序设计:首先介绍了51单片机的指令格式,包括指令格式、指令的字节数以及对指令进行了分类;其次,详细地介绍了51单片机的寻址方式,包括立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址的概念,并介绍了不同寻址方式的特点和使用方法;在第3部分中,重点介绍了51单片机的指令,并将111条指令进行了系统分类,分别介绍了数

9、据传送指令、算术运算指令、逻辑运算指令、控制转移指令、位操作指令和伪指令;最后一部分介绍了汇编语言程序设计基础,详细介绍了顺序结构程序、分支程序、循环程序、查表程序和子程序的设计原则,并列举了大量实例进行说明。,151单片机指令系统中有哪些寻址方式?其相应的寻址空间是多少? 2什么是源操作数和目的操作数?通常在指令中如何加以区分? 3试编程将片内RAM20H单元中的内容与R1中的内容进行交换。 4判断下列说法是否正确? (1)立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。 (2)指令周期是执行一条指令的时间。 (3)指令中直接给出的操作数称为直接寻址。 5在基址加变址寻址方式

10、中,以 作为变址寄存器,以 或 作为基址寄存器。,6判断以下指令的正误: (1)MOV 28H,R2 (2)DEC DPTR (3)INC DPTR (4)CLR R0 (5)CPL R5 (6)MOV R0,R1 (7)PHSH DPTR (8)MOV F0,C (9)MOV F0,ACC.3 (10)MOVX A,R1 (11)MOV C,30H (12)RLC R0 7执行如下程序后累加器A和程序状态字PSW中的内容是什么? (1) MOV A,#0FEH ADD A,#0FEH (2) MOV A,#92H ADD A,#0A4H 8下列程序段的功能是什么? PUSH ACC PUSH

11、 B POP ACC POP B,9已知程序执行前有PC=2000H,A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后,A= ;SP= ;(51H)= ;(52H)= ;PC 。 POP DPH POP DPL MOV DPTR,#4000H RL A MOV B,A MOVC A,A+DPTR PUSH ACC MOV A,B INC A MOVC A,A+DPTR PUSH ACC RET ORG 4000H DB 10H,80H,30H,50H,30H,50H,10简述汇编语言程序的基本结构。 11下列程序段经过汇编后,从1000H开始的各有关存储单元的内

12、容将是什么? ORG 1000H TAB1 EQU 1234H TAB2 EQU 3000H DB “MAIN“ DW TAB1,TAB2,70H 12已知程序执行前有PC=2000H,A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后,A= ;SP= ;(41H)= ;(42H)= ;PC= 。 POP DPH POP DPL MOV DPTR,#3000H RL A MOV B,A MOVC A,A+DPTR PUSH ACC MOV A,B INC A MOVC A,A+DPTR PUSH ACC RET ORG 3000H DB 10H,80H,30H,80H,50H,80H 13若SP = 60H,标号LABEL所在的地址为3456H。LCALL指令的地址为2000H,执行如下指令后,堆栈指针SP和堆栈内容发生了什么变化?PC的值等于什么?如果将指令LCALL直接换成ACALL是否可以?如果换成ACALL指令,可调用的地址范围是什么? 2000H LCALL LABEL,

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

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

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