单片机原理及应用教程 第3版 教学课件 ppt 作者 刘瑞新 3

上传人:E**** 文档编号:89504031 上传时间:2019-05-26 格式:PPT 页数:56 大小:625KB
返回 下载 相关 举报
单片机原理及应用教程 第3版 教学课件 ppt 作者 刘瑞新 3_第1页
第1页 / 共56页
单片机原理及应用教程 第3版 教学课件 ppt 作者 刘瑞新 3_第2页
第2页 / 共56页
单片机原理及应用教程 第3版 教学课件 ppt 作者 刘瑞新 3_第3页
第3页 / 共56页
单片机原理及应用教程 第3版 教学课件 ppt 作者 刘瑞新 3_第4页
第4页 / 共56页
单片机原理及应用教程 第3版 教学课件 ppt 作者 刘瑞新 3_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《单片机原理及应用教程 第3版 教学课件 ppt 作者 刘瑞新 3》由会员分享,可在线阅读,更多相关《单片机原理及应用教程 第3版 教学课件 ppt 作者 刘瑞新 3(56页珍藏版)》请在金锄头文库上搜索。

1、第3章 MCS-51指令系统及汇编语言程序设计 3.1 指令系统简介 3.2 寻址方式 3.3 指令系统 3.4 汇编语言程序设计基础 3.5 程序设计实例,指令系统是一种CPU所能直接执行的所有命令的集合,CPU的主要功能是由它的指令系统来体现的。 3.1 指令系统简介 MCS-51系列单片机指令系统共有111条指令,其中有49条单字节指令、45条双字节指令和17条三字节指令。 MCS-51的指令系统中有64条指令的执行时间为一个机器周期(12个振荡周期),45条指令的执行时间为两个机器周期。 3.1.1 指令格式 MCS-51指令系统中的每一条指令都有两级指令格式: CPU可直接识别并执行

2、的机器语言指令。 汇编语言指令(简称汇编指令)。 机器语言指令由二进制数“0”和“1”编码而成,也称目标代码,执行速度最快。,汇编语言指令是在机器语言指令的基础上,用英文单词或英文单词缩写表示机器语言指令的操作码(助记符),用符号表示操作数或操作数的地址。汇编语言指令实际上是符号化的机器语言。 MCS-51汇编语言指令格式由以下几个部分组成: 标号: 操作码 目的操作数 ,源操作数 ;注释 其中, 中的项表示为可选项。 标号:又称为指令地址符号,一般是由16个字符组成,以字母开头的字母数字串,与操作码之间用冒号分开。 操作码:是由助记符所表示的指令的操作功能。 操作数:是指参加操作的数据或数据

3、的地址。 注释:是为该条指令作的说明,以便于阅读。 操作码是指令的核心,不可缺少,其他几项根据不同指令为可选项。,3.1.2 指令分类及符号说明 1. 指令分类 MSC-51的指令系统共有111条指令,分为五大类: (1) 数据传送指令:片内RAM、片外RAM、程序存储器的传送指令,交换及堆栈指令。 (2) 算术运算类:加法、带进位加、减、乘、除、加1、减1指令。 (3) 逻辑运算类:逻辑与、或、异或、测试及移位指令。 (4) 控制程序转移类:无条件转移与调用、条件转移、空操作指令。 (5) 布尔变量操作类:分为位数据传送、位与、位或、位转移指令。 2. 符号说明 #data:表示指令中的8位

4、立即数(data),“#”表示后面的数据是立即数。 #data16:表示指令中的16位立即数。 direct:表示位内部数据存储器单元的地址。,Rn:n=07,表示当前选中的寄存器区的8个工作寄存器R0R7。 Ri:i=0或1,表示当前选中的寄存器区中的2个寄存器R0、R1,可作地址指针即间址寄存器。 Addr11:表示11位的目的地址。 Addr16:表示16位的目的地址。 rel:表示一个补码形式的位带符号的偏移量。用于SJMP和所有的条件转移指令中。 DPTR:为数据指针,可用作16位的地址寄存器。 bit:内部RAM或专用寄存器中的直接寻址位。 /:位操作数的前缀,表示对该位操作数取反

5、。 A:累加器ACC。 B:专用寄存器,用于MUL和DIV指令中。 C:进位/借位标志位,也可作为布尔处理机中的累加器。 :间址寄存器或基址寄存器的前缀。,$:当前指令的首地址。 :表示将箭头右边的内容传送至箭头的左边。 3.2 寻址方式 所谓寻址方式就是寻找或获得操作数的方式。 MCS-51指令系统的寻址方式有以下7种: 1. 立即寻址 在立即寻址方式中,操作数直接出现在指令中。操作数前加“#”号表示,也称立即数。指令的操作数可以是8位或16位数。 例如: MOV A, #26H ; A26H 指令执行结果:(A)=26H,即把立即数26H直接送到A中。 2. 直接寻址 在直接寻址方式中,操

6、作数的单元地址直接出现在指令中,这一寻址方式可进行内部存储单元的访问。它包括:,(1) 特殊功能寄存器地址空间。这也是惟一可寻址特殊功能寄存器(SFR)的寻址方式。 例如:MOV TCON, A 指令执行结果:A的内容传送给寄存器TCON。 (2) 内部RAM的低128字节 例如: MOV A, 76H 指令执行结果:内部RAM地址为76H单元的内容传送给A。 3. 寄存器寻址 在寄存器寻址方式中,寄存器中的内容就是操作数。 例如: MOV A, R1 ; A(R1) 指令执行结果:把寄存器R1中的内容送到累加器A中。,4. 寄存器间接寻址 在寄存器间接寻址方式中,指定寄存器中的内容是操作数的

7、地址,该地址对应存储单元的内容才是操作数。 例如 MOV A, R0 该指令的功能是将R0所指3FH单元中内容45H送A中,执行结果:(A)=45H。 16位数据指针DPTR作为间址寄存器。 访问内部数据存储器时,用当前工作寄存器R0和R1作间址,即R0、R1,在堆栈操作中则用堆栈指针SP作间址。 例如: MOVX A, R1 MOVX DPTR, A,5. 变址寻址 变址寻址方式是以程序指针PC或数据指针DPTR为基址寄存器,以累加器A作为变址寄存器,两者内容相加(即基地址+偏移量)形成16位的操作数地址,变址寻址方式主要用于访问固化在程序存储器中的某个字节。 变址寻址方式有两类: (1)

8、用程序指针PC作基地址,A作变址,形成操作数地址:A+PC。 (2) 用数据指针DPTR作基地址,A作变址,形成操作数地址:A+DPTR。 6. 相对寻址 相对寻址是以程序计数器PC的当前值作为基地址,与指令中的第二字节给出的相对偏移量rel进行相加,所得和为程序的转移地址。,7. 位寻址 MCS-51系列单片机中有独立的性能优越的布尔处理器,包括位变量操作运算器、位累加器和位存储器,可对位地址空间的每个位进行位变量传送、状态控制、逻辑运算等操作。位地址包括:内部RAM地址空间的可进行位寻址的128位和SFR地址空间的可位寻址的11个8位寄存器的88位。位寻址给出的是直接地址。 3.3 指令系

9、统 3.3.1 数据传送类指令 1. 数据传送类指令的特点 数据传送指令是最常用的一类指令,共有29条,可以通过累加器进行数据传送,还可以在数据存储器之间或工作寄存器与数据存储器之间直接进行数据传送。 2. 数据传送类指令 (1) 片内数据传送指令,1) 以累加器A为目的操作数的指令有以下形式: MOV A, Rn ; A(Rn) 源操作数为寄存器寻址 MOV A, Ri ; A(Ri) 源操作数为寄存器间接寻址 MOV A, direct ; A(direct) 源操作数为直接寻址 MOV A, #data ; Adata 源操作数为立即寻址 该组指令的功能是把源操作数传送给累加器A。 2)

10、 以工作寄存器Rn为目的操作数的指令有以下形式: MOV Rn, A ; Rn(A) MOV Rn, direct ; Rn(direct) MOV Rn, #data ; Rndata,3) 以直接地址为目的操作数的指令有以下形式: MOV direct, A MOV direct, Rn MOV direct, direct MOV direct, Ri MOV direct, #data 4) 以间接地址为目的操作数的指令: MOV Ri, A MOV Ri, direct MOV Ri, #data 该组指令的功能:把源操作数所指定的内容传送至以R0或R1为地址指针的片内RAM单元中。

11、 5) 16位数据传送指令有以下惟一形式: MOV DPTR, #data16 该指令的功能:把16位立即数传送至16位数据指针寄存器DPTR。,(2) 片外数据存储器传送指令 片外数据存储器传送指令有以下形式: MOVX A, Ri ; A(Ri),为寄存器间接寻址 MOVX A, DPTR ; A(DPTR),为寄存器间接寻址 MOVX R, A ; (Ri)(A) MOVX DPTR, A ; (DPTR)(A) 单片机内部与片外数据存储器是通过累加器A进行数据传送的。 (3) 程序存储器数据传送指令 程序存储器数据传送指令有以下两种形式: MOVC A, A+PC MOVC A, A+

12、DPTR,(4) 数据交换指令 数据交换指令有以下形式: 1) 字节交换指令: XCH A, Rn ; A的内容与Rn的内容交换 XCH A, Ri ; A的内容与(Ri)的内容交换 XCH A, direct ; A的内容与(direct)的内容交换 2) 低半字节交换指令: XCHD A, Ri ; A的低四位与(Ri)的低四位交换 3) 累加器A的高、低半字节交换指令: SWAP A ; A的低四位与高四位互换 (5) 堆栈操作指令 堆栈操作指令有以下形式: PUSH direct ; SP(SP)+1(先指针加1) ; (SP)(direct)(再压栈),POP direct ; (S

13、P)(direct)(先弹出) ; SP(SP)-1(再指针减1) PUSH指令是入栈(或称压栈或进栈)指令,其功能是先将堆栈指针SP的内容加1,然后将直接寻址direct单元中的数压入到SP所指示的单元中。 POP是出栈(或称弹出)指令,其功能是先将堆栈指针SP所指示的单元内容弹出到直接寻址direct单元中,然后将SP的内容减1,SP始终指向栈顶。 3.3.2 算术运算类指令 1. 算术运算类指令特点 算术运算类指令共有24条,包括加、减、乘、除4种基本的算术运算指令。 该类指令的主要功能: (1) 对8位无符号数进行直接的运算。 (2) 借助溢出标志对有符号的二进制整数进行加减运算。 (

14、3) 借助进位标志,可以实现多字节的加减运算。,(4) 对压缩的BCD数进行运算(压缩BCD数,是指在1个字节中存放2位BCD数)。 (5) 算术运算指令对程序状态字PSW中的Cy、AC、OV三个标志都有影响,根据运算的结果可将它们置1或清除。但是加1和减1指令不影响这些标志。 算术运算类指令用到的助记符有:ADD、ADDC、SUBB、INC、DEC、DA、MUL和DIV八种 。 2. 加法指令 (1) 不带进位的加法指令 不带进位的加法指令有以下形式: ADD A, #data ; A(A)+data ADD A, direct ; A(A)+(direct) ADD A, Rn ; A(A

15、)+(Rn) ADD A, Ri ; A(A)+(Ri) 这4条指令的功能是完成A中的数与源操作数所确定的内容按二进制运算相加,其和送入目的操作数累加器A中。,(2) 带进位加法指令 带进位加法指令有以下形式: ADDC A, Rn ; A(A)+(Rn)+Cy ADDC A, Ri ; A(A)+(Ri)+Cy ADDC A, direct ; A(A)+(direct)+Cy ADDC A, #data ; A(A)+#data+Cy 该组指令的功能:将指令中指出的源操作数与A的内容及进位标志位Cy的值相加,结果送A。此类指令常用于多字节加法算中。 (3) 加1指令 加1指令有以下形式:

16、INC A ; A(A)+1 INC Rn ; Rn(Rn)+1 INC direct ; (direct)(direct)+1,INC Ri ; (Ri)(Ri)+1 INC DPTR ; DPTR(DPTR)+1 该组指令的功能:把操作数指定的单元或寄存器的内容加1。 (4) 十进制调整指令 十进制调整指令有以下惟一形式: DA A ; A(A)(BCD码调整) 指令的功能:将存放于A中的两个BCD码(十进制数)的和进行十进制调整,使A中的结果为正确的BCD码数。 3. 减法指令 (1) 带借位减法指令 带借位减法指令有以下形式: SUBB A, Rn ; A(A)-(Rn)-Cy SUBB A, Ri ; A(A)-(Ri)-Cy SUBB A, direct ; A(A)-(direc

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

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

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