本章学习目标 了解指令及指令系统常识 熟悉指令中常用符

上传人:ldj****22 文档编号:51819186 上传时间:2018-08-16 格式:PPT 页数:91 大小:852KB
返回 下载 相关 举报
本章学习目标 了解指令及指令系统常识 熟悉指令中常用符_第1页
第1页 / 共91页
本章学习目标 了解指令及指令系统常识 熟悉指令中常用符_第2页
第2页 / 共91页
本章学习目标 了解指令及指令系统常识 熟悉指令中常用符_第3页
第3页 / 共91页
本章学习目标 了解指令及指令系统常识 熟悉指令中常用符_第4页
第4页 / 共91页
本章学习目标 了解指令及指令系统常识 熟悉指令中常用符_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《本章学习目标 了解指令及指令系统常识 熟悉指令中常用符》由会员分享,可在线阅读,更多相关《本章学习目标 了解指令及指令系统常识 熟悉指令中常用符(91页珍藏版)》请在金锄头文库上搜索。

1、 本章学习目标 :n了解指令及指令系统常识 n熟悉指令中常用符号 n在理解的基础上牢记7种寻址方式 n熟悉各类指令的功能及应用范围 n能使用指令完成各种常规任务 第2章 单片机的指令系统2.1.1指令系统概述 2.1 指令系统概述与寻址方式 1指令单片机是靠软件和硬件结合起来完成控制功能的,软 件的基础就是指令和指令系统。指令是计算机设计人员预先设计好的用以完成某种操 作的命令。例如用计算机指令来完成10+20的加法运算,用机器 代码表示如下:01110100 00001010 ;把10送累加器A中00100100 00010100 ;A加20,结果存A中 什么是指令?机器语言指令用二进制编码

2、表示的,能够被计算机直接识别和执行的语言称为机器语言。它不便于记忆、查错和修改。用助记符、符号和数字来表示指令的程序语言,称为汇编语言。它与机器语言指令一一对应,便于理解和记忆。上面 两条指令用汇编语言可表示为:MOV A, #10ADD A, #20查找附录A,可以得到这两条指令的十六进制机器代码如下:74H 0AH24H 14H 什么是机器语言?机器语言是计算机唯一能够识别和执行的语言,因而 我们编写的汇编语言程序必须通过翻译将其转换为机器 语言才能被计算机执行,这一翻译过程称为汇编。汇编语言是一种面向机器的语言,它不能在不同类型 的计算机上互相移植;高级语言是独立于机器的,即用高级语言编

3、写的程序 可以方便地移植到不同的单片机上。针对单片机的主要 有C(C51)语言和PLM语言,本教材我们只学习汇编语言。因汇编语言编写程序时 是面向机器的,结合单片机的硬件资源来学习汇编语言 ,对初学者来说是最合适不过的了。下面我们给出典型 的汇编语言指令的书写格式: 标号: 操作码 操作数1,操作数2,操作数3;注释 NEXT: MOV A, R0 ;A(R0)合法字符举例:LOOP,NEXT_1,START非法字符举例:2SUM,S+L,ADD,DB方括号内的字段可以省略标号是一个名字,用来标明指令的地址,由16个字符组成,首字符必须是字母,后面可跟数字和字母字符,也可以是下划线 ,但系统保

4、留字不能作标号,如操作码等。MOV是操作码,它表示指令的性质和功能,此处 其功能是将R0中的内容送到累加器A中,A是数据传送的目的地,称为目的操作数R0是数据的来源,称为源操作数2指令系统一台计算机的CPU所能执行的全部指令的集合称为这个 CPU的指令系统。指令系统是开发和生产厂商定义的,如要 使用其单片机,用户就必须了解和遵循这些指令标准,要 掌握某种(类)单片机,指令系统的学习是必须的。80C51共有111条指令: l 其指令字节少,单字节指令49条,双字节指令45条,三 字节指令17条; l 指令执行时间短,单机器周期指令64条,双机器周期指 令45条,4机器周期指令2条, l 该指令系

5、统还有极为丰富的位操作指令,充分体现了单 片机面向控制的特点。Rn当前选选中的工作寄存器组组区的8个寄存器R0R7(n=07)之一Ri当前选选中的工作寄存器组组区中的寄存器R0或R1(i=0,1)direct8位片内RAM单单元的直接地址。包括特殊功能寄存器地址#data指令中的8位立即数#data1 6指令中的16位立即数addr11用于ACALL和AJMP指令中的11位目的地址,该该地址必须须放在与下条指令第一个字 节节同在一个2KB的ROM空间间之中addr16用于LCALL和LJMP指令中的16位目的地址,该该地址在64KB的ROM空间间内rel补码补码 形式的8位地址偏移量。用于所有

6、的条件转转移和SJMP指令中,以下一条指令 的第一个字节节地址为为基准,其值值在-128+127范围围内寄存器间间接寻寻址或变变址寻寻址的前缀缀bit内部RAM或SFR中的可直接寻寻址位C布尔处处理器的累加器也就是进进位/借位标标志CY ()某地址单单元或寄存器中的内容()以单单元或寄存器中的内容为为地址间间接寻寻址单单元的内容将箭头头右边边的内容送入箭头头左边边的单单元3指令系统中常用符号说明 对于一条汇编语言指令来说,有两个问题要解决: u 一是要说明进行什么操作 u 二是要指出参与操作的数据的值是多少或者到何处取得,以及操作结果放到何处。寻址方式就是寻找操作数的方法。在计算机中寻址方式越

7、多,操作数的寻找越容易,程序设计也就越方便。51系列单片机共有7种寻址方式,分别为立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、 相对寻址、位寻址。对于两操作数指令,源操作数和目的操作数都有寻址方式,我们下面提到的都是源操作数的寻址方式。 2.1.2 寻址方式由操作码指出由寻址方式决定1立即数寻址在指令中直接给出参与操作的数据,这种寻址方式称 为立即数寻址。这一直接给出的数据称为立即数,立即 数前要加上“#”符号,例如:MOV A,#0EH ;A0EHMOV DPTR,#2100H ;DPTR2100H将8位的立即数0EH送 到累加器A将16位的立即数2100H送到数据指针寄存器

8、 DPTR,立即数的高8位21H装入DPH,低8位 00H装入DPL。2寄存器寻址参与操作的数据由寄存器给出,这种寻址方式称为寄 存器寻址。由于寄存器在CPU的内部,所以采用该寻址方式可以获 得较高的运算速度,可用于该寻址方式的寄存器有R0R7 、DPTR、A、B。如:MOV A,R1 ;A (R1)该指令将R1内的数据传送到累加器A中,源操作数R1和 目的操作数均采用了寄存器寻址。再比如: INC DPTR ;DPTR(DPTR)+13直接寻址 u 在指令中直接给出操作数的地址的寻址方式称为直接寻址。 u 在该寻址方式中,操作数存放在片内数据存储器中,地址 长度为8位。 u 这种寻址方式可以

9、访问:内部数据RAM低128B(该空间还 可以采用寄存器间接寻址)和特殊功能寄存器SFR(该空间只 能采用直接寻址)。 例如:在片内RAM60H单元 存放一个8位二进制数3CH,执行 指令MOV A,60H后,结果为( A)=3CH。如图2-1所示。4寄存器间接寻址 u 在指令中以指定寄存器的内容作为操作数地址的寻址方 式称为寄存器间接寻址。 u 这种方式可用于访问内部RAM和外部数据存储器。 u 能够用于寄存器间接寻址方式的寄存器有:R0、R1、 DPTR和SP。 u 在间接寻址寄存器前加“”表示间接寻址。 例如: MOV A,R0 ;A(R0)假定R0中的内容为50H,50H单 元内容为4

10、5H,图2-2给出了寄存 器间接寻址方式的执行过程。寄存器间接寻址的寻址范围:(1)片内128B的RAM,用R0,R1作间址寄存器 ,如MOV A,R0;(2)片外64KB的数据存储器,用DPTR作间址 寄存器,如MOVX A,DPTR;(3)堆栈区域,用SP作间址寄存器,如PUSH ACC;(4)片外256B数据存储器,用R0,R1作间址 寄存器,如MOVX A,R0; 5变址寻址 u 基址寄存器(DPTR或PC)的内容与变址寄存器(累加器A)的内容相加,其和形成16位地址作为操作数的地 址的寻址方式称为变址寻址。 u 该类寻址方式用于程序存储器的访问,多用于查表 程序。例如: MOVC A

11、,A+DPTR ;A (A)+(DPTR)设(A)=12H,(DPTR)=02E3H,(02F5H)=1EH,则结果 为(A)=1EH,执行情况见图2-3所示。 变址寻址指令只有3条, 另外两条是:MOVC A,A+PCJMP A+DPTR6相对寻址 u 相对寻址是以程序计数器PC的当前值(是指当前跳转指令的下一条指令的地址)为基准,加上指令中给出的相对偏移量rel以得到程序执行地址的寻址方式。u 这种寻址方式的目的是修改PC的值,从而实现程序的转移。u 转移的目的地址可参见如下表达式:目的地址=转移指令地址+转移指令字节数+relu 值得注意的是,偏移量rel有正负之分,其取值范围是-128

12、+127。其中,操作码80H存放在 3000H单元中,54H是设定的相 对偏移量rel,存放在3001H单 元。指令的执行过程如图2-4所 示。 例如:有双字节相对转移指令指令地址 操作码 操作数 指令 注释3000H 80 54H SJMP rel ;PC (PC)+2+rel7位寻址u 位寻址是将8位二进制数中的某一位作为操作数,在指令中给出的是位地址,一般用bit表示。例如: CLR P0 ;将P口的第位清零u 位寻址的范围为: 片内RAM区的HF的个单元中的位,如 MOV C,30H 字节地址能被整除的SFR,如 SETB P0表 寻址方式及寻址空间 寻寻址方式描述方法寻寻址空间间立即

13、数寻寻址#data程序存储储器寄存器寻寻址R0R7、A、DPTR工作寄存器直接寻寻址direct内部RAM和SFR寄存器间间接寻寻址R0、R1、SP内部数据存储储器R0、R1、 DPTR外部数据存储储器变变址寻寻址A+DPTR、A+PC程序存储储器相对寻对寻 址PC+rel程序存储储器位寻寻址Bit位地址空间间2.2 数据传送指令(29条) 2.2.1通用传送指令通用传送指令的助记符为MOV(Move),格式如下:MOV ,此类指令的功能是把源操作数指定的数据传送到目的 操作数(目的地址)所指定的存储单元中。MOV指令的传 送关系如图2-5所示。例1 设内部RAM中(50H)=40H,(40H

14、)=10H,P1口作输入口, (P1)=0ABH,问程序执行后各存储器中的数据是什么?MOV R0,#50H ;立即数50H送R0中,(R0)=50HMOV A,R0 ;R0间接寻址,将50H单元内容送A,(A)=40HMOV R1,A ;A送R1,(R1)=40HMOV B,R1 ;R1间接寻址,将40H单元内容送B,(B)=10HMOV R1,P1 ;将P1内容送40H单元,(40H)=0ABHMOV P2,P1 ;将P1内容送P2 ,(P2)=0ABH 执行结果: (R0)=50H,(A)=40H,(R1)=40H(B)=10H,(P1)=0ABH,(40H)=0ABH(P2)=0ABH

15、 任何不符合格式要求的“指令”都是不合法的。这类指令用于访问片外RAM或扩展的I/O口。1读写片外RAM指令MOVX (1)用DPTR进行间接寻址的指令 读: MOVX A, DPTR ; A (DPTR) 写: MOVX DPTR, A ; (DPTR) ADPTR为16位数据指针,该指令可以寻址外部RAM 的64KB范围(0000H0FFFFH),地址的低8位由P0口 输出,高8位由P2口输出,数据通过P0口输入/输出 。 2.2.2 特殊传送指令(2)用Ri进行间接寻址的指令读:MOVX A, Ri ; (A)(Ri) 写:MOVX Ri, A ; (Ri) A指令可寻址范围: u 当片外RAM小于或等于256个单元,用Ri间接寻址进 行数据传送时,8位地址线足够使用。 u 当片外RAM单元较多时,8位地址线不够用,此时低8 位地址在R0或R1中,P0口分时作低8位地址线和数据线 ;高8位地址由P2口提供,因此P2口应预先设置。 u 若设计循环程序,则Ri被加到0或减到0时必须考虑 对P2口高8位地址进位或借位的影响。例2 把片外RAM的36H单元中的数据送到片外RAM的 1200H单元。 分析(36H)(1200H) 程序如下:MOV R1,#36HMOVX A ,R1MOV DPTR,#1200HMOVX DPTR, A 下面的程序可以实现吗?MOV DPTR, #

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号