大学单片机原理及其接口技术课程第3章-指令系统

上传人:j****9 文档编号:57312382 上传时间:2018-10-20 格式:PPT 页数:132 大小:2.19MB
返回 下载 相关 举报
大学单片机原理及其接口技术课程第3章-指令系统_第1页
第1页 / 共132页
大学单片机原理及其接口技术课程第3章-指令系统_第2页
第2页 / 共132页
大学单片机原理及其接口技术课程第3章-指令系统_第3页
第3页 / 共132页
大学单片机原理及其接口技术课程第3章-指令系统_第4页
第4页 / 共132页
大学单片机原理及其接口技术课程第3章-指令系统_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《大学单片机原理及其接口技术课程第3章-指令系统》由会员分享,可在线阅读,更多相关《大学单片机原理及其接口技术课程第3章-指令系统(132页珍藏版)》请在金锄头文库上搜索。

1、第3章:51单片机指令系统,本章基本要求: 指令的概念 51-单片机的寻址方式* 51-单片机指令系统*, 一台计算机所能执行的全部的指令集合,3.1 指令系统概述,指令是计算机中具有特定功能的操作命令, 程序与程序设计,按预定要求编排的指令序列称为程序。编排的过程称为程序设计, 指令系统,设计一种CPU,一般从设计指令系统开始,因而,一种机器的指令系统是机器本身固有的,决定了机器的性能,用户无法改变,必须继承、学习、掌握、应用,机器语言:,二进制代码,是机器唯一能直接识别、执行的语言。,汇编语言:,为了记忆和阅读方便,制造商对指令系统每一条指令,都给出了指令助记符。用助记符,操作数,标号编写

2、的程序称为汇编语言源程序。,一、汇编语言,汇编语言必须翻译成机器语言才能被机器执行, 程序设计语言,汇编语言:,高级语言:,符号语言:,完成由汇编语言到机器代码的过程叫汇编,汇编的方法有两种:自动汇编、手工汇编,由机器代码到汇编语言的过程叫反汇编,汇编语言 源程序,机器语言,汇编,反汇编,交叉 汇编,二、汇编语言的格式, 标号: 操作码 操作数 ;注释,其中除操作码部分是必须的,括号内的区段是任选项。,1、标号,标号是该指令的符号地址,可根据需要设定,必须以字母开始,以“ :”结束,长度不超过8个字符,系统中的保留字符不能作标号, 如: SFR名、ADD等,标号可被其他语句的操作数直接引用 源

3、程序中,一个标号只能定义一个语句,不能相重,保持一义性,一个汇编语句分为四个区段,操作码,操作码,操作码,2、操作码,由指令系统的助记符、伪指令助记符组成。,操作码是每一句汇编语言所必须的,操作码和操作数之间用空格分开,3、操作数,可为二进制数 (B) , 十进制数 (D) ,十六进制数 (H),数字大于9,则数字应以“0”开头,可以是操作数地址、立即数、标号、表达式如 M+3,目的操作数和源操作数之间用“,”分开,可以是寄存器名如A、B、R、DPTR,M,标号,被定义过的,Binary,Decimal,Hexadecimal,指出该语句的操作性质,4、注释,以“ ;”开头,是程序员对指令操作

4、的解释, 以帮助阅读、理解程序的意义,可有可无,汇编时对这部分不予处理,不译成任何机器代码,可用英语或某种简洁的方式解释指令,或打印 程序清单,3.1 概述,3.1.1 指令格式指令由操作码和操作数两部分组成。操作码:描述指令的功能。操作数:描述指令操作的对象,这个对象有时用直接数据,有时用操作数的地址来给出。有些指令是单操作数。有些指令是双操作数,取名为源操作数和目的操作数。,3.1 概述,3.1.2 指令的三种表示形式 三种形式为:二进制形式、十六进制形式、助记符形式。 二进制形式:可以直接为CPU识别和执行的形式。 十六进制形式:为二进制形式的压缩形式。 助记符形式:也叫汇编语句形式,是

5、用英文缩写描述指令功能的形式。其特点是:便于记忆和使用,在执行时必须翻译成二进制形式。,3.1 概述,3.1.3 指令的长度51单片机的指令(111条)分为单字节、双字节、三字节三种长度。1、单字节指令:有49条,可进一步分为无操作数、有操作数两种。2、双字节指令:有46条,前一字节存放操作码,后一字节存放操作数。3、三字节指令:有16条,前一字节存放操作码,后两字节存放操作数。一般讲,指令长度越短,执行速度越快。,3.1 概述,3.1.4 指令的分类通常,指令是按照功能来分类的。1、数据传送指令:28条,用于片内RAM之间、片内RAM与片外RAM之间进行数据传送。传送时区分源操作数和目的操作

6、数的不同。2、算术运算指令:24条,用于对两个操作数进行加、减、乘、除运算。该指令的一个操作数,一般放在累加器A中。3、逻辑操作和移位指令:25条,用于对指定操作数进行逻辑运算和移位运算。,3.1 概述,4、控制转移指令:17条,用于控制程序的流程和执行的方向。其操作是以改变PC的值来实现。5、位操作指令:17条,也叫布尔操作指令。分为位传送、位置位、位复位、位运算、位控制转移等等。这类指令的操作数是以位为对象。,3.1 概述,3.1.5 指令系统综述指令系统:某种CPU的指令的集合。他与CPU的硬件电路密切相关,学习指令时必须注意到这一背景。不同的CPU具有不同的指令系统。掌握指令的三要素:

7、指令功能、指令状态、指令长度。 1、指令系统中常用符号(附录C): Rn:工作寄存器,可以是R0R7之一。 #data:8位立即数,是00HFFH之一。,3.1 概述, #data16:16位立即数,是0000HFFFFH之一。 direct:8位直接地址,是00HFFH之一,也可以是SFR中的一个,对于SFR可直接用其名称来代替其直接地址。 Ri:表示寄存器间接寻址。 DPTR:使用16位DPTR间接寻址,用于对外部RAM/ROM寻址。 bit:位地址 addr11/16:11/16位目标地址。 rel:8位带符号地址偏移量。 $:当前指令地址。,3.1 概述,2、指令对标志位的影响:指令系

8、统中的算术类指令,位移类指令、逻辑运算类指令等的运算会对标志寄存器PSW中的某些位有影响。这些对标志位的影响是这类指令的重要特征,也是使用条件转移指令的依据。需要仔细掌握应用。,3.2 寻址方式,所谓寻址方式:是指指令寻找操作数的方法。51单片机有7种寻址方式:寄存器寻址、直接寻址、立即寻址、寄存器间接寻址、寄存器变址寻址、相对寻址、位寻址。,3.2 MCS-51指令的寻址方式,用何种方式寻找指令的操作数 或指令的执行地址,1、立即寻址,寻址空间:,指令形式:,程序存储器,指令的操作数存放在程序存储器中,操作数紧跟操作码后面,立即寻址:,在 哪 里 ?,用何种方式寻找,OP #data,指令的

9、寻址方式:,指令的寻址方式:,MOV A,# 30H,例1:,30H,MOV DPTR,# 8000H,例2:,80H,00H,2、直接寻址,寻址空间:,指令的三种形式:,直接寻址,直接寻址是访问 SFR 的唯一方法,00H7FH 80HFFH,CPU内部,直接 间接,“与”,MOV A, 30H,例1:, ,ANL 30H,#30H,例2:, ,“结果”,3、寄存器寻址,寻址空间:,指令的三种形式:,当前选定的寄存器内容就是实际操作数,MOV A,R3,例1:,ADD A,R3,例2:,寄存器寻址:,操作数隐含,操作数显然,4、寄存器间接寻址,寻址空间:,指令的三种形式:,寄存器间接寻址:,

10、MOV R0,A,例1:,;累加器传送指令, ,MOVX A,DPTR,例2:, ,“读”,“读”,5、基址寄存器加变址寄存器间接寻址,基址寄存器加变址寄存器间接寻址:,以DPTR或PC作基址寄存器,A作变址寄存器 两者相加形成操作数地址。,寻址空间:,程序存储器(A+DPTR、A+PC),指令形式:,MOVC A,A+DPTR,例:,设(A)= 0FH (DPTR)= 2400H, ,“读”,“读”,MOVC A,A+DPTR,6、相对寻址,程序存储器,寻址空间:,指令的三种形式:,相对寻址,以当前PC值为基准地址,加上指令的偏移量“rel”,结果为目标地址。rel为有符号补码数,范围:-1

11、28+127,一般为双字节或三字节指令,寻址指令 执行地址 目标地址,JNZ rel,例:,; 累加器A不等零则转移设:rel=23H,(PC)=2002H,rel=23H,修正后转移 目标地址D (PC) = 2025H,(PC) = 2 0 0 2 H,Rel = 2 3 H,),0,0,5,2,0,2,H,D =,(PC)=2112H,rel=F2H,修正后转移 目标地址 D (PC) = 2104H,例:DJNZ R7,rel ;(R7) 1不为“0”则转,(PC) = 2 1 1 2 H,Rel = F 2 H,),F,F,4,0,1,2,H,D =,7、位寻址,寻址空间:,片内RA

12、M的20H2FH字节地址 位地址:00H7FH 共128位,SFR中12个能被8整除的字节地址 位地址 共93位,以访问触发器的方式,对内部RAM、SFR 的位地址空间进行访问,称为位寻址。位地址 用于布尔指令。,寻址方式与相应的寻址空间,小结:,3.3 数据传送指令,数据传送类指令共29条,它是指令系统中最活跃、使用最多的一类指令。这类指令的操作是把源操作数传送到目的操作数,即指令执行后目的操作数改为源操作数, 而源操作数保持不变。若要求在进行数据传送时,不丢失目的操作数,则可以用交换型传送指令。数据传送类指令不影响进位标志CY、半进位标志AC和溢出标志OV,但当传送或交换数据后影响累加器A

13、的值时,奇偶标志P的值则按A的值重新设定。,数据传送类(29条),用到的指令助记符有5种:,片内传送 MOV,片外传送 MOVX,查表传送 MOVC,累加器交换 XCH、XCHD、SWAP,堆栈操作 PUSH、POP,1、MOV类传送指令,格式: MOV 目的字节,源字节,功能:把源字节内容送目的字节,源字节内容不变,以累加器A为目的字节的传送:, 立即数送累加器,MOV A,#data,;立即数#data送累加器A, 寄存器内容送累加器,MOV A,Rn (n=07), 内RAM或SFR内容送累加器,MOV A,direct,;Rn的内容送累加器A,;以direct为地址的单元的内容送累加器

14、A, 内RAM内容送累加器,MOV A,Ri (i=0、1),单字节指令,机器码相应为E6H、E7H,;以Ri内容为地址单元中的数送累加器A,以Rn为目的字节的传送:, 立即数送寄存器,MOV Rn,#data (n=07),;立即数#data送累加器 Rn, 累加器内容送寄存器Rn,MOV Rn ,A (n=07),;累加器A的内容送Rn,单字节指令,机器码相应为F8HFFH, 内RAM或SFR内容送寄存器Rn,MOV Rn ,direct (n=07),双字节指令,;以direct为地址的单元的内容送寄存器Rn, 立即数送内RAM或SFR,MOV direct,#data,;立即数#dat

15、a送以direct为地址的单元,三字节指令, 累加器内容送内RAM或SFR,MOV direct,A,;累加器送以direct为地址的单元,二字节指令,直接地址为目的字节的传送:, 寄存器内容送内RAM或SFR,MOV direct,Rn (n=07),;寄存器Rn内容送以direct为地址的单元,二字节指令, 内RAM或SFR之间直接传送,MOV direct1, direct2,;内RAM或SFR任意两个单元之间传送数据,三字节指令, 内RAM数据送内RAM或SFR,MOV direct, Ri(i=0、1),二字节指令,;以Ri内容为地址单元中的数送内RAM或SFR, 立即数送内RAM,MOV Ri ,#data (i=0、1),;立即数#data送以Ri内容为地址的单元,二字节指令, 累加器内容送内RAM,MOV Ri ,A (i=0、1),;累加器内容送以Ri内容为地址的单元,单字节指令, 内RAM或SFR数据送内RAM,MOV Ri ,direct (i=0、1),二字节指令,;以direct为地址的单元内容送Ri内容为地址的单元, 16位立即数传送指令,MOV DPTR,#data16,;16位立即数送DPTR中,设置地址指针。,

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

当前位置:首页 > 生活休闲 > 科普知识

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