第2章单片机的指令系统ppt.ppt
《第2章单片机的指令系统ppt.ppt》由会员分享,可在线阅读,更多相关《第2章单片机的指令系统ppt.ppt(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章学习目标 :了解指令及指令系统常识 熟悉指令中常用符号 在理解的基础上牢记7种寻址方式 熟悉各类指令的功能及应用范围 能使用指令完成各种常规任务,第2章 单片机的指令系统,2.1.1指令系统概述,2.1 指令系统概述与寻址方式,1指令 单片机是靠软件和硬件结合起来完成控制功能的,软件的基础就是指令和指令系统。 指令是计算机设计人员预先设计好的用以完成某种操作的命令。 例如用计算机指令来完成10+20的加法运算,用机器代码表示如下: 01110100 00001010 ;把10送累加器A中 00100100 00010100 ;A加20,结果存A中,机器语言指令,用二进制编码表示的,能够被计
2、算机直接识别和执行的语言称为机器语言。它不便于记忆、查错和修改。 用助记符、符号和数字来表示指令的程序语言,称为汇编语言。它与机器语言指令一一对应,便于理解和记忆。上面两条指令用汇编语言可表示为: MOV A, #10 ADD A, #20 查找附录A,可以得到这两条指令的十六进制机器代码如下: 74H 0AH 24H 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条指令: 其指令字节少,单字节指令49条,双字节指令45条,三字节指令17条; 指令执行时间短,单机器周期指令64条,双机器周期指令45条,4机器周期指令2条, 该指令系统还有极为丰富的位操作指令,充分体现了
5、单片机面向控制的特点。,3指令系统中常用符号说明,对于一条汇编语言指令来说,有两个问题要解决: 一是要说明进行什么操作 二是要指出参与操作的数据的值是多少或者到何处取得,以及操作结果放到何处。 寻址方式就是寻找操作数的方法。 在计算机中寻址方式越多,操作数的寻找越容易,程序设计也就越方便。 51系列单片机共有7种寻址方式,分别为立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。 对于两操作数指令,源操作数和目的操作数都有寻址方式,我们下面提到的都是源操作数的寻址方式。,2.1.2 寻址方式,由操作码指出,由寻址方式决定,1立即数寻址 在指令中直接给出参与操作的数据,
6、这种寻址方式称为立即数寻址。这一直接给出的数据称为立即数,立即数前要加上“#”符号,例如: MOV A,#0EH ;A0EH MOV DPTR,#2100H ;DPTR2100H,将8位的立即数0EH送到累加器A,将16位的立即数2100H送到数据指针寄存器DPTR,立即数的高8位21H装入DPH,低8位00H装入DPL。,2寄存器寻址,参与操作的数据由寄存器给出,这种寻址方式称为寄存器寻址。 由于寄存器在CPU的内部,所以采用该寻址方式可以获得较高的运算速度,可用于该寻址方式的寄存器有R0R7、DPTR、A、B。 如:MOV A,R1 ;A (R1) 该指令将R1内的数据传送到累加器A中,源
7、操作数R1和目的操作数均采用了寄存器寻址。 再比如: INC DPTR ;DPTR(DPTR)+1,3直接寻址 在指令中直接给出操作数的地址的寻址方式称为直接寻址。 在该寻址方式中,操作数存放在片内数据存储器中,地址长度为8位。 这种寻址方式可以访问:内部数据RAM低128B(该空间还可以采用寄存器间接寻址)和特殊功能寄存器SFR(该空间只能采用直接寻址)。,例如:在片内RAM60H单元存放一个8位二进制数3CH,执行指令MOV A,60H后,结果为(A)=3CH。如图2-1所示。,4寄存器间接寻址 在指令中以指定寄存器的内容作为操作数地址的寻址方式称为寄存器间接寻址。 这种方式可用于访问内部
8、RAM和外部数据存储器。 能够用于寄存器间接寻址方式的寄存器有:R0、R1、DPTR和SP。 在间接寻址寄存器前加“”表示间接寻址。例如: MOV A,R0 ;A(R0),假定R0中的内容为50H,50H单元内容为45H,图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变址
9、寻址 基址寄存器(DPTR或PC)的内容与变址寄存器(累加器A)的内容相加,其和形成16位地址作为操作数的地址的寻址方式称为变址寻址。 该类寻址方式用于程序存储器的访问,多用于查表程序。 例如: MOVC A,A+DPTR ;A (A)+(DPTR) 设(A)=12H,(DPTR)=02E3H,(02F5H)=1EH,则结果为(A)=1EH,执行情况见图2-3所示。,变址寻址指令只有3条,另外两条是: MOVC A,A+PC JMP A+DPTR,6相对寻址 相对寻址是以程序计数器PC的当前值(是指当前跳转指令的下一条指令的地址)为基准,加上指令中给出的相对偏移量rel以得到程序执行地址的寻址
10、方式。 这种寻址方式的目的是修改PC的值,从而实现程序的转移。 转移的目的地址可参见如下表达式: 目的地址=转移指令地址+转移指令字节数+rel 值得注意的是,偏移量rel有正负之分,其取值范围是-128+127。,其中,操作码80H存放在3000H单元中,54H是设定的相对偏移量rel,存放在3001H单元。指令的执行过程如图2-4所示。,例如:有双字节相对转移指令,指令地址 操作码 操作数 指令 注释 3000H 80 54H SJMP rel ;PC (PC)+2+rel,7位寻址 位寻址是将8位二进制数中的某一位作为操作数,在指令中给出的是位地址,一般用bit表示。 例如: CLR P
11、0 ;将P口的第位清零 位寻址的范围为:,片内RAM区的HF的个单元中的位, 如 MOV C,30H字节地址能被整除的SFR, 如 SETB P0,表寻址方式及寻址空间,2.2 数据传送指令(29条),2.2.1通用传送指令,通用传送指令的助记符为MOV(Move),格式如下: MOV , 此类指令的功能是把源操作数指定的数据传送到目的操作数(目的地址)所指定的存储单元中。MOV指令的传送关系如图2-5所示。,例1 设内部RAM中(50H)=40H,(40H)=10H,P1口作输入口,(P1)=0ABH,问程序执行后各存储器中的数据是什么? MOV R0,#50H ;立即数50H送R0中,(R
12、0)=50H MOV A,R0 ;R0间接寻址,将50H单元内容送A,(A)=40H MOV R1,A ;A送R1,(R1)=40H MOV B,R1 ;R1间接寻址,将40H单元内容送B,(B)=10H MOV R1,P1 ;将P1内容送40H单元,(40H)=0ABH MOV P2,P1 ;将P1内容送P2 ,(P2)=0ABH执行结果: (R0)=50H,(A)=40H,(R1)=40H (B)=10H,(P1)=0ABH,(40H)=0ABH (P2)=0ABH,任何不符合格式要求的“指令”都是不合法的。,这类指令用于访问片外RAM或扩展的I/O口。1读写片外RAM指令MOVX (1)
13、用DPTR进行间接寻址的指令读: MOVX A, DPTR ; A (DPTR)写: MOVX DPTR, A ; (DPTR) A DPTR为16位数据指针,该指令可以寻址外部RAM的64KB范围(0000H0FFFFH),地址的低8位由P0口输出,高8位由P2口输出,数据通过P0口输入/输出。,2.2.2 特殊传送指令,(2)用Ri进行间接寻址的指令 读:MOVX A, Ri ; (A)(Ri) 写:MOVX Ri, A ; (Ri) A 指令可寻址范围: 当片外RAM小于或等于256个单元,用Ri间接寻址进行数据传送时,8位地址线足够使用。 当片外RAM单元较多时,8位地址线不够用,此时
14、低8位地址在R0或R1中,P0口分时作低8位地址线和数据线;高8位地址由P2口提供,因此P2口应预先设置。 若设计循环程序,则Ri被加到0或减到0时必须考虑对P2口高8位地址进位或借位的影响。,例2 把片外RAM的36H单元中的数据送到片外RAM的1200H单元。分析(36H)(1200H)程序如下: MOV R1,#36H MOVX A ,R1 MOV DPTR,#1200H MOVX DPTR, A下面的程序可以实现吗? MOV DPTR, #1200H MOV R1,#36H MOV DPTR,R1注意:片外RAM之间不能直接传送数据,必须经过累加器A,2.查表指令MOVC MOVC A
15、,A+DPTR ;A(A)+(DPTR) MOVC A,A+PC ;A(A)+(PC) 这两条指令主要用于查表,可以完成从程序存储器中取得数据并送入累加器A的功能。 (1) 第一条指令以DPTR为基址寄存器,查表时DPTR用于存放表格的起始地址。表格起始地址可以设置在64KB程序存储器中的任何位置。 (2)第二条指令以PC为基址寄存器,因A为8位无符号数,故该指令的查找范围是从PC当前值开始的255个地址单元内。 若(DPTR)=3000H,(A)=60H,执行指令“MOVC A,A+DPTR”后,将程序存储器3060H单元的内容送A。,例3 已知累加器A中有一个09范围内的数,请用查表法编程
16、求出该数的平方值。设平方表表头地址为1000H。方法1以DPTR为基址寄存器 MOV DPTR,#1000H ;表头地址 MOVC A,A+DPTR ;查表求出平方值送A若原(A)=3,查表后(A)=9。方法2以PC为基址寄存器 ORG 0FFBH 0FFBH ADD A,#data ;加修正量,此例data=02H 0FFDH MOVC A,A+PC ;查表 0FFEH SJMP $ ;暂停,1000H DB 01001H DB 11002H DB 4 1009H DB 81 END 修正量=表头地址PC当前值=1000H0FFEH=02H所以data=02H(SJMP指令2字节)。 查表指
17、令和被查表格通常在同一页内(页内地址00H0FFH即0255),例如,若(R1)=16H,(A)=28H,执行“XCH A,R1”后,(A)=16H,(R1)=28H,3.数据交换指令 交换类指令完成的传送是双向的,是两个字节间或两个半字节间的双向交换。 特点是只能与累加器A进行交换。字节交换 XCH A,Rn ;(A)(Rn) XCH A,direct ;(A)(direct) XCH A,Ri ;(A)(Ri)功能:字节数据交换,实现3种寻址操作数内容与A中内容的互换。,半字节交换 XCHD A,Ri ;(A30)(Ri)30) SWAP A ;(A30)(A74) 例如,若(R1)=50
18、H,(50H)=74H,(A)=26H。执行指令“XCHD A,R1”后,(A)=24H,(50)=76H。 再如,若(A)=38H,执行指令“SWAP A”后,(A)=83H。,4.堆栈操作指令(PUSH 、POP) 堆栈操作指令只有两条: 入栈指令用于保护片内某个单元的内容, 出栈指令用于恢复片内某个单元的内容。 通常入栈指令和出栈指令是成对出现的。入栈: PUSH direct ;SP(SP)+1,(SP) (direct)出栈: POP direct ;direct (SP),SP (SP)1 入栈操作:首先(SP)+1,然后写入数据;出栈操作:首先读出数据,然后(SP)1。,图2-
19、6 堆栈存入/取出数据的操作,如图2-6所示,在堆栈的原始状态下执行一条“PUSH ACC”后,堆栈的变化过程如图2-6(b);在堆栈的原始状态下执行一条“POP ACC”后,堆栈的变化过程如图2-6 (c),例4 设(60H)=X,(70H)=Y,试用堆栈指令实现60H和70H单元内容的互换。 MOV SP,#50H ;设栈底 PUSH 60H ;51H(60H),X压入51H单元 PUSH 70H ;52H(70H),Y压入52H单元 POP 60H ;60H(52H),Y弹出进入60H单元 POP 70H ;70H(51H),X弹出进入70H单元想一想 用数据交换指令如何实现60H和70
20、H单元内容的互换?,2.3 算术运算指令(24条),算术运算指令可以完成加、减、乘、除四则运算以及加1、减1和二-十进制调整操作。 这类指令多与累加器A有关,A常作为目的操作数,即指令运算结果存放在A中。同时它也能充当源操作数。 这类指令大多影响标志位,因而分析指令运算结果和对标志位的影响是本小节的重点。具体影响见表2-3,表2-3 算术运算指令对标志位的影响,说明: 1 .“”表示对应的指令操作影响该标志位;“0”表示相应的指令操作对该标志位清0;“”表示相应的指令操作不影响该标志。 2. 累加器加1(INC A)和减1(DEC A)指令仅影响P标志。,1.不带CY位的加法指令格式:ADD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 指令系统 ppt
限制150内