单片机学习 第3章

上传人:woxinch****an2018 文档编号:56948039 上传时间:2018-10-17 格式:PPT 页数:120 大小:2.51MB
返回 下载 相关 举报
单片机学习 第3章_第1页
第1页 / 共120页
单片机学习 第3章_第2页
第2页 / 共120页
单片机学习 第3章_第3页
第3页 / 共120页
单片机学习 第3章_第4页
第4页 / 共120页
单片机学习 第3章_第5页
第5页 / 共120页
点击查看更多>>
资源描述

《单片机学习 第3章》由会员分享,可在线阅读,更多相关《单片机学习 第3章(120页珍藏版)》请在金锄头文库上搜索。

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

2、作数,标号编写的程序称为汇编语言源程序。,一、汇编语言,汇编语言必须翻译成机器语言才能被机器执行, 程序设计语言,汇编语言:,高级语言:,符号语言:,上页,下页,回目录,如P55,图3-1所示。全是机器码,完成由汇编语言到机器代码的过程叫汇编,汇编的方法有两种:自动汇编、手工汇编,由机器代码到汇编语言的过程叫反汇编,汇编语言 源程序,机器语言 (二进制代码),汇编,反汇编,上页,下页,回目录,MCS-51 交叉 汇编,二、汇编语言的格式, 标号: 操作码 操作数 ;注释,其中除操作码部分是必须的,括号内的区段是任选项。,1、标号,标号是该指令的符号地址,可根据需要设定,必须以字母开始,以“ :

3、”结束,长度不超过8个字符,系统中的保留字符不能作标号, 如: SFR名、ADD等,标号可被其他语句的操作数直接引用 源程序中,一个标号只能定义一个语句,不能相重,保持一义性,上页,下页,回目录,一个汇编语句分为四个区段,操作码,操作码,操作码,2、操作码,由指令系统的助记符、伪指令助记符组成。,操作码是每一句汇编语言所必须的,操作码和操作数之间用空格分开,3、操作数,可为二进制数 (B) , 十进制数 (D) ,十六进制数 (H),数字大于9,则数字应以“0”开头,如:#0AFH,可以是操作数地址、立即数、标号、表达式如 M+3,目的操作数和源操作数之间用“,”分开,可以是寄存器名如A、B、

4、R、DPTR,M,标号,被定义过的,上页,下页,回目录,Binary,Decimal,Hexadecimal,指出该语句的操作性质,4、注释,以“ ;”开头,是程序员对指令操作的解释, 以帮助阅读、理解程序的意义,可有可无,汇编时对这部分不予处理,不译成任何机器代码,可用英语或某种简洁的方式解释指令,或打印 程序清单,上页,下页,回目录,三、伪指令,1、起点指令 ORG,格式:,ORG H,功能:,给程序起始地址或数据块的起始地址赋值,例:,用法:,一般出现在每段源程序或数据块的开始 一个源程序可多次出现ORG指令,上页,下页,回目录,首地址,首地址,2、结束命令 END,格式:END,功能:

5、汇编程序结束标志,附在一个源程序的结尾 一个源程序只能出现一次END指令,3、定义字节命令 DB,格式:,功能:,标号:DB 字节常数或字符串 (8位),定义字节的内容,汇编程序把DB定义的字节依次存入标号开始的存储单元,用法:,有定义的内存单元地址,项或项表,上页,下页,回目录,例:,伪指令ORG 定义了数据块TAB的起始地址为8000H 伪指令DB定义了8000H8003单元的内容依次为:,(8000H)= 45H,(8001H)= 49H,(8002H)= 35H,(8003H)= 41H,(8004H)= 05H,TAB,TAB1,(1) 由 ORG定义,(2) 跟在其他源程序之后,上

6、页,下页,回目录,4、定义字命令DW,格式:,功能:,标号:DW 字或字表,定义若干个字(双字节),例:,ORG 8000H,TAB:DW 7234H,8AH,10,(8000H)= 72H,(8001H)= 34H,(8002H)= 00H,(8003H)= 8AH,(8005H)= 0AH,汇编后:,(8004H)= 00H,上页,下页,回目录,5、定义空间命令 DS,格式:,功能:,标号:DS 数据或字符及表达式,例:,(8008H)=30H,(8009H)=8AH,从指定单元地址开始,由数据或字符及表达式的值来定义应保留的单元数,备用,即:8000H8007H单元保留备用,定义空间,上

7、页,下页,回目录,6、等值命令 EQU,格式:,字符名称 EQU 数据或汇编符号,功能:,将一个数据或汇编符号赋予标号段规定的字符名称,例:,;AA与R6等值,上页,下页,回目录,例:,A10 EQU 10 DELY EQU 07EBHMOV A,A10LCALL DELY,;A10 = 10,;DELY = 07EBH,;转向入口地址 07EBH,使用EQU指令,须先赋值后使用,不能反之,上页,下页,回目录,7、数据地址赋值等值命令 DATA,格式:,字符名称 DATA 数据或表达式,功能:,此命令把数据/代码地址赋予标号段所规定的字符名称。定义的字符名称可先使用后定义,INDEXJ DAT

8、A 8389H,;INDEXJ这个字符名称的地址为8389H,例:,上页,下页,回目录,等价于,EQU与 DATA的区别,(1) DATA与EQU相似,但DATA定义的字符名称,可先使用后定义 ,EQU则不能,(2) EQU指令可把汇编符号赋给字符名称,DATA则不能,(3) DATA可把表达式的值赋给字符名称,EQU则不能,DATA常在程序中定义数据地址 EQU常在程序中定义字符数据,上页,下页,回目录,8、位地址符号命令 BIT,格式:,字符名称 BIT 位地址,功能:,把位地址赋予标号段的字符名称,;P1.0, P2.0赋予位地址字符名称A1、A2,在编程时可以直接把A1、A2 当成位地

9、址使用,上页,下页,回目录,汇编程序的操作,分两次扫描(汇编),第一次扫描(汇编),检查语法结构,对源程序 中的符号、表达式、标号 进行定义,处理伪指令, 建立符号表,上页,下页,回目录,显示 ERROR,并提示行号,显示 ERROR,并提示行号,修改!,修改!,第二次扫描(汇编),汇编成目标代码和汇编程序 清单,可执行的代码(机器码),三、MCS-51指令系统的特点,1、执行速度快,存储效率高,MCS-51指令系统共有111条指令,按字节分,单字节指令49条,双字节指令45条,三字节指令17条,按周期分,单周期指令64条,双周期指令45条,四周期指令2条,设时钟频率为12MHz,则指令执行的

10、时间分别为:,1s 58,2s 40,4s 2,占居空间,占居时间,上页,下页,回目录,硬件由221位构成,2、指令易掌握,功能强,3、适合于控制、智能仪表,布尔处理机,布尔运算器ALU,布尔累加器CY(PSW.7),布尔RAM区 共128位,布尔I/O口,P0P3口每位都可做布尔I/O口,布尔指令子集,17条布尔指令,上页,下页,回目录,四、寻址方式(7种), 立即寻址, 直接寻址, 寄存器寻址, 寄存器间接寻址, 基址寄存器加变址寄存器间接寻址, 相对寻址, 位寻址,上页,下页,回目录, 数据传送(29条), 算术运算(24条), 逻辑运算(24条), 控制转移(17条), 布尔处理(17

11、条),上页,下页,回目录,介绍描述指令符号的意义,当前选中寄存器区的8个工作寄存器(R0R7),Rn,Ri,direct,- 8位内部RAM单元地址 00H7FH, 专用特殊功能寄存器SFR的地址80HFFH, 立即数(8位),#data,#data16, 立即数(16位),n=07,i=0、1,上页,下页,回目录,P61,addr16, 16位目的地址,用于LCALL、LJMP指令地址范围64KB ROM空间,addr11, 11位目的地址,用于ACALL、AJMP指令地址范围2KB ROM空间,rel,DPTR, 数据地址指针,可做16位间址寄存器,bit, 内RAM或SFR中的直接位寻址

12、,上页,下页,回目录,A, 累加器,B, 专用寄存器,用于MUL和DIV指令,C, 位累加器 ( PSW.7 ),进位/借位标志, 间址或基址寄存器前缀如 Ri , A+DPTR,/, 位操作的前缀,表示对该位操作数取反,(X), X中的内容,((X)), 由X寻址的单元中的内容,箭头左边的内容被箭头右边的内容所代替,DPTR , A+PC,上页,下页,回目录,3.2 MCS-51指令的寻址方式,用何种方式寻找指令的操作数 或指令的执行地址,1、立即寻址,寻址空间:,指令形式:,程序存储器,指令的操作数存放在程序存储器中,操作数紧跟操作码OP后面,立即寻址:,在 哪 里 ?,用何种方式寻找,O

13、P #data,Immediate Addressing,上页,下页,回目录,指令的寻址方式:,指令的寻址方式:,MOV A,# 30H,例1:,30H,MOV DPTR,# 8000H,例2:,80H,00H,上页,下页,回目录,2、直接寻址,寻址空间:,指令的三种形式:,直接寻址,直接寻址是访问 SFR 的唯一方法,Direct Addressing,上页,下页,回目录,00H7FH 80HFFH,CPU内部,直接 间接,“与”,上页,下页,回目录,MOV A, 30H,例1:, ,ANL 30H,#30H,例2:, ,“结果”,3、寄存器寻址,寻址空间:,指令的三种形式:,当前选定的寄存

14、器内容就是实际操作数,MOV A,R3,例1:,ADD A,R3,例2:,寄存器寻址:,Register Addressing,操作数隐含,操作数显然,隐含寻址,上页,下页,回目录,4、寄存器间接寻址,寻址空间:,指令的三种形式:,寄存器间接寻址:,Register Indirect Addressing,上页,下页,回目录,MOV R0,A,例1:,;累加器传送指令, ,MOVX A,DPTR,例2:, ,“读”,“读”,上页,下页,回目录,5、基址寄存器加变址寄存器间接寻址,基址寄存器加变址寄存器间接寻址:,以DPTR或PC作基址寄存器,A作变址寄存器 两者相加形成操作数地址。,寻址空间:

15、,程序存储器(A+DPTR、A+PC),指令形式:,上页,下页,回目录,MOVC A,A+DPTR,例:,设(A)= 0FH (DPTR)= 2400H, ,“读”,“读”,MOVC A,A+DPTR,上页,下页,回目录,6、相对寻址,程序存储器,寻址空间:,指令的三种形式:,相对寻址,以当前PC值为基准地址,加上指令的偏移量“rel”,结果为目标地址。rel为有符号补码数,范围:-128+127,一般为双字节或三字节指令,Relative Addressing,上页,下页,回目录,寻址指令 执行地址 目标地址,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”则转,

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

当前位置:首页 > 中学教育 > 高中教育

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