单片机不挂科-2-单片机指令.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《单片机不挂科-2-单片机指令.pdf》由会员分享,可在线阅读,更多相关《单片机不挂科-2-单片机指令.pdf(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机指令系统 不挂科 单片机 第二讲 不挂科 3大模块11道题目 单片机 汇编语言介绍模块1 指令寻址方式模块2 指令分类介绍模块3 单片机 指令系统 2.单片机指令系统不挂科 单片机 指令分类 指令格式 小节1 小节2 伪指令小节3 汇编语言介绍 1.汇编语言介绍不挂科 单片机 2.单片机指令系统 不挂科 单片机 1.汇编语言介绍2.单片机指令系统 指令格式小节2 伪指令小节3 汇编语言介绍 指令分类小节1 1.指令分类 指令分类 不挂科 单片机 1.汇编语言介绍2.单片机指令系统 指令是规定计算机基本操作的语句或命令。 按指令所占字节数划分: 按指令执行时间划分: 单机器周期(12个振荡
2、周期)64条 四机器周期(48个振荡周期)2条 双机器周期(24个振荡周期)45条 单字节指令,有49条 双字节指令,有45条 三字节指令,有17条 1.指令分类 指令分类 不挂科 单片机 1.汇编语言介绍2.单片机指令系统 按指令功能划分: 数据传送类指令(29条) 算术运算类指令(24条) 逻辑运算及移位类指令(24条) 控制转移类指令(17条) 位操作类指令(17条) 不挂科 单片机 1.汇编语言介绍2.单片机指令系统 指令分类小节1 伪指令小节3 指令格式小节2 汇编语言介绍 2.指令格式 指令格式 不挂科 单片机 1.汇编语言介绍2.单片机指令系统 指令一般分为两部分:操作码和操作数
3、 操作码:规定指令进行什么操作。 操作数:表示指令操作的对象,可以是数或是数据所在地址,但最终对象都是数据。 汇编语言格式为:标号: 操作码助记符 目的操作数, 源操作数 ;注释 例:MAIN: MOV A , #20H ; # 通用格式:助记符 , 传送指令的约定:从右向左传送数据,是将源操作数送到目的操作数。 指令执行后,源操作数不变,目的操作数被源操作数取代。 direct:8位的内部数据存储器单元中的地址,可以是内部RAM单元地址或专用寄存器地址。 2.指令格式 描述符 不挂科 单片机 1.汇编语言介绍2.单片机指令系统 例:75H、0A5H、P1 Rn:当前选中的寄存器组中的8个工作
4、寄存器R0R7(n=07)。 Ri:当前选中的寄存器组中的可作为间接寻址寄存器使用的2个工作寄存器R0、R1。 例:#75H、#80H、#0A5H#data:包含在指令中的8位立即数。 例:#2480H、 #0D256H#data16:包含在指令中的16位立即数。 2.指令格式 描述符 不挂科 单片机 1.汇编语言介绍2.单片机指令系统 addr16:16位目的地址。 用于长转移指令中,能转移到64KB程序存储器地址空间的任何地方。 addr11:11位目的地址。 目的地址应与下一条指令第一个字节在同一个2KB程序存储器的地址空间之内。 rel:8位带符号的偏移字节,简称偏移量。 偏移量相对于
5、下一条指令的第一个字节计算,在-128+127范围内取值。 注意:若十六进制的操作数以字符AF中的某个开头时,则需要在 #0FH:表示十六进制立即数#12 :表示十进制立即数 #00001010B:表示二进制立即数 例: 它前面加一个“0”,以便在汇编时把它和字符AF区别开来。 不挂科 单片机 1.汇编语言介绍2.单片机指令系统 伪指令小节3 汇编语言介绍 指令分类小节1 指令格式小节2 伪指令介绍 如果不用ORG规定,则汇编得到的目标程序将从0000H开始。 不挂科 单片机 3.伪指令1.汇编语言介绍2.单片机指令系统 假如ORG规定了标号MAIN代表地址2000H,即目标程序的第一条指令从
6、2000H开始。 ORG: 指令地址源程序 ORG 2000H MAIN: MOV A, R0 例: 1起始伪指令Origin, 指明程序和数据块起始地址。 2000H 2002H MOV R0, #30H 伪指令介绍 不挂科 单片机 3.伪指令1.汇编语言介绍2.单片机指令系统 注意:在一个源程序中只能存在一条END命令,并且只能位于程序的后面。 END: 汇编结束伪指令。 例:START: END 2 伪指令介绍 不挂科 单片机 3.伪指令1.汇编语言介绍2.单片机指令系统 赋值命令EQU(EQUate) 该命令用于给字符名称赋值。赋值后,其值在整个程序中有效。 命令格式为:EQU 其中可
7、以是常数、地址、标号或表达式,其值为8位或16位二进制数。 X1 EQU 2000H X2 EQU 0FH MOV DPTR, #X1 ADD A, #X2 例: 赋值以后的字符名称既可以做地址使用,也可以做立即数使用。 3 MAIN: 伪指令介绍 不挂科 单片机 3.伪指令1.汇编语言介绍2.单片机指令系统 该命令用于从指令的地址开始,在程序存储器的连续单元中定义字节数据。 命令格式为: DB 可以是1字节常数或字符,或用逗号分开的字节串,或用引号括起来的字符串。 常使用本命令存放数据表格。 DB C0H, F9H, A4H, B0H DB 99H, 92H, 82H, F8H DB 80H
8、, 90H, 88H, 83H DB C6H, A1H, 86H, 84H 定义字节命令DB(Defi ne Byte)4 例如,存放数码管显示的十六进制的字码,可使用多条DB命令定义为: 伪指令介绍 不挂科 单片机 3.伪指令1.汇编语言介绍2.单片机指令系统 该命令用于从指定地址开始,在程序存储器的连续单元中定义16位的数据字。 命令格式为: DW 存放时,数据字的高8位在前(低地址),低8位在后(高地址)。例如: DW “AA” ; 存入41H,41H DW “A” DW “ABC” DW 100H,1ACH,-804 ; 存入00H,41H ; 不合法,因超过两字节 ; 按顺序存入01
9、H、00H、01H、0ACH、0FCH、0DCH DB和DW定义的数据表,数的个数不得超过80,若数据的数目较多,可使用多个定义命令。 在80C51程序设计应用中,常以DB来定义数据,以DW来定义地址。 定义数据字命令DW(Defi ne Word)5 指令寻址方式 直接寻址类 间接寻址类 小节1 小节2 不挂科 单片机 2.指令寻址方式2.单片机指令系统 不挂科 单片机 2.指令寻址方式2.单片机指令系统 直接寻址类 间接寻址类 小节1 小节2 指令寻址方式 寻址方式介绍 不挂科 单片机 2.指令寻址方式2.单片机指令系统1.直接寻址类 指令的寻址方式即取得操作数的方式。80C51单片机指令
10、系统共有7种寻址方式。 1寄存器寻址 2直接寻址 4 3立即寻址 寄存器间接寻址5 变址寻址6 相对寻址7 位寻址 寄存器寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统1.直接寻址类 寄存器寻址就是操作数在寄存器中,因此,只要指定了寄存器就能得到操作数。 MOV A , R0 由于操作数在R0中,因此,在指令中指定了R0,就能从中取得操作数,所以称为寄存器寻址方式。 寄存器寻址方式的寻址范围包括: 通用寄存器 部分专用寄存器 1寄存器寻址 在寄存器寻址方式的指令中,以符号名称来表示寄存器。 例如,下列指令的功能是把寄存器R0的内容传送到累加器A中: 寄存器寻址范围 不挂科 单片机
11、 2.指令寻址方式2.单片机指令系统1.直接寻址类 例如,累加器A、AB寄存器对以数据指针DPTR等。 寄存器寻址的主要对象是通用寄存器,有4组共32个通用寄存器, 在使用本指令前,常须通过对PSW中RS1、RS0位的状态设置来进行当前寄存器组的选择。 因此,指令中的寄存器名称只能是R0R7。 但寄存器寻址只能使用当前寄存器组。 通用寄存器 部分专用寄存器 直接寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统1.直接寻址类 应当指出,直接寻址是访问专用寄存器的惟一方法。 专用寄存器:但专用寄存器除以单元地址形式给出外,还可以寄存器符号形式给出。 因为直接寻址方式只能使用8位二进制数
12、表示的地址,因此,这种寻址范围只限于内部RAM。 3AH就是被寻的直接地址。直接寻址的操作数在指令中以存储单元形式出现, MOV A , 3AH 例如,下列指令的功能是把内部RAM 3AH单元中的数据传送给累加器A。 直接寻址方式是指令中操作数直接以存储单元地址的形式给出。 低128单元:在指令中直接以单元地址形式给出。 2直接寻址 具体如下: 立即寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统1.直接寻址类 所谓立即寻址就是操作数在指令中直接给出。 MOV A , #3AH假定立即数是3AH,则立即寻址方式的传送指令为: 在指令格式中,8位立即数用data表示。 因为通常把在指
13、令中给出的数称为立即数,所以就把这种寻址方式称为立即寻址。 MOV DPTR , #data16指令格式为: 80C51指令系统中还有一条16位立即寻址指令,用“ #data16”表示16位立即数。 3立即寻址 为了与直接寻址指令中的直接地址相区别,在立即数前面加“ # ”标志。 位寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统1.直接寻址类 80C51具有位处理功能,可以对数据位进行操作,因此,就有供其使用的位寻址方式。 位寻址指令中应直接使用位地址,例如,下列指令功能是把3AH位的状态送入进位位C. MOV C , 3AH 位寻址的寻址范围包括: 内部RAM中的位寻址区20H
14、2FH: 专用寄存器中的可寻址位。 4位寻址 在指令中,寻址位有两种表示方法:一种是位地址,另一种是单元地址加位数。 例如,7FH单元第0位,用单元地址加位数表示为7FH.0。 16个单元共有128位,位地址范围00H7FH。 不挂科 单片机 2.指令寻址方式2.单片机指令系统 直接寻址类小节1 小节2 指令寻址方式 间接寻址类 寄存器间接寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统2.间接寻址类 为区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方式中,应在寄存器前加前缀标志。 寄存器寻址方式中,寄存器中存放的是操作数,而是寄存器间接寻址方式中, 寄存器间接寻址也需以寄存器符
15、号形式表示。 寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的。 寄存器间接寻址5 MOV A , R0 上述指令的功能是以R0寄存器内容3AH为地址,把该地址单元的内容送累加器A。 假定R0寄存器的内容是3AH: 寄存器间接寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统2.间接寻址类 76H 内部RAM 3AH 3AHR0 76HA MOV A , R0 上述指令的功能是以R0寄存器内容3AH为地址,把该地址单元的内容送累加器A。 假定R0寄存器的内容是3AH: 寄存器间接寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统2.间接寻址类 有关寄存器间接寻址
16、方式寻址范围及其说明如下: 其通用形式为“Ri”(i=0或1) 内部RAM低128单元 其形式为“DPTR”。 MOVX A , DPTR 外部RAM 64 KB 堆栈操作指令(PUSH和POP)也应算作是寄存器间接寻址。 对内部RAM低128单元的间接寻址,只能使用R0或R1作间址寄存器(地址指针)。 对外部RAM 64 KB存储空间的间接寻址,通常使用DPTR作间址寄存器。 下列指令的功能是把DPTR指定的外部RAM单元的内容送累加器A: 变址寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统2.间接寻址类 MOVC A , A+DPTR 其功能是把DPTR和A的内容相加得到一个
17、程序存储器地址,再把该地址单元的内容送累加器A。 因此,符号应理解为是针对“A+DPTR”的,而不是只针对A。 变址寻址是为了访问程序存储器中的数据表格。 并以两者内容相加形成的16位地址作为操作数地址,以达到访问数据表格的目的。 应注意,A中的数为无符号数。例如,指令: 变址寻址6 80C51的变址寻址以DPTR或PC作基址寄存器,以累加器A作变址寄存器, 变址寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统2.间接寻址类 假设( A )=54H , ( DPTR )=3F21H,该指令的操作示意图如图所示: 3F21H 3F75H DPTR 54HA + MOVC A , A+
18、DPTR 变址寻址6 7FH ROM 7FH 变址寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统2.间接寻址类 对80C51指令系统的变址寻址方式作如下说明: 变址寻址的指令只有3条,即: 其中前两条是程序存储器指令,后一条是无条件转移指令。 变址寻址方式只能对程序存储器进行寻址,或者说它是专门针对程序存储器的寻址方式, 寻址范围可达 64 KB。 MOVC A , A+DPTR MOVC A , A+PC JMP A+DPTR 相对寻址方式 不挂科 单片机 2.指令寻址方式2.单片机指令系统2.间接寻址类 目的地址=转移指令地址+转移指令字节数+rel 偏移量rel是一个带符号
19、的8位二进制补码数。所能表示的数的范围是128+127. 因此,相对转移是以转移指令所在地址为基点,向前最大可转移(127+转移指令字节数)个 单元地址,向后最大可转移(128转移指令字节数)个单元地址。 在相对寻址方式的转移指令中,若给出地址偏移量(在80C51指令系统中用rel表示), 则把PC的当前值加上偏移量就构成了程序转移的目的地址。 注意:这里的PC当前值是指执行完该转移指令后的PC值,即本转移指令的PC值加上它的字节数。 在80C51的7种寻址方式中,前面讲述的6种主要用来解决操作数的给出问题,而第7种 相对寻址方式则是为解决程序转移而设置的,只为转移指令所采用。 相对寻址7 因
20、此转移的目的地址可用如下公式表示: 不挂科 单片机 3.指令分类介绍2.单片机指令系统 小节1 指令分类介绍 功能指令介绍 1.功能指令介绍 指令功能分类 不挂科 单片机 3.指令分类介绍2.单片机指令系统 按指令功能划分: 位操作类指令(17条) 控制转移类指令(17条) 逻辑运算及移位类指令(24条) 算术运算类指令(24条) 数据传送类指令(29条) 1.功能指令介绍 数据传送类 不挂科 单片机 3.指令分类介绍2.单片机指令系统 注意:数据传送类指令用到的助记符包括 通用格式为: MOV , 传送指令的约定: 指令执行后,源操作数不变,目的操作数被源操作数取代。 MOV、MOVX、MO
21、VC、XCH、XCHD、SWAP、PUSH、POP 8种。 从右向左传送数据,是将源操作数送到目的操作数。 1.功能指令介绍 数据传送类 不挂科 单片机 3.指令分类介绍2.单片机指令系统 单片机芯片内部的数据传送最频繁。 指令可以实现寄存器、累加器、RAM单元以及专用寄存器之间的相互数据传送。 MOV A,Rn 如:MOV A,R2 MOV A,direct 如: MOV A,30H MOV A,Ri 如: MOV A,R0 MOV A,#data 如: MOV A,#36H 以A为目的操作数的指令(4条) 1 ; A (Rn) ; A (direct) ; A (Ri) ; A data
22、MOV Rn ,A ; (Rn) (A)如:MOV R0,A MOV Rn ,direct ; (Rn) (direct) 如:MOV R3,30H MOV Rn ,#data ; (Rn) data如:MOV R7,#36H MOV R1,#30 MOV R6,#01101100B 数据传送类 不挂科 单片机 2.单片机指令系统 以Rn为目的操作数的指令(3条) 2 1.功能指令介绍 数据传送类 不挂科 单片机 3.指令分类介绍2.单片机指令系统 MOV direct,A 如:MOV 30H,A MOV direct,Rn 如:MOV P1,R2 MOV direct1,direct2 如:
23、MOV 38H,60H MOV direct,Ri 如:MOV TL0,R1 MOV direct,#data 如:MOV 58H,#36H 以直接地址为目的操作数的指令(5条) 3 ;direct (A) ;direct (Rn) ;(direct1) (direct2) ;direct (Ri) ;direct data 1.功能指令介绍 数据传送类 不挂科 单片机 3.指令分类介绍2.单片机指令系统 MOV Ri,A 如:MOV R0,A MOV Ri,direct 如:MOV R1,36H MOV R0,SBUF MOV Ri,#data 如:MOV R1,#48 MOV R0,#0D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 不挂科 指令
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内