【大学课件】MCS51单片机的指令系统P53_第1页
【大学课件】MCS51单片机的指令系统P53_第2页
【大学课件】MCS51单片机的指令系统P53_第3页
【大学课件】MCS51单片机的指令系统P53_第4页
【大学课件】MCS51单片机的指令系统P53_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

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

2、基本形态、指令的格式、寻址方式和用途;汇编语言编程的基本方法,熟悉常用的子程序,能够正确运用汇编指令编制单片机应用系统的用户程序和监控程序。http:/ 指令格式及其符号说明指令格式及其符号说明3.2 指令格式指令格式3.3 mcs-51mcs-51的指令集的指令集3.4 汇编语言的基本形式汇编语言的基本形式3.5 汇编语言的基本结构汇编语言的基本结构 3.6 本章小结本章小结第第3 3章章 mcs-51mcs-51单片机的指令系统单片机的指令系统http:/ 3.1 指令格式及其符号说明指令格式及其符号说明http:/ 指令短,49条单字节,46条双字节,16条三字节指令执行时间快:64条单

3、周期指令,45条双周期指令,2条四周期指令用一条指令可实现2个单字节的乘法或除法运算具有丰富的位操作指令可直接用传送指令实现端口的输入/输出操作http:/ mcs-513.1.1 mcs-51单片机指令格式单片机指令格式 mcs-51指令由操作码助记符和操作数两部分组成。指令格式如下: 标号标号 :操作码助记符:操作码助记符 目的操作数目的操作数 ,源操作数,源操作数;注释;注释 http:/ 3.1.2 指令的字节指令的字节单字节指令(49条)双字节指令(46条)三字节指令(16条)http:/ mcs-513.1.3 mcs-51单片机的助记符语言单片机的助记符语言如 mov movx

4、push pop clr rl rr cjne http:/ 3.1.4 常用符号说明常用符号说明rn:r0r7ri:r0、r1dir:8位直接字节地址(内ram和sfr)#data8:8位立即数#data16:16位立即数addr16:16位地址值addr11:11位地址值bit:位地址rel:相对偏移量(单字节补码数)$:当前指令所在的地址http:/ 3.2 寻址方式寻址方式http:/ 指令中直接给出操作数的寻址方式 立即操作数指在8位数或16位数前加符号表示 例: mov a,80h mov dptr,#2000h mov 30h,55h3.2.1 3.2.1 立即寻址立即寻址htt

5、p:/ 指令中直接给出操作数地址的寻址方式 能用直接地址的有sfr和内ram 例: mov psw,50h orl a,30h mov 30h,50h3.2.2 3.2.2 直接寻址直接寻址http:/ 以通用寄存器的内容为操作数的寻址方式 通用寄存器包括a、b、dptr、r0r7 例: clr a inc dptr mul ab add a,r2 a、b既是通用寄存器又是sfr,r0r7是指在被选中的当前工作寄存器3.2.3 3.2.3 寄存器寻址寄存器寻址http:/ 以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式 能用寄存器间接寻址的有r0、r1、sp、dptr,sp仅用于堆栈

6、操作 间接寻址的空间包括内ram和扩展的外ram 内ram可用r0、r1间接寻址,外ram可用dptr间接寻址,也可用r0、r1,但用r0、r1时由p2口提供高8位地址 例: mov r0,a movx a,r0 movx dptr,a push acc pop 20h3.2.4 3.2.4 寄存器间接寻址寄存器间接寻址http:/ 由基址寄存器pc或dptr加上偏移量寄存器a中内容之和形成操作数地址的寻址方式 变址寻址只能对rom中的数据作寻址操作,只读操作 例: movc a,a+dptr movc a,a+pc3.2.5 3.2.5 变址寻址变址寻址http:/ 以当前pc的内容为基值,

7、加上指令给出的1字节补码数形成新的pc值的寻址方式 只用于修改pc值,主要用于实现程序的分枝转移 例: sjmp $ sjmp lpp cjne a,#30h,lpp jz lpp jnb p1.3,lpp3.2.6 3.2.6 相对寻址相对寻址http:/ 对位地址中的内容作位操作的寻址方式 位地址有内ram的128位,和sfr中的83位,也统一编址 例: setb 20h mov 32h,c orl c,5ah clr tr03.2.7 3.2.7 位寻址位寻址http:/ 3.3.1 3.3.1 数据传送类指令数据传送类指令 共29条指令,包括以a、rn、dptr直接地址单元,间接地址单

8、元为目的的操作数的指令;访问外部ram的指令;读程序存储器的指令;数据交换指令以及堆栈操作指令。3.3 mcs-513.3 mcs-51的指令集的指令集http:/ 以以a a为目的操作数为目的操作数mov a,rnmov a,dirmov a,rimov a,#datahttp:/ 以以rnrn为目的操作数为目的操作数mov rn,amov rn,dirmov rn,#datahttp:/ 以以dptrdptr为目的操作数为目的操作数mov dptr,data16http:/ 3.

9、3.1.4 以直接地址为目的操作数以直接地址为目的操作数mov dir , amov dir ,rnmov dir , dirmov dir , rimov dir , #datahttp:/ 以间接地址为目的操作数以间接地址为目的操作数mov ri , amov ri ,dirmov ri , #datahttp:/ 访问外部数据访问外部数据ramrammovx a , ri movx a, dptrmovx dptr , amovx ri ,a 说明:用ri 表示外ram地址时,p2口表示外ram的高8位地址,ri表示外ram

10、的低8位地址http:/ 读程序存储器读程序存储器movc a , a+pc movc a, a+dptr说明:一般用于查表http:/ 数据交换数据交换字节交换 xch a,rn xch a,dir xch a,ri半字节交换 xchd a,ri swap ahttp:/ 堆栈操作堆栈操作push dirpop dir http:/ 共24条指令,包括加、减、乘、除、增量、减量和十进制调整等指令,其中大多数指令都同时以a为源操作数之一和目的操作数。3.3.2 3.3.2 算术运算类指令算术运算类指

11、令http:/ 加加add a,rnadd a,diradd a,riadd a,#datahttp:/ 带进位加带进位加addc a,rnaddc a,diraddc a,riaddc a,#datahttp:/ 带借位减带借位减subb a,rnsubb a,dirsubb a,risubb a,#datahttp:/ 乘法乘法 mul ab ;abba 除法除法 div ab ;a babhttp:/ 增量增量inc

12、 ainc rninc dir inc riinc dptrhttp:/ 减量减量dec adec rndec dir dec rihttp:/ 十进制调整十进制调整 da a 说明:只能紧跟在加法(add、addc)运算后,表示原来的加数均为十进制数,通过十六进制加完后结果也要变成十进制数http:/ 共24条指令,逻辑运算指令包括与、或、异或、求反和清零;循环指令都是对a的大循环操作,包括有左、右方向以及带与不带进位位的不同循环方式。3.3.3 3.3.3 逻辑运算及移位类指令逻辑运算及移位类指令http:/

13、 简单逻辑运算指令简单逻辑运算指令clr acpl ahttp:/ 逻辑与指令逻辑与指令anl a,rnanl a,diranl a,rianl a,#dataanl dir ,aanl dir,#datahttp:/ 逻辑或指令逻辑或指令orl a,rnorl a,dirorl a,riorl a,#dataorl dir ,aorl dir,#datahttp:/ 逻辑异或指令逻辑异或指令xrl a,rnxrl a,dirxrl a,rixrl a,#dataxrl dir ,ax

14、rl dir,#datahttp:/ 循环移位指令循环移位指令rl arlc arr arrc a http:/ 共17条指令,转移类分为无条件转移和条件转移2组;子程序调用类指令有绝对调用和长调用2种,同时还有返回指令及空操作指令等。3.3.4 3.3.4 控制转移类指令控制转移类指令http:/ 无条件转移指令无条件转移指令绝对转移 ajmp addr11长转移 ljmp addr16短转移 sjmp rel间接转移 jmp a+dptrhttp:/ 条件转移指令条件转移指令累加器a为零(非零)

15、转移 jz rel jnz rel减一非零转移 djnz rn,rel djnz dir,relhttp:/ 条件转移指令条件转移指令 两数比较不等转移 cjne a,dir,rel cjne a,data,rel cjne rn,#data,rel cjne ri,#data,relhttp:/ 调用和返回指令调用和返回指令 调用调用 acall addr11 在同一个2k范围内任意调用,与长调用相比,可节省1个程序空间。 lcall addr16 在整个64k范围内任意调用http:/ 调用和返回指令调用和返回指令 返回返回 ret:从调用子程序返回,与lcall或acall 指令配合使用。 reti:从中断服务程序中返回http:/ 空操作指令空操作指令 nop ;空操作http:/ 共17条指令,其共同点是对进位位c和直接位地址bit的操作。其中包括清零、置1、求反、逻辑与、逻辑或、传送以及判断转移。这些丰富的位操作指令表现出具有优异的布尔处理能力。3.3.5 3.3.5 布尔变量操作类指令布尔变量操作类指令http:/ 位传送指令位传送指令mov

温馨提示

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

评论

0/150

提交评论