第3章 mcs-51单片机指令系统1_第1页
第3章 mcs-51单片机指令系统1_第2页
第3章 mcs-51单片机指令系统1_第3页
第3章 mcs-51单片机指令系统1_第4页
第3章 mcs-51单片机指令系统1_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

第 3章 MCS-51单片机指令系统3.1 MCS-51指令系统概述3.2 寻址方式3.3 分类指令下一页MCS-51单片机指令系统有如下特点:( 1)指令执行时间快。( 2)指令短,约有一半的指令为单字节指令。( 3)用一条指令即可实现 2个一字节的相乘或相除。( 4)具有丰富的位操作指令。 ( 5)可直接用传送指令实现端口的输入输出操作。上一页3.1 MCS-51指令系统的概述 3.1.1 指令分类3.1.2 指令格式3.1.3 指令描述符号介绍返回本章首页3.1.1 指令分类 按指令功能 , MCS-51指令系统分为数据传递与交换、算术运算、逻辑运算、程序转移、布尔处理操作、 CPU控制等 6类。 布尔处理操作类指令又称位操作指令。返回本节3.1.2 指令格式 在 MCS-51指令中,一般指令主要由操作码、操作数组成。 指令应具有以下功能:( 1)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。( 2)操作数指明操作的数本身或者是操作数所在的地址。( 3)指定操作结果存放的地址。返回本节3.1.3 指令描述符号介绍Rn 当前选中的寄存器区中的 8个工作寄存器 R0 R7( n=0 7)。Ri 当前选中的寄存器区中的 2个工作寄存器R0、 R1( i=0, 1)。direct8 位的内部数据存储器单元中的地址。#data 包含在指令中的 8位常数。#data16 包含在指令中的 16位常数。addr1616 位目的地址。addr1111 位目的地址。下一页rel8 位带符号的偏移字节,简称偏移量。DPTR 数据指针,可用作 16位地址寄存器。bit 内部 RAM或专用寄存器中的直接寻址位。A 累加器。B 专用寄存器,用于乘法和除法指令中。C 进位标志或进位位,或布尔处理机中的累加器 。下一页 间址寄存器或基址寄存器的前缀,如Ri, DPTR。/ 位操作数的前缀,表示对该位操作数取反,如 /bit。 片内 RAM的直接地址或寄存器。() 由 寻址的单元中的内容。 箭头左边的内容被箭头右边的内容所代替。返回本节3.2 寻址方式 3.2.1 立即寻址3.2.2 直接寻址3.2.3 寄存器寻址3.2.4 寄存器间接寻址3.2.5 变址寻址3.2.6 相对寻址3.2.7 位寻址返回本章首页3.2.1 立即寻址 指令中跟在操作码以后的第一个字节就是实际的操作数 。操作数前面加有 #号。例如: MOV A, #70H ; A#70H MOV DPTR, #1600H ; DPTR#1600HMOV 30H, #40H ; 30H单元 #40 H 返回本节M 程序存储空间 PC 0 1 1 1 0 1 0 0PC+1 0 1 1 1 0 0 0 0A70HM 程序存储空间1 0 0 1 0 0 0 00 0 0 1 0 1 1 00 0 0 0 0 0 0 0PCPC+1PC+2高位立即数低位立即数DPH DPLRAM2F 30 40M 程序存储空间0 1 1 1 0 1 0 10 0 1 1 0 0 0 00 1 0 0 0 0 0 0PCPC+1PC+2返回3.2.2 直接寻址 指令中直接给出操作数地址的寻址方式,能进行直接寻址的存储空间有 SFR寄存器和内部数据 RAM。例如: MOV PSW, # 20H ; PSW#20H , PSW为直接寻址寄存器的符号地址。MOV A, 30H ; A30H 内部 RAM单元中的内容, 30H为直接给出的内部 RAM的地址。下一页ANL 70H , #48H把 RAM中 70H单元内容同 48H相 “ 与 ” 结果 70H单元 中 程序存储空间 128内 RAMPC 0 1 0 1 0 0 1 1 70HPC+1 0 1 1 1 0 0 0 0 PC+2 0 1 0 0 1 0 0 0 ALU返回本节3.2.3 寄存器寻址 以通用寄存器的内容为操作数的寻址方式。通用寄存器指 A、 B 、 DPTR以及 R0 R7 。例如 : CLR A ; A0INC DPTR ; DPTRDPTR+1ADD R5, # 20H ; R5#20H+R5返回本节3.2.4 寄存器间接寻址 以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。间接寻址的存储器空间包括内部数据 RAM和外部数据 RAM。 能用于寄存器间接寻址的寄存器有 R0, R1,DPTR, SP。 其中 R0、 R1必须是工作寄存器组中的寄存器。 SP仅用于堆栈操作。下一页例如: MOV R0, A ; 内部 RAM(R0)A其指令操作过程示意图 如图 所示。又如: MOVX A, R1; A 外部RAM(P2R1)其指令操作过程示意图 如图 所示。再如: MOVX DPTR, A; 外部RAM(DPTR)A其指令操作过程示意图 如图 所示。返回本节片内 RAM30HR034HA30H 34H图 MOV R0, A间接寻址示意图返回片外RAM34HP245HA3410H 45H10HR1片外RAM2000HDPTR30HA2000H 30H图 MOVX A, R1间接寻址示意图 图 MOVX DPTR, A间接寻址示意图返回3.2.5 变址寻址 变址寻址只能对程序存储器中数据进行操作。由于程序存储器是只读的,因此变址寻址只有读操作而无写操作,在指令符号上采用MOVC的形式( 如图所示 )。例如: MOVC A, A+DPTR; A (A+DPTR)又如, MOVC A, A+PC ; A ( A+PC) 这条指令与上条指令不同的是,基址寄存器 是PC。返回本节图 3-4 变址寻址示意图程序存储器2000HDPTR64H(10H)A2010H 64H10H 2000H返回3.2.6 相对寻址 以当前程序计数器 PC的内容为基础,加上指令给出的一字节补码数(偏移量)形成新的PC值的寻址方式。 相对寻址用于修改 PC值,主要用于实现程序的分支转移。例如, SJMP 08H ; PCPC+2+08H指令操作示意图 如图 所示 。返回本节程序存储器(2000H)200AHSJMP200AH08H 2000H+208HPC2000H图 3-5 相对寻址示意图返回3.2.7 位寻址 位寻址只能对有位地址的单元作位寻址操作。 位寻址其实是一种直接寻址方式,不过其地址是位地址。例如 : SETB 10H ; 将 10H位置 1若 22H单元中存放着数据 40H, 22H单元的 D0位的位地址为 10H, 执行上述指令后( 22H) =41H。又如: MOV 32H, C ; 32H 进位 位 CORL C , 32H ; CC 32H返回本节3.3 分类指令 3.3.1 数据传送类指令 3.3.2 算术运算类指令 3.3.3 逻辑运算与循环类指令 3.3.4 程序转移类指令 3.3.5 调用子程序及返回指令 3.3.6 位操作指令 3.3.7 空操作指令返回本章首页3.3.1 数据传送类指令 数据传送类指令共 28条,是将源操作数送到目的操作数。指令执行后,源操作数不变,目的操作数被源操作数取代。数据传送类指令用到的助记符 有 MOV、 MOVX、 MOVC、 XCH、 XCHD、 SWAP 、 PUSH、 POP8种。 源操作数可采用寄存器、寄存器间接、直接、立即、变址 5种寻址方式寻址,目的操作数可以采用寄存器、寄存器间接、直接寻址 3种寻址方式。 MCS-51单片机片内数据传送途径如图所示 。下一页直接地址direct累加器A直接地址direct间接地址Ri寄存器Rn立即数#data寄存器DPTR图 MCS-51单片机片内数据传送图返回1以 A为目的操作数MOV A, Rn ; A RnMOV A, direct ; A ( direct)MOV A, Ri ; A ( Ri)MOV A, #data ; A #data下一页2以 Rn为目的操作数MOV Rn, A ; Rn AMOV Rn, direct ; Rn ( direct)MOV Rn, #data; Rn #data下一页3以直接地址为目的操作数MOV Ri, A ;( Ri) AMOV Ri, direct ;( Ri) ( direct)MOV Ri, #data ;( Ri)

温馨提示

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

评论

0/150

提交评论