MCS-51单片机指令系统-3.2寻址方式.ppt_第1页
MCS-51单片机指令系统-3.2寻址方式.ppt_第2页
MCS-51单片机指令系统-3.2寻址方式.ppt_第3页
MCS-51单片机指令系统-3.2寻址方式.ppt_第4页
MCS-51单片机指令系统-3.2寻址方式.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

第3章 MCS - 51单片机指令系统,3.1 指令系统简介 3.2 寻址方式,本章内容,3.1 指令系统简介 3.2 寻址方式 3.3 MCS-51的指令集 3.4 汇编语言程序的基本形式 3.5 汇编语言程序的基本结构,程序框架,ORG 0000H LJMP MAIN ;跳转至主程序 ORG 0003H LJMP INT0_INT ;跳转至外部中断0的中断服务程序 ORG 000BH LJMP T0_INT ;跳转至定时器0的中断服务程序 ORG 0013H LJMP INT1_INT ;跳转至外部中断1的中断服务程序 ORG 0030H MAIN: ;开始写主程序 END,中断入口地址,主程序开始,软件编程环境,3.1 指令系统简介,指令:规定计算机进行某种操作的命令 指令系统:指令集合 不同系列的机器,其指令系统不同 指令编码 机器语言指令:二进制数 汇编语言指令:助记符(英文缩写),3.1.1 MCS-51单片机指令,111条 分类 按机器周期数 单、双、四 按指令功能 数据传送、算术运算、逻辑运算及移位、控制转移、位操作 按指令的字长分 单字节、双字节、三字节,字节少的指令占用存储单元少,执行速度快,3.1.2 指令的格式,标号: 操作码助记符 目的操作数,源操作数 ;注释,NEXT: MOV A, #0A7H ;立即数0A7H送累加器A,常用的指令说明符号,3.1.3 指令的字节,(1)单字节指令 操作码和操作数加起来只有一个字节 (2)双字节指令 操作码和操作数各占一个字节 (3)三字节指令 第一字节为操作码 第二、第三字节为操作数或操作数地址,(1)单字节指令 (49条),无操作数单字节指令 指令中只有操作码字段,操作数隐含在操作码中 例: INC A ; 指令编码为 04H 含有操作数寄存器号的单字节指令 指令码由操作码字段和指示操作数所在寄存器号的字段组成 例: MOV A,Rn ; 指令编码为 E8HEFH,PC,IR,ID,控制器,AR,+1,RAM地址锁存,RAM,ROM,04H,INC A 指令编码:04H,(2)双字节指令 (46条),指令 操作码字节在前; 在后的操作数字节可以是立即数,也可以是操作数所在片内RAM的地址。 例: MOV A,#data ; 指令编码为 74H data MOV A,dir ; 指令编码为 E5H dir,PC,IR,ID,控制器,AR,+1,RAM地址锁存,RAM,ROM,E5H,35H,FFH,36H,37H,38H,34H,33H,35H,35H,FFH,MOV A, 35H 指令编码:E535H,(3)三字节指令 (16条),指令 第一字节为操作码 第二、第三字节为操作数或操作数地址。分为4类 16位数据 MOV DPTR,#26ABH 8位地址和8位数据 MOV 74H,#0FFH 8位数据和8位地址 CJNE A,#00,60H 16位地址 LCALL 2020H,3.2 寻址方式,寻找操作数的方式 7种: (1) 立即寻址 (2) 直接寻址 (3) 寄存器寻址 (4) 寄存器间接寻址 (5) 变址寻址 (6) 相对寻址 (7) 位寻址,寻址方式越多 指令功能就越强,灵活性越大,(1)立即寻址,例1 MOV A,3AH 例2 MOV DPTR,1638H ;A3AH ;DPTR1638H,MOV 3AH, A,3AH,16H,38H,MOV 1638H , DPTR,(2) 直接寻址,例 若(30H)= 0AAH,执行指令 MOV A,30H ;(A)(30H) 结果:(A)= 0AAH,0AAH,注意:,直接寻址可以访问 : 内部数据存储器的低 128 个字节单元 特殊功能寄存器,特殊功能寄存器 只能用 直接寻址方式进行访问,A、B、DPTR?,(3)寄存器寻址,例 若(R0)= 0AAH,执行指令 MOV A,R0 ;A(R0) 结果:(A) = 0AAH,指令码为:E8H,0AAH,注意:,可采用寄存器寻址的寄存器 R0R7 累加器 A INC A ;寄存器寻址(机器码:04H) INC ACC ;直接寻址(机器码:05E0H) INC 0E0H ;直接寻址(机器码:05E0H) 寄存器 B MUL AB 和 DIV AB;寄存器寻址 MOV B, #12H ;直接寻址(机器码:75F012H) 数据指针 DPTR INC DPTR 和 MOV DPTR,#1234H ;寄存器寻址,(4) 寄存器间接寻址,使用规定 片内(256B)RAM 间接用 Ri(i = 0 或 1),即 MOV A,R1 或 MOV A,R0 片外 64KB RAM 间接用 DPTR,即 MOVX A,DPTR 间接用 Ri,即 MOVX A,R1 或 MOVX A,R0 此时,高8位地址由P2提供,低8位地址由Ri提供,例1 若(R0)=0AAH,(0AAH)=5BH,执行指令 MOV A,R0 ;A(R0) 结果:(A)= 5BH,5BH,例2 MOV DPTR,#3456H ;DPTR 3456H 若(3456H)=99H,则 MOVX A,DPTR ;A (DPTR) ;(A) = 99H,注意:,寄存器间接寻址,不能用于对 SFR 寻址 片内RAM和片外RAM之间不能直接传递数据 堆栈操作(PUSH,POP)隐含为SP间接寻址,(5) 变址寻址,3条 MOVC A,A+PC ;A ((A)+(PC)) MOVC A,A+DPTR ;A ((A)+(DPTR)) JMP A+DPTR ;PC (A)+(DPTR) 所用寄存器 基地址寄存器:DPTR、PC 累加器A:预先存放被寻址操作数地址相对基地址的偏移量 只能 访问 ROM,下一条指令的PC值,例1 若(A)= 08H,(DPH)= 20H,(DPL)= 00H; 执行: MOVC A,A+DPTR 执行后: (A) = 88H,88H,例2 若(A)=30H,(1031H)= 20H 执行:地址1000H处的指令 1000H:MOVC A,A+PC 执行后:(A)= 20H,20H,例3 若(A)=08H,(DPTR)=2000H 执行: JMP A+DPTR 执行后: (PC)= 2008H 程序从 ROM 地址 2008H 处开始执行,(6) 相对寻址,操作 修改PC的值,实现程序的分支转移 转移的目的地址 目的地址 转移指令下条指令地址(PC的当前值) rel 目的地址 转移指令地址 转移指令字节数 rel 其中rel 带符号的8位二进制数 补码形式(128127),等价,等价,在实际编程中, “rel” 通常用标号代替,例 已知 (PC)=2000H 执行如下指令 地址 ORG 2000H 指令码 2000H SJMP 200AH 80H 08H 2002H NOP 00H 200AH NOP 00H 结果:程序转移到200A处开始继续执行,(7) 位寻址,操作数: 片内 RAM 单元中的某一位 只给出位地址,而不是字节地址 例 CLR ACC.0 MOV 30H,C ; 30H为片内RAM中的位地址 可位寻址区为: 片内RAM(共16个字节,128个位) 字节地址:20H2FH 位地址:00H7FH 字节地址能被8整除的SFR的相应位地址,可位寻址区 回顾:片内RAM,工作寄存器区: 字节地址:00H1FH 位寻址区: 字节地址:20H2FH 位地址为:00H7FH 数据缓冲区/堆栈区: 字节地址:00H7FH 一般使用30H7FH,可位寻址区 回顾:特殊功能寄存器SFR,占用字节地址:80HFFH 位寻址寄存器: 其字节地址可被8整除 专用寄存器: A、B、PSW、DPTR、SP I/O接口寄存器: P0、P1、P2、P3、SBUF、TMOD、TCON、SCON ,位地址的表示方式,4种, 直接使用位地址 MOV C,0D5H PSW的位5(位地址D5H)的状态送进位标志位 单元地址加位序号的形式 MOV C,0D0H.5 PSW(单元地址0D0H)的位5(位地址D5H)的状态送

温馨提示

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

评论

0/150

提交评论