




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 机械工业出版社同名教材 配套电子教案,单片机原理与控制技术 第2版,第3章 80C51系列单片机指令系统,本章要点,80C51指令的基本格式 80C51指令功能分类 指令系统中的常用符号 80C51指令系统的七种寻址方式 数据传送类指令 算术运算类指令 逻辑运算及移位指令 位操作类指令 控制转移类指令,3-1 指令系统基本概念,标号:操作码 操作数;注释,一、指令基本格式, 标号:指令的符号地址。, 用于一段功能程序的识别标记或控制 转移地址。,指令前的标号代表该指令的地址, 是用符号表示的地址。,一般用英文字母和数字组成。, 标号必须用冒号“ :”与操作码分隔。, 操作码:表示指令的操作功能。, 操作码用助记符表示, 它代表了指令 的操作功能。, 操作码是指令的必需部分, 是指令的核心,不可缺少。, 操作数:参加操作的数据或数据地址。, 操作数与操作码之间用空格分隔,操作数与 操作数之间用逗号“,”分隔。, 操作数可以是数据,也可以是数据的地址、 数据地址的地址或操作数的其他信息。, 操作数可分为目的操作数和源操作数。, 操作数可用二进制数、十进制数或十六进制 数表示。, 操作数的个数可以是03个。, 注释:指令功能说明。, 注释属于非必需项,是为便于阅读, 对指令功能作的说明和注解。, 注释必须以“;”开始。,二、指令分类, 按指令功能分类: 可分为数据传送类、算术运算类、 逻辑运算类、位操作类和 控制转移类 等5大类指令。,80C51共有111条指令。, 按指令长度分类: 可分为1字节、2字节和3字节指令。, 按指令执行时间分类: 可分为1机周、2机周和4机周指令。,三、指令系统中的常用符号, bit:位地址。 代表片内RAM中的可寻址位00H7FH及SFR中的可寻址位。, #:立即数符。 #data:8位立即数;#data16:16位立即数。, direct:8位直接地址 代表内RAM 00H7FH或SFR的80HFFH 。, :间接寻址符。 如Ri,DPTR,A+PC,A+DPTR。, addr11:11位目的地址。 addr16:16位目的地址。, rel:带符号的8位偏移地址。 用于转移指令,其范围是相对于下一条指令第1字节地址的-128+127个字节。,四、寻址方式,【例】,寻址就是寻找操作数的地址。, 立即寻址,立即寻址是直接给出操作数,操作数前有立即数符“ # ”。,MOV A,#30H ;将立即数30H传送至A中 MOV DPTR,#5678H ;将立即数5678H传送至DPTR, 直接寻址,MOV A,3AH ;将内RAM 3AH单元中的数据传送至A中 MOV A,P0 ;将特殊功能寄存器P0口中的数据传送至A中 说明:3AH和P0是以direct形式出现的直接地址,直接寻址是给出操作数的直接地址。直接寻址范围为内RAM 128B和特殊功能寄存器。,【例】, 寄存器寻址,MOV A,R0 ;将R0中的数据传送至A中,寄存器寻址的操作数在规定的寄存器中。 规定的寄存器有: 工作寄存器R0R7 累加器A 双字节AB 数据指针DPTR 位累加器Cy 这些被寻址寄存器中的内容就是操作数,【例】, 寄存器间接寻址,MOV A,R0 ;将以R0中内容为地址的存储单元中的数据 传送至A中 MOVX A,DPTR;将外RAM DPTR所指存储单元中的数据 传送至A中 PUSH PSW ;将PSW中数据 传送至堆栈指针SP所指的存储单元中,间接寻址是根据操作数地址的地址寻找操作数。 间接寻址用间址符“”作为前缀。,【例】, 变址寻址,MOVC A,A+DPTR,【例】,在变址寻址中,操作数地址基址变址 用于读ROM数据操作。,;将A的内容与DPTR内容相加, 得到一个新地址,从该地址 ROM中读取数据送入A中。,相对寻址一般用于相对转移指令, 转移目的地址当前PC值相对偏移量rel。,;将位地址07H(字节地址20H中最 高位)中的数据传送至进位位Cy。, 相对寻址, 位寻址,位寻址是对内RAM和特殊功能寄存器中的可寻址位进行操作的寻址方式。,【例】,MOV C,07H,3-2 指令系统, MOV A,Rn ;RnA ,n=07 MOV A,Ri ;(Ri)A,i=0、1 MOV A,direct ;(direct)A MOV A,#data ;dataA,一、数据传送类指令, 内RAM数据传送指令, 以累加器A为目的字节的传送指令(4条), MOV Rn,A ;ARn,n=07 MOV Rn,direct;(direct)Rn,n=07 MOV Rn,#data ;dataRn,n=07, 以工作寄存器Rn为目的字节 的传送指令(3条), 以直接地址为目的字节的传送指令(5条), MOV direct,A ;A(direct) MOV direct,Rn ;Rn(direct),n=07 MOV direct,Ri ;(Ri)(direct),i=0、1 MOV direct1,direct2;(direct2)(direct1) MOV direct,#data ;data(direct), 以寄存器间址为目的字节的传送指令(3条), MOV Ri,A ;A(Ri),i=0、1 MOV Ri,direct;(direct)(Ri),i=0、1 MOV Ri,#data ;data(Ri),i=0、1, 16位数据传送指令,MOV DPTR,#data16 ;data16DPTR,【例】,MOV DPTR,#1234H ;DPTR=1234H 该指令也可以用两条8位数据传送指令实现: MOV DPH,#12H ;DPH=12H MOV DPL,#34H ;DPL=34H,DPTR=1234H, MOVX A,Ri ;(Ri)A,i=0、1 MOVX A,DPTR ;(DPTR)A MOVX Ri,A ;A(Ri),i=0、1 MOVX DATR,A ;A(DATR), 外RAM传送指令(4条), 读ROM指令(2条),内RAM(包括特殊功能寄存器): 用MOV指令传送; 外RAM: 用MOVX指令传送; ROM: 用MOVC指令传送。, MOVC A,A+DPTR ;(A+DPTR)A MOVC A,A+PC ;PC+1PC,(A+PC)A,三个不同的存储空间用三种不同的指令传送:, PUSH direct ;SP+1SP,(direct)(SP) POP direct ;(SP)(direct),SP-1SP, 堆栈操作指令(2条), PUSH为入栈指令 例PUSH 30H;(30H)=2BH,具体操作是:,先将堆栈指针SP的内容(0FH)加1,指向堆栈顶的一个空单元,此时SP=10H; 然后将指令指定的直接寻址单元30H中的数据(2BH)送到该空单元中。, POP为出栈指令 例 POP 40H ;(40H)=4CH,具体操作是:,先将SP所指单元0FH(栈顶地址)中的数据(4CH)弹出,送到指定的内RAM单元40H,(40H)=4CH; 然后SP-1SP,SP=0EH,SP仍指向栈顶地址。, 交换指令(5条), XCH A,Rn ; ARn,n=07 XCH A,Ri ; A(Ri),i=0、1 XCH A,direct ; A(direct),SWAP A ; A74A30, 字节交换指令, 半字节交换指令,XCHD A,Ri ; A30(Ri)30 高4位不变。i=0、1, 累加器高低四位互换, ADD A,Rn ;A+RnA(n=07) 有进位,Cy=1;无进位,Cy=0 ADD A,Ri ;A+(Ri)A(i=0、1) 有进位,Cy=1;无进位,Cy=0 ADD A,direct ;A+(direct)A 有进位,Cy=1;无进位,Cy=0 ADD A,#data ;A+dataA 有进位,Cy=1;无进位,Cy=0,二、算术运算类指令, 加法指令, 不带Cy加法指令(4条), 带Cy加法指令(4条), ADDC A,Rn ;A+Rn+CyA(n=07) 有进位,Cy=1;无进位,Cy=0 ADDC A,Ri ;A+(Ri)+CyA(i=0、1) 有进位,Cy=1;无进位,Cy=0 ADDC A,direct ;A+(direct)+CyA 有进位,Cy=1;无进位,Cy=0 ADDC A,#data ;A+data+CyA 有进位,Cy=1;无进位,Cy=0, 减法指令(4条), SUBB A,Rn ; A-Rn-CyA,(n=07), 有借位,Cy=1;无借位,Cy=0 SUBB A,Ri ; A-(Ri)-CyA,(n=01), 有借位,Cy=1;无借位,Cy=0 SUBB A,direct; A-direct-CyA, 有借位,Cy=1;无借位,Cy=0 SUBB A,#data ; A-data-CyA, 有借位,Cy=1;无借位,Cy=0, INC A ;A+1A INC Rn ;Rn+1Rn,n=07 INC Ri ;(Ri)+1(Ri), i=0、1 INC direct ;(direct)+1(direct) INC DPTR ;DPTR+1DPTR, 加1减1指令, 加1指令(5条), 减1指令(4条), DEC A ;A-1A DEC Rn ;Rn-1Rn, n=07 DEC Ri ;(Ri)-1(Ri), i=0、1 DEC direct ;(direct)-1(direct),加1减1指令涉及 A时,会影响P,但不影响其他标志位。,DIV AB ;(AB)商A,余数B Cy=0,OV=0, BCD码调整指令,DA A,功能:对加法运算结果进行BCD码调整。, 乘除法指令, 乘法指令(1条),MUL AB ; ABBA, 除法指令(1条),三、逻辑运算及移位指令, ANL A,Rn ;ARnA ANL A,Ri ;A(Ri)A ANL A,#data ;AdataA ANL A,direct ;A(direct)A ANL direct,A ;(direct)Adirect ANL direct,#data;(direct)datadirect, 逻辑“与”运算指令(6条), 逻辑“或”运算指令(6条), ORL A,Rn ;ARnA ORL A,Ri ;A(Ri)A ORL A,#data ;AdataA ORL A,direct ;A(direct)A ORL direct,A ;(direct)Adirect ORL direct,#data;(direct)datadirect, 逻辑“异或”运算指令(6条), XRL A,Rn ;A RnA XRL A,Ri ;A(Ri)A XRL A,#data ;A dataA XRL A,direct ;A(direct)A XRL direct,A ;(direct) Adirect XRL direct,#data;(direct) datadirect, CLR A ;0A CPL A ;AA, 清零和取反指令, 循环移位指令(4条), 循环左移:RL A, 带Cy循环左移:RLC A, 循环右移:RR A, 带Cy循环右移:RRC A, MOV C,bit ;(bit)Cy MOV bit,C ;Cybit,四、位操作类指令, 位传送指令(2条), 位取反指令: CPL C ;CC CPL bit ;(bit)bit, 位修正指令(6条), 位清0指令: CLR C ;0C CLR bit ;0bit, 位置1指令: SETB C ;1C SETB bit ;1bit, 位逻辑“与”运算指令: ANL C,bit ;C(bit)C ANL C,/bit ;C(bit)C, 位逻辑“或”运算指令: ORL C,bit ;C(bit)C ORL C,/bit ;C(bit)C, 位逻辑运算指令(4条), 相对转移指令 SJMP rel ;PC+2PC,PC+relPC,五、控制转移类指令, 无条件转移指令(3条), 长转移指令 LJMP addr16 ; addr150PC,, 短转移指令 AJMP addr11 ; PC+2PC, addr100PC100, PC1511不变, 间接转移指令(散转指令) JMP A+DPTR ;A+DPTRPC,LJMP、AJMP、SJMP三条无条件转移指令的区别:, 转移范围不一样。 LJMP转移范围是64KB; AJMP转移范围是与当前PC值同一2KB; SJMP转移范围是当前PC-128B+127B。 使用AJMP和SJMP指令应注意转移目标地址是否在转移范围内,若超出范围,程序将出错。, 指令字节不一样。 LJMP是3字节指令; AJMP、SJMP是2字节指令。, 条件转移指令(13条),条件转移指令根据判断条件可分为: 判C转移 判bit转移 判A转移 减1非0转移 比较不相等转移指令 满足条件,则转移; 不满足条件,则程序顺序执行。, C=0转移指令: JNC rel ; PC+2PC, 若Cy=0,则PC+relPC,转移 若Cy=1,则程序顺序执行。, 判C转移指令(2条), C=1转移指令: JC rel ; PC+2PC, 若Cy=1,则PC+relPC,转移 若Cy=0,则程序顺序执行。,(bit)=1转移并清0指令: JBC bit,rel ; PC+3PC, ;若(bit)=1,则PC+relPC,转移,且0(bit) ;若(bit)=0,则程序顺序执行, 判bit转移指令(3条),(bit)=1转移指令: JB bit,rel ; PC+3PC, 若(bit)=1,则PC+relPC,转移 若(bit)=0,则程序顺序执行,(bit)=0转移指令: JNB bit,rel ; PC+3PC, 若(bit)=0,则PC+relPC,转移 若(bit)=1,则程序顺序执行, A=0转移指令: JZ rel ; PC+2PC, 若A=0,则PC+relPC,转移 若A0,则程序顺序执行, 判A转移指令(2条), A0转移指令: JNZ rel ; PC+2PC, 若A0,则PC+relPC,转移 若A=0,则程序顺序执行, 减1非0转移指令(2条), DJNZ direct,rel;PC+3PC,(direct)-1direct 若(direct)=0,则程序顺序执行 若(direct)0,则PC+relPC,转移, DJNZ Rn,rel ;PC+2PC,Rn-1Rn, 若Rn=0,则程序顺序执行 若Rn0,则PC+relPC,转移, 比较转移指令(4条), CJNE A,direct,rel;PC+3PC, ;若A=(direct),则程序顺序执行 ;若A(direct),则PC+relPC,转移 ;且若A(direct),Cy=0;若A(direct),Cy=1, CJNE A,#data,rel ;PC+3PC, ;若A=data,则程序顺序执行 ;若Adata,则PC+relPC,转移 ;且若Adata,Cy=0;若Adata,Cy=1, CJNE Rn,#data,rel;PC+3PC, ;若Rn=data,则程序顺序执行 ;若Rndata,则PC+relPC,转移 ;且若Rndata,Cy=0;若Rndata,Cy=1, CJNE Ri,#
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运动损伤防护考核试卷
- 医保相关审批管理制度
- 公司荣誉勋章管理制度
- 计算机四级软件测试分析工具试题及答案
- 医药研发中心管理制度
- 安防公司安全管理制度
- 农业项目引进管理制度
- 培训机构营运管理制度
- 园林苗木施工管理制度
- 远程工作中的网络技术试题及答案
- GB∕T 15762-2020 蒸压加气混凝土板
- 护士分层级培训与管理课件
- 广州版五年级英语下册期末知识点复习ppt课件
- 照明电气安装工程施工方案及工艺方法要求
- 产品研发流程管理制度管理办法
- 计算方法全书课件完整版ppt整本书电子教案最全教学教程ppt课件
- 公路工程施工安全技术规范-JTG-F90-2015
- 单代号网络图
- Q∕GDW 11958-2020 国家电网有限公司应急预案编制规范
- 城垃圾填埋场垃圾渗滤液处理成本核算
- 汽车设计-转向系设计说明书
评论
0/150
提交评论