MCS-51单片机的指令系统P53_第1页
MCS-51单片机的指令系统P53_第2页
MCS-51单片机的指令系统P53_第3页
MCS-51单片机的指令系统P53_第4页
MCS-51单片机的指令系统P53_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 MCS-51单片机的指令系统,教学提示:指令是CPU用于控制功能部件完成某一指定动作的指示和命令。一台计算机全部指令的集合称为指令系统。指令系统体现了计算机的性能,也是计算机重要的组成部分,应用计算机进行程序设计的基础。单片机应用系统的运行,是依靠合理的硬件接口、用户程序和监控程序的完美结合实现的,所以掌握单片机需要学习指令和多样的汇编程序设计实现运算和控制功能。,第3章 MCS-51单片机的指令系统,教学要求:本章让学生了解单片机指令系统的特点和功能、操作的对象和结果、汇编语言程序结构的设计。应重点掌握指令的基本形态、指令的格式、寻址方式和用途;汇编语言编程的基本方法,熟悉常用的子程

2、序,能够正确运用汇编指令编制单片机应用系统的用户程序和监控程序。,3.1 指令格式及其符号说明 3.2 指令格式 3.3 MCS-51的指令集 3.4 汇编语言的基本形式 3.5 汇编语言的基本结构 3.6 本章小结,第3章 MCS-51单片机的指令系统,111条归类指令: 数据传送(与交换)类指令 算术运算类指令 逻辑运算与移位(循环)类指令 控制转移类(子程序调用与转移类)指令 布尔变量操作类(位操作类)指令,3.1 指令格式及其符号说明,指令特点: 指令短,49条单字节,46条双字节,16条三字节 指令执行时间快:64条单周期指令,45条双周期指令,2条四周期指令 用一条指令可实现2个单

3、字节的乘法或除法运算 具有丰富的位操作指令 可直接用传送指令实现端口的输入/输出操作,3.1.1 MCS-51单片机指令格式 MCS-51指令由操作码助记符和操作数两部分组成。指令格式如下: 标号:操作码助记符 目的操作数 ,源操作数;注释,3.1.2 指令的字节 单字节指令(49条) 双字节指令(46条) 三字节指令(16条),3.1.3 MCS-51单片机的助记符语言 如 MOV MOVX PUSH POP CLR RL RR CJNE ,3.1.4 常用符号说明 Rn:R0R7 Ri:R0、R1 dir:8位直接字节地址(内RAM和SFR) #data8:8位立即数 #data16:16

4、位立即数 Addr16:16位地址值 Addr11:11位地址值 Bit:位地址 Rel:相对偏移量(单字节补码数) $:当前指令所在的地址,7种寻址方式 立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址,3.2 寻址方式,指令中直接给出操作数的寻址方式 立即操作数指在8位数或16位数前加符号表示 例: MOV A,80H MOV DPTR,#2000H MOV 30H,55H,3.2.1 立即寻址,指令中直接给出操作数地址的寻址方式 能用直接地址的有SFR和内RAM 例: MOV PSW,50H ORL A,30H MOV 30H,50H,3.2.2 直接寻址,以通

5、用寄存器的内容为操作数的寻址方式 通用寄存器包括A、B、DPTR、R0R7 例: CLR A INC DPTR MUL AB ADD A,R2 A、B既是通用寄存器又是SFR,R0R7是指在被选中的当前工作寄存器,3.2.3 寄存器寻址,以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式 能用寄存器间接寻址的有R0、R1、SP、DPTR,SP仅用于堆栈操作 间接寻址的空间包括内RAM和扩展的外RAM 内RAM可用R0、R1间接寻址,外RAM可用DPTR间接寻址,也可用R0、R1,但用R0、R1时由P2口提供高8位地址 例: MOV R0,A MOVX A,R0 MOVX DPTR,A P

6、USH ACC POP 20H,3.2.4 寄存器间接寻址,由基址寄存器PC或DPTR加上偏移量寄存器A中内容之和形成操作数地址的寻址方式 变址寻址只能对ROM中的数据作寻址操作,只读操作 例: MOVC A,A+DPTR MOVC A,A+PC,3.2.5 变址寻址,以当前PC的内容为基值,加上指令给出的1字节补码数形成新的PC值的寻址方式 只用于修改PC值,主要用于实现程序的分枝转移 例: SJMP $ SJMP LPP CJNE A,#30H,LPP JZ LPP JNB P1.3,LPP,3.2.6 相对寻址,对位地址中的内容作位操作的寻址方式 位地址有内RAM的128位,和SFR中的

7、83位,也统一编址 例: SETB 20H MOV 32H,C ORL C,5AH CLR TR0,3.2.7 位寻址,3.3.1 数据传送类指令 共29条指令,包括以A、Rn、DPTR直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指令;数据交换指令以及堆栈操作指令。,3.3 MCS-51的指令集,3.3.1.1 以A为目的操作数 MOV A,Rn MOV A,dir MOV A,Ri MOV A,#data,3.3.1.2 以Rn为目的操作数 MOV Rn,A MOV Rn,dir MOV Rn,#data,3.3.1.3 以DPTR为目的操作数 MOV

8、 DPTR,data16,3.3.1.4 以直接地址为目的操作数 MOV dir , A MOV dir ,Rn MOV dir , dir MOV dir , Ri MOV dir , #data,3.3.1.5 以间接地址为目的操作数 MOV Ri , A MOV Ri ,dir MOV Ri , #data,3.3.1.6 访问外部数据RAM MOVX A , Ri MOVX A, DPTR MOVX DPTR , A MOVX Ri ,A 说明:用Ri 表示外RAM地址时,P2口表示外RAM的高8位地址,Ri表示外RAM的低8位地址,3.3.1.7 读程序存储器 MOVC A , A+

9、PC MOVC A, A+DPTR 说明:一般用于查表,3.3.1.8 数据交换 字节交换 XCH A,Rn XCH A,dir XCH A,Ri 半字节交换 XCHD A,Ri SWAP A,3.3.1.9 堆栈操作 PUSH dir POP dir,共24条指令,包括加、减、乘、除、增量、减量和十进制调整等指令,其中大多数指令都同时以A为源操作数之一和目的操作数。,3.3.2 算术运算类指令,3.3.2.1 加 ADD A,Rn ADD A,dir ADD A,Ri ADD A,#data,3.3.2.2 带进位加 ADDC A,Rn ADDC A,dir ADDC A,Ri ADDC A

10、,#data,3.3.2.3 带借位减 SUBB A,Rn SUBB A,dir SUBB A,Ri SUBB A,#data,乘除运算,3.3.2.4 乘法 MUL AB ;ABBA,3.3.2.5 除法 DIV AB ;A BAB,3.3.2.6 增量 INC A INC Rn INC dir INC Ri INC DPTR,3.3.2.7 减量 DEC A DEC Rn DEC dir DEC Ri,3.3.2.8 十进制调整 DA A 说明:只能紧跟在加法(ADD、ADDC)运算后,表示原来的加数均为十进制数,通过十六进制加完后结果也要变成十进制数,共24条指令,逻辑运算指令包括与、或

11、、异或、求反和清零;循环指令都是对A的大循环操作,包括有左、右方向以及带与不带进位位的不同循环方式。,3.3.3 逻辑运算及移位类指令,3.3.3.1 简单逻辑运算指令 CLR A CPL A,3.3.3.2 逻辑与指令 ANL A,Rn ANL A,dir ANL A,Ri ANL A,#data ANL dir ,A ANL dir,#data,3.3.3.3 逻辑或指令 ORL A,Rn ORL A,dir ORL A,Ri ORL A,#data ORL dir ,A ORL dir,#data,3.3.3.4 逻辑异或指令 XRL A,Rn XRL A,dir XRL A,Ri XR

12、L A,#data XRL dir ,A XRL dir,#data,3.3.3.5 循环移位指令 RL A RLC A RR A RRC A,共17条指令,转移类分为无条件转移和条件转移2组;子程序调用类指令有绝对调用和长调用2种,同时还有返回指令及空操作指令等。,3.3.4 控制转移类指令,3.3.4.1 无条件转移指令 绝对转移 AJMP addr11 长转移 LJMP addr16 短转移 SJMP rel 间接转移 JMP A+DPTR,3.3.4.2 条件转移指令 累加器A为零(非零)转移 JZ rel JNZ rel 减一非零转移 DJNZ Rn,rel DJNZ dir,rel

13、,3.3.4.2 条件转移指令 两数比较不等转移 CJNE A,dir,rel CJNE A,data,rel CJNE Rn,#data,rel CJNE Ri,#data,rel,3.3.4.3 调用和返回指令 调用 ACALL addr11 在同一个2K范围内任意调用,与长调用相比,可节省1个程序空间。 LCALL addr16 在整个64K范围内任意调用,3.3.4.3 调用和返回指令 返回 RET:从调用子程序返回,与LCALL或ACALL 指令配合使用。 RETI:从中断服务程序中返回,3.3.4.4 空操作指令 NOP ;空操作,共17条指令,其共同点是对进位位C和直接位地址bit的操作。其中包括清零、置1、求反、逻辑与、逻辑或、传送以及判断转移。这些丰富的位操作指令表现出具有优异的布尔处理能力。,3.3.5 布尔变量操作类指令,3.3.5.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论