




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3 3章章 MCS - 51MCS - 51单片机指令系统单片机指令系统 3.1 3.1 指令系统简介指令系统简介3.2 3.2 寻址方式寻址方式本章内容本章内容p3.1 3.1 指令系统简介指令系统简介p3.2 3.2 寻址方式寻址方式p3.3 MCS-513.3 MCS-51的指令集的指令集p3.4 3.4 汇编语言程序的基本形式汇编语言程序的基本形式p3.5 3.5 汇编语言程序的基本结构汇编语言程序的基本结构程序框架程序框架pORG 0000Hp LJMP MAIN ;跳转至主程序跳转至主程序pORG 0003Hp LJMP INT0_INT ;跳转至外部中断跳转至外部中断0的中断
2、服务程序的中断服务程序pORG 000BHp LJMP T0_INT ;跳转至定时器跳转至定时器0的中断服务程序的中断服务程序pORG 0013Hp LJMP INT1_INT ;跳转至外部中断跳转至外部中断1的中断服务程序的中断服务程序ppORG 0030HpMAIN: ;开始写主程序开始写主程序p p END中断入口地址中断入口地址主程序开始主程序开始软件编程环境软件编程环境软件编程环境软件编程环境3.1 3.1 指令系统简介指令系统简介p指令:规定计算机进行某种操作的命令指令:规定计算机进行某种操作的命令p指令系统:指令集合指令系统:指令集合n不同系列的机器,其指令系统不同不同系列的机器
3、,其指令系统不同p指令编码指令编码n机器语言指令:机器语言指令:二进制数二进制数n汇编语言指令:汇编语言指令:助记符(英文缩写)助记符(英文缩写)3.1.1 MCS-513.1.1 MCS-51单片机指令单片机指令p111111条条p分类分类n按机器周期数按机器周期数p单、双、四单、双、四n按指令功能按指令功能p数据传送、算术运算、逻辑运算及移位、控数据传送、算术运算、逻辑运算及移位、控制转移、位操作制转移、位操作n按指令的字长分按指令的字长分p单字节、双字节、三字节单字节、双字节、三字节字节少的指令占用存储字节少的指令占用存储单元少,执行速度快单元少,执行速度快3.1.2 3.1.2 指令的
4、格式指令的格式 标号标号: : 操作码助记符操作码助记符 目的操作数目的操作数,源操作数源操作数 ; ;注释注释 NEXT: MOV A, #0A7H ;NEXT: MOV A, #0A7H ;立即数立即数0A7H0A7H送累加器送累加器A A常用的指令说明符号常用的指令说明符号符符 号号含含 义义RnRn表示当前选定寄存器组的工作寄存器表示当前选定寄存器组的工作寄存器R0R0R7R7,n=0n=07 7RiRi表示作为表示作为间接寻址间接寻址的地址指针的地址指针R0R0R1R1,i=0i=0,1 1#data#data表示表示8 8位立即数,即位立即数,即00H00HFFHFFH#datal
5、6#datal6表示表示1616位立即数,即位立即数,即0000H0000HFFFFHFFFFHaddrl6addrl61616位地址,可表示用于位地址,可表示用于64K64K范围内寻址,用于范围内寻址,用于LCALLLCALL和和LJMPLJMP指令中(指令中(2 21616=64K=64K)addrlladdrll1111位地址,可表示位地址,可表示2K2K范围内寻址,用于范围内寻址,用于ACALLACALL和和AJMPAJMP指指令中(令中(2 21111=2K=2K)relrel带符号带符号的的8 8位地址偏移量位地址偏移量( (128128+127)+127),用于,用于SJMPSJ
6、MP和条和条件转移指令中件转移指令中bitbit位寻址区的直接寻址位,表示位寻址区的直接寻址位,表示片内片内RAMRAM中可寻址中可寻址位位和和SFRSFR中的可寻址中的可寻址位位$ $当前指令所在地址当前指令所在地址DPTRDPTR数据指针数据指针 间接寻址寄存器或基址寄存器的前缀间接寻址寄存器或基址寄存器的前缀/ /加在位地址之前,表示该位先取反再参与运算,但加在位地址之前,表示该位先取反再参与运算,但不影响不影响该位的值该位的值directdirect8 8位直接地址,可以是内部位直接地址,可以是内部RAMRAM区的某一单元或某一区的某一单元或某一专用功能寄存器的地址专用功能寄存器的地址
7、(X)(X)X X地址单元中的内容,或地址单元中的内容,或X X作为间接寻址寄存器时所作为间接寻址寄存器时所指单元的内容指单元的内容(X)(X)由由X X寻址的单元的内容寻址的单元的内容将箭头后面的内容传送到箭头前面去将箭头后面的内容传送到箭头前面去3.1.3 3.1.3 指令的字节指令的字节 p(1)单字节指令)单字节指令n操作码和操作数加起来只有一个字节操作码和操作数加起来只有一个字节p(2)双字节指令)双字节指令n操作码和操作数各占一个字节操作码和操作数各占一个字节p(3)三字节指令)三字节指令n第一字节为操作码第一字节为操作码n第二、第三字节为操作数或操作数地址第二、第三字节为操作数或
8、操作数地址(1 1)单字节指令)单字节指令 (49(49条)条)p无操作数单字节指令无操作数单字节指令n指令中指令中只有只有操作码操作码字段,字段,操作数操作数隐含隐含在操作码中在操作码中 n例:例:pINC AINC A; ;指令编码为指令编码为 04H04Hp含有操作数寄存器号的单字节指令含有操作数寄存器号的单字节指令 n指令码由指令码由操作码操作码字段字段和和指示操作数所在指示操作数所在寄存器号寄存器号的的字段字段组成组成 n例:例:pMOV AMOV A,Rn ;Rn ;指令编码为指令编码为 E8HE8HEFHEFH ALUATMPPSWPCIRID控制器控制器ARB+1RAM地址锁存
9、地址锁存RAMROM04HINC AINC A指令编码:指令编码:04H04H(2 2)双字节指令)双字节指令 (46(46条条) )p指令指令n操作码字节操作码字节在前在前;n在后在后的操作数字节可以是的操作数字节可以是立即数立即数,也可以是操,也可以是操作数所在片内作数所在片内RAMRAM的的地址地址。n例:例:pMOV AMOV A,#data ; #data ; 指令编码为指令编码为 74H data74H datapMOV AMOV A,dir ;dir ; 指令编码为指令编码为 E5H dirE5H dir ALUATMPPSWPCIRID控制器控制器ARB+1RAM地址锁存地址锁
10、存RAMROME5H35HFFH36H37H38H34H33H35H35HFFHMOV A, 35HMOV A, 35H指令编码:指令编码:E535HE535H(3 3)三字节指令)三字节指令 (16(16条条) )p指令指令n第一字节为操作码第一字节为操作码n第二、第三字节为操作数或操作数地址。分为第二、第三字节为操作数或操作数地址。分为4 4类类p1616位数据位数据MOV DPTRMOV DPTR,#26ABH#26ABHp8 8位地址和位地址和8 8位数据位数据MOV 74HMOV 74H,#0FFH#0FFHp8 8位数据和位数据和8 8位地址位地址CJNE ACJNE A,#00#
11、00,60H 60H p1616位地址位地址LCALL 2020HLCALL 2020H3.2 3.2 寻址方式寻址方式p寻找操作数的方式寻找操作数的方式p7 7种:种:n(1 1) 立即寻址立即寻址n(2 2) 直接寻址直接寻址n(3 3) 寄存器寻址寄存器寻址n(4 4) 寄存器间接寻址寄存器间接寻址n(5 5) 变址寻址变址寻址n(6 6) 相对寻址相对寻址n(7 7) 位寻址位寻址寻址方式寻址方式越多越多指令功能就指令功能就越强越强,灵活性,灵活性越大越大(1 1)立即寻址)立即寻址 例例1 MOV A,1 MOV A,3AH3AH 例例2 MOV DPTR,2 MOV DPTR,16
12、38H1638H ;A3AH A3AH ;DPTR1638HDPTR1638HMOV MOV 3AH, A3AH, A3AH16H38HMOV MOV 1638H1638H , DPTR, DPTR(2 2) 直接寻址直接寻址 例例 若(若(30H30H)= 0AAH,= 0AAH,执行指令执行指令MOV AMOV A,30H30H;(A)(30H) (A)(30H) 结果:(结果:(A A)= 0AAH= 0AAH0AAH注意:注意:直接寻址直接寻址可以访问可以访问 : : 内部数据存储器的内部数据存储器的低低 128 128 个字节单元个字节单元特殊功能寄存器特殊功能寄存器特殊功能寄存器特
13、殊功能寄存器只能用只能用直接寻址直接寻址方式进行访问方式进行访问A A、B B、DPTRDPTR?(3 3)寄存器寻址)寄存器寻址 例例 若(若(R0R0)= 0AAH= 0AAH,执行指令,执行指令MOV AMOV A,R0R0;A(R0) A(R0) 结果:结果:(A) = 0AAH(A) = 0AAH指令码为:指令码为:E8H 0AAH注意:注意:p可采用寄存器寻址的寄存器可采用寄存器寻址的寄存器nR0R0R7R7n累加器累加器 A ApINC AINC A; ;寄存器寻址寄存器寻址(机器码(机器码:04H:04H)pINC ACCINC ACC; ;直接寻址(机器码直接寻址(机器码:0
14、5:05E0E0H H)pINC 0E0H INC 0E0H ; ;直接寻址(机器码直接寻址(机器码:05:05E0E0H H)n寄存器寄存器 B BpMUL AB MUL AB 和和 DIV ABDIV AB; ;寄存器寻址寄存器寻址pMOV B, #12HMOV B, #12H ; ;直接寻址(机器码直接寻址(机器码:75:75F0F012H12H)n数据指针数据指针 DPTRDPTRpINC DPTRINC DPTR和和 MOV DPTRMOV DPTR,#1234H#1234H ; ;寄存器寻址寄存器寻址特特有有指指令令(4 4) 寄存器间接寻址寄存器间接寻址p使用规定使用规定n片内(
15、片内(256B256B)RAM RAM 间接用间接用 RiRi(), ,即即pMOV AMOV A,R1 R1 或或 MOV AMOV A,R0R0n片外片外 64KB RAM64KB RAMp间接用间接用 DPTRDPTR,即,即 MOVX AMOVX A,DPTRDPTRp间接用间接用 RiRi,即,即 MOVX AMOVX A,R1R1 或或MOVX AMOVX A,R0R0 此时,此时,高高8 8位位地址由地址由P2P2提供,提供,低低8 8位位地址由地址由RiRi提供提供 例例1 1 若(若(R0R0)=0AAH=0AAH,(,(0AAH0AAH)=5BH=5BH,执行指令,执行指令
16、MOVMOVA A,R0 R0 ;A(R0)A(R0)结果:(结果:(A A)= 5BH= 5BH5BH 例例2 2 MOV DPTR MOV DPTR,#3456H #3456H ;DPTR 3456HDPTR 3456H 若(若(3456H3456H)=99H=99H,则,则MOVX AMOVX A,DPTR DPTR ;A A (DPTRDPTR);(A) = 99H(A) = 99H注意:注意:p寄存器寄存器间接间接寻址,寻址,不能不能用于对用于对 SFR 寻址寻址p堆栈操作(堆栈操作(PUSHPUSH,POPPOP)隐含为)隐含为SPSP间接寻址间接寻址(5 5) 变址寻址变址寻址p
17、3 3条条nMOVMOVC C A A,A+PC A+PC ;A ((A)+(PC)(A)+(PC))nMOVMOVC C A A,A+DPTR A+DPTR ;A ((A)+(DPTR)(A)+(DPTR))nJMP JMP A+DPTR A+DPTR ;PC (A)+(DPTR) (A)+(DPTR)p所用寄存器所用寄存器n基地址寄存器:基地址寄存器:DPTRDPTR、PCPCn累加器累加器A:预先预先存放存放被寻址操作数地址被寻址操作数地址相对相对基地址基地址的的偏移量偏移量p只能只能 访问访问 ROMROM取操作取操作数数获得程序的跳转获得程序的跳转地址地址下一条下一条指令指令的的PC
18、值值 例例1 1 若(若(A A)= 08H= 08H,(,(DPHDPH)= 20H= 20H,(,(DPLDPL)= 00H= 00H;执行:执行:MOVC AMOVC A,A+DPTRA+DPTR执行后:执行后:(A) = 88H(A) = 88H88H 例例22若(若(A A)=30H=30H,(,(1031H1031H)= 20H= 20H执行:执行:地址地址1000H1000H处的指令处的指令 1000H1000H:MOVC AMOVC A,A+PC A+PC 执行后:(执行后:(A A)= 20H= 20H20H 例例33若(若(A A)=08H=08H,(DPTR)=2000H
19、(DPTR)=2000H执行:执行:JMP A+DPTRJMP A+DPTR执行后:执行后:(PCPC)= 2008H= 2008H 程序从程序从 ROM ROM 地址地址 2008H 2008H 处开始执行处开始执行(6 6) 相对寻址相对寻址p操作操作n修改修改PC的值,实现程序的的值,实现程序的n转移的目的地址转移的目的地址p目的地址目的地址 转移指令下条指令地址转移指令下条指令地址( (PCPC的的当前当前值值) ) relrelp目的地址目的地址 转移指令地址转移指令地址 转移指令转移指令字节数字节数 relrelp其中其中relrel 带符号的带符号的8 8位二进制数位二进制数 补
20、码形式(补码形式(128128127127)等价等价等价等价在实际编程中,在实际编程中,“relrel” ” 通常用通常用标号标号代替代替rel 例例 已知已知 (PCPC)=2000H =2000H 执行如下指令执行如下指令地址地址 ORG 2000H ORG 2000H 指令码指令码2000H 2000H 200AH 80H 08H80H 08H2002H 2002H NOP NOP 00H 00H 200AH NOP NOP 00H00H结果:程序转移到结果:程序转移到200A200A处开始继续执行处开始继续执行(7 7) 位寻址位寻址p操作数:操作数:n片内片内 RAMRAM 单元中的
21、某一单元中的某一位位n只给出只给出位地址位地址,而,而不是不是字节地址字节地址p 例例 CLR ACC.0 CLR ACC.0 MOV 30HMOV 30H,C C ; 30H30H为片内为片内RAMRAM中的位地址中的位地址p可位寻址区为:可位寻址区为:n片内片内RAMRAM(共(共1616个字节,个字节,128128个位)个位)p字节地址:字节地址:20H20H2FH2FHp位地址:位地址:00H00H7FH7FH能被能被8 8整除整除的的SFRSFR的相应位地址的相应位地址可位寻址区可位寻址区回顾:片内回顾:片内RAMRAMp工作寄存器区:工作寄存器区:n字节地址:字节地址:00H00H
22、1FH1FHp位寻址区:位寻址区:n字节地址:字节地址:20H20H2FH2FHn位地址为:位地址为:00H00H7FH7FHp数据缓冲区数据缓冲区/ /堆栈区:堆栈区:n字节地址:字节地址:00H00H7FH7FHn一般使用一般使用30H30H7FH7FH可位寻址区可位寻址区回顾:特殊功能寄存器回顾:特殊功能寄存器SFRSFRp占用字节地址:占用字节地址:80H80HFFHFFHp位寻址寄存器:位寻址寄存器:n其字节地址可被其字节地址可被8 8整除整除p专用寄存器:专用寄存器:nA A、B B、PSWPSW、DPTRDPTR、SPSPpI/OI/O接口寄存器:接口寄存器:nP0P0、P1P1、P2P2、P3P3、SBUFSBUF、TMODTMOD、TCONTCON、SCON SCON 位地址的表示方式,位地址的表示方式,4 4种种p 直接使用位地址直接使用位地址nMOV CMOV C,0D5H0D5HpPSWPSW的位的位5 5(位地址(位地址D5HD5H)的状态送进位标志位)的状态送进位标志位p 单元地址加位序号的形式单元地址加位序号的形式nMOV CMOV C,0D0H.50
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑材料追加采购合同模板
- 旅游景区景点场地租赁合同解除协议
- 家庭日常用车个人间租赁协议
- 餐饮行业广告合作经营合同
- 车辆租赁合同解除与车辆保险理赔及保养责任协议
- 高端写字楼配套车位买卖及管理服务合同范本
- 餐饮行业联营合作经营合同
- 财务软件产品保密协议及合作开发合同
- 二年级数学计算题专项练习
- 西北师范大学《第二外语法语专业理论教学》2023-2024学年第二学期期末试卷
- 2025辽宁沈阳副食集团所属企业招聘25人笔试参考题库附带答案详解析集合
- 项目三技术站调车任务3简易驼峰作业60课件
- DB32/T 3891-2020美甲及手足护理服务规范
- 教师职业道德与教育法规
- 2025年保定市中考二模数学试题及答案
- 室内装修工地管理手册
- 旅游产品分销合作协议
- 三大国企面试题及答案
- 无人机设计与架构试题及答案
- 【MOOC期末】《工程流体力学》(大连理工大学)期末考试慕课答案
- 2025-2030工业互联网产业市场深度调研及发展趋势与投资战略研究报告
评论
0/150
提交评论