51单片机指令系统寻址方式_第1页
51单片机指令系统寻址方式_第2页
51单片机指令系统寻址方式_第3页
51单片机指令系统寻址方式_第4页
51单片机指令系统寻址方式_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

第 3 章 MCS - 51单片机指令系统 第 3章 MCS - 51单片机指令系统 3.1 单片机指令系统概述 3.2 寻址方式 3.3 分类指令第 3 章 MCS - 51单片机指令系统 MCS-51单片机指令系统的特点: ( 1)指令执行快。 ( 2)指令短,约有一半的指令为单字节指令。 ( 3)用一条指令即可实现 2个一字节的相乘或相除。 ( 4)具有丰富的位操作指令。 ( 5)可直接用传送指令实现端口的输入输出操作。3.1 单片机指令系统概述第 3 章 MCS - 51单片机指令系统 在 MCS-51指令中,一般指令主要由操作码、操作数组成。 指令应具有以下功能: ( 1)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。 ( 2)操作数指明操作的数本身或者是操作数所在的地址。 ( 3)指定操作结果存放的地址。指令格式第 3 章 MCS - 51单片机指令系统 1. 单字节指令 单字节指令格式由 8位二进制编码表示 , 例如 : CLR AE4H2. 双字节指令 双字节指令格式由两个字节组成 , 操作码和操作数 , 例如: MOV A, 10H74H 10H 3. 三字节指令 三字节指令格式中 , 第一个字节为操作码 , 后两个字节为操作数 , 例如 : MOV 40H, 30H75H 40H 30H 第 3 章 MCS - 51单片机指令系统 一条汇编语言指令中最多包含 4 个区段 , 如下所示 : 标号 : 操作码 操作数 ;注释 4 个区段之间要用分隔符分开 : 标号与操作码之间用 “: ”隔开 , 操作码与操作数之间用空格隔开 , 操作数与注释之间用 “;”隔开 , 如果操作数有两个以上 , 则在 操作数之间要用逗号 “,”隔开 (乘法指令和除法指令除外 )。 第 3 章 MCS - 51单片机指令系统 指令描述符号介绍 Rn 当前选中的寄存器区中的 8个工作寄存器 R0R7( n=0 7)。 Ri 当前选中的寄存器区中的 2个工作寄存器 R0、R1( i=0, 1)。 direct8 位的内部数据存储器单元中的地址。 #data 包含在指令中的 8位常数。 #data16 包含在指令中的 16位常数。 addr1616 位目的地址。 addr1111 位目的地址。第 3 章 MCS - 51单片机指令系统 rel8 位带符号的偏移字节,简称偏移量。 DPTR 数据指针,可用作 16位地址寄存器。 bit 内部 RAM或专用寄存器中的直接寻址位。 A 累加器。 B 专用寄存器,用于乘法和除法指令中。 C 进位标志或进位位,或布尔处理机中的累加器。第 3 章 MCS - 51单片机指令系统 间址寄存器或基址寄存器的前缀,如 Ri,DPTR。 / 位操作数的前缀,表示对该位操作数取反,如/bit。 片内 RAM的直接地址或寄存器。 () 由 寻址的单元中的内容。 箭头左边的内容被箭头右边的内容所代替。第 3 章 MCS - 51单片机指令系统 3.2 寻址方式 所谓寻址方式 , 就是寻找操作数地址的方式 , 在用汇编语言编程时 , 数据的存放、传送、 运算都要通过指令来完成。 编程者必须自始至终都要十分清楚操作数的位置 , 以及如何将它们传送到适当的寄存器去参与运算。每一种计算机都具有多种寻址方式。寻址方式的多少是反映指令系统优 劣的主要指标之一。 第 3 章 MCS - 51单片机指令系统 在 MCS -51单片机指令系统中 , 有以下 7种寻址方式 : ( 1) 立即寻址 ;( 2) 直接寻址 ;( 3) 寄存器寻址 ;( 4) 寄存器间接寻址 ;( 5) 基址寄存器加变址寄存器间接寻址 ;( 6) 相对寻址 ;( 7) 位寻址。 第 3 章 MCS - 51单片机指令系统 1. 立即寻址 立即寻址方式是指操作数包含在指令字节中。 跟在指令操作码后面的数就是参加运算的数 , 该操作数称为立即数。 立即数有一字节和二字节两种可能 , 例如指令 : MOV A, 3AHMOV DPTR, 0DFFFH第 3 章 MCS - 51单片机指令系统 2. 直接寻址 在指令中直接给出操作数的地址 , 这种寻址方式就属于直接寻址方式。在这种方式中 , 指令的操作数部分直接是操作数的地址。 在 MCS -51 单片机指令系统中 , 直接寻址方式中可以访问 3 种存储器空间 : (1) 内部数据存储器的低 128 个字节单元( 00H 7FH)。 (2) 特殊功能寄存器。 特殊功能寄存器只能用直接寻址方式进行访问。 (3) 位地址空间。 第 3 章 MCS - 51单片机指令系统 MOV A, 52H ;把片内 RAM字节地址 52H单元的内 容送累加器 A中。MOV 52H, A ;把 A的内容传送给片内 RAM的52H 单元中。MOV 50H, 60H ;把片内 RAM字节地址 60H单元的内 容送到 50H单元中。MOV IE, #40H ;把立即数 40H送到中断允许寄存器 IE。 IE为专用功能寄存器,其字节地址为 0A8H。该指令等价于MOV 0A8H, #40H。INC 60H ;将地址 60H单元中的内容自加 1。第 3 章 MCS - 51单片机指令系统 3. 寄存器寻址 在该寻址方式中 , 参加操作的数存放在寄存器里。寄存器包括 8个工作寄存器 R0 R7, 累加器 A, 寄存器 B、 数据指针 DPTR和布尔处理器的位累加器 C。MOV A, Rn ; A( Rn) 其中 n为 07之一, Rn是工作寄存器。MOV Rn, A ; Rn( A) MOV B, A ; B( A)第 3 章 MCS - 51单片机指令系统 4. 寄存器间接寻址 在这种寻址方式中 , 寄存器的内容为操作数的地址。 寄存器间接寻址只能使用寄存器 R0、 R1 作为地址指针 ,寻址内部RAM区的数据 ; 当访问外部 RAM时 , 可使用 R0、 R1及 DPTR作为地址指针。寄存器间接寻址符号为 “”, 例如 : 第 3 章 MCS - 51单片机指令系统 例如:MOV R0, #60H ; R060HMOV A, R0 ; A (R0)MOV A , R1 ; A (R1) 例如: MOV DPTR, #3456H ;DPTR3456HMOVX A, DPTR ; A ( DPTR)是把 DPTR寄存器所指的那个外部数据存储器(RAM)的内容传送给 A,假设( 3456H) =99H,指令运行后( A) =99H。第 3 章 MCS - 51单片机指令系统 5. 基址寄存器加变址寄存器间接寻址 这种寻址方式用于访问程序存储器中的数据表格 , 它以基址寄存器 DPTR或 PC的内容为基本地址 , 加上变址寄存器A的内容作为操作数的地址 , 例如 : MOVC A, DPTR+AJMP A+DPTRMOVC A, PC+A 第 3 章 MCS - 51单片机指令系统 6. 相对寻址 在 MCS -51 指令系统中设有转移指令 , 分为直接转移和相对转移指令 , 在相对转移指令中采用相对寻址方式。这种寻址方式是以 PC的内容为基本地址 , 加上指令中给定的偏移量作为转移地址。指令中给出的偏移量是一个 8 位带符号的常数 , 可正可负 , 其范围为 128 +127。SJMP 08H ; PC 转移指令地址 +2+08H第 3 章 MCS - 51单片机指令系统 7. 位寻址该种寻址方式中 , 操作数是内部 RAM单元中某一位的信息。 SETB TR0 ; TR01CLR 00H ; (00H)0MOV C, 57H ;将 57H位地址的内容传送到 位累加器 C中ANL C, 5FH ;将 5FH位状态与进位位 C相与,结果在 C中 第 3 章 MCS - 51单片机指令系统 3.3 指令系统3.3.1 指令分类 MCS-51指令系统有 42种助记符,代表了 33种功能,指令助记符与各种可能的寻址方式相结合,共构成 111条指令。按指令的功能, MCS-51指令系统可分为下列 5类:( 1)数据传送类指令( 29条)( 2)算术运算类指令( 24条)( 3)逻辑运算及移位类指令( 24条)( 4)位操作类指令( 17条)( 5)控制转移类指令( 17条)第 3 章 MCS - 51单片机指令系统 3.3.2 数据传送类指令 数据传送类指令一般的操作是把源操作数传送到指令所指定的目标地址。指令执行后,源操作数保持不变,目的操作数为原操作数所替代 数据传送类指令用到的助记符有: MOV, MOVX, MOVC, XCH, XCHD, PUSH, POP, SWAP。 格式: MOV 目的操作数 , 源操作数 功能:目的操作数 (源操作数中的数据) 源操作数可以是: A、 Rn、 direct、 Ri、 #data 目的操作数可以是: A、 Rn、 direct、 Ri 第 3 章 MCS - 51单片机指令系统 1 以累加器为目的操作数的内部数据传送指令 MOV A, Rn ; A( Rn)MOV A, direct ; A( direct)MOV A, Ri ; A( Ri)MOV A, #data ; Adata第 3 章 MCS - 51单片机指令系统 2 数据传送到工作寄存器 Rn的指令 MOV Rn, A ; Rn( A)MOV Rn, direct ; Rn( direct)MOV Rn, #data ; Rndata第 3 章 MCS - 51单片机指令系统 3数据传送到内部 RAM单元或特殊功能寄存器 SFR的指令 MOV direct, A ; direct( A)MOV direct, Rn ; direct( Rn)MOV direct1, direct2 ; direct ( direct2)MOV direct, Ri ; direct( Ri)MOV direct, #data ; direct#dataMOV Ri, A ;( Ri( )MOV Ri, direct ;( Ri) ( direct)MOV Ri, #data ;( Ri) dataMOV DPTR, #data16 ; DPTRdata16第 3 章 MCS - 51单片机指令系统 片内数据 RAM及寄存器的数据传送指令MOV、 PUSH和 POP共 18条。第 3 章 MCS - 51单片机指令系统 4 累加器 A与外部数据存储器之间的传送指令片外数据存储器数据传送指令 MOVX共 4条。 MOVX A, DPTR ; A( DPTR)MOVX A, Ri ; A( Ri)MOVX DPTR, A ;( DPTR) AMOVX Ri, A ;( Ri) A第 3 章 MCS - 51单片机指令系统 5程序存储器内容送累加器 MOVC A, A+PC MOVC A, A+DPTR 程序存储器查表指令 MOVC共 2条第 3 章 MCS - 51单片机指令系统 6堆栈操作 所谓堆栈是在片内 RAM中按 “先进后出,后进先出 ”原则设置的专用存储区。数据的进栈出栈由指针 SP统一管理。堆栈的操作有如下两条专用指令: PUSH direct; SP ( SP+1),( SP) ( direct) POP direct;( direct) ( SP), SP SP-1 PUSH是进栈

温馨提示

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

评论

0/150

提交评论