MCS-51指令系统_第1页
MCS-51指令系统_第2页
MCS-51指令系统_第3页
MCS-51指令系统_第4页
MCS-51指令系统_第5页
已阅读5页,还剩124页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、机械电子工程学院机械电子工程学院3.1 指令系统概述指令系统概述3.2 MCS-51指令的寻址方式指令的寻址方式3.3 MCS-51指令系统介绍指令系统介绍机械电子工程学院机械电子工程学院 指令系统:指令系统:一台计算机所能执行的全部的一台计算机所能执行的全部的指令的集合指令的集合。3.1 指令系统概述指令系统概述指令指令是计算机中具有特定功能的是计算机中具有特定功能的操作命令操作命令。设计一种设计一种CPU,一般从设计指令系统开始。,一般从设计指令系统开始。 一种机器的指令系统是机器本身固有的,用户无法改变,只一种机器的指令系统是机器本身固有的,用户无法改变,只能继承、学习、掌握、应用。能继

2、承、学习、掌握、应用。决定了机器的性能。决定了机器的性能。 程序与程序设计程序与程序设计按预定要求编排的按预定要求编排的指令序列指令序列称为称为程序程序。编排的过程称为编排的过程称为程序设计。程序设计。机械电子工程学院机械电子工程学院机器语言、机器语言、二进制代码,是机器唯一能直接识别、执行的语言。二进制代码,是机器唯一能直接识别、执行的语言。汇编语言:汇编语言: 为了记忆和阅读方便,制造商对指令系统每一为了记忆和阅读方便,制造商对指令系统每一条指令,都给出了条指令,都给出了指令助记符指令助记符。用。用助记符、操作助记符、操作数、标号数、标号编写的程序称为编写的程序称为汇编语言源程序汇编语言源

3、程序。3.1.1 汇编语言汇编语言汇编语言必须翻译成机器语言才能被机器执行。汇编语言必须翻译成机器语言才能被机器执行。 程序设计语言程序设计语言汇编语言、汇编语言、高级语言高级语言3.1 指令系统概述指令系统概述机械电子工程学院机械电子工程学院机器语言机器语言(二进制代码二进制代码)完成由汇编语言到机器代码的过程叫完成由汇编语言到机器代码的过程叫汇编汇编。汇编的方法有两种:汇编的方法有两种:自动汇编自动汇编、手工汇编。、手工汇编。由机器代码到汇编语言的过程叫由机器代码到汇编语言的过程叫反汇编反汇编。汇编语言汇编语言源程序源程序 汇编汇编 反汇编反汇编3.1.1 汇编语言汇编语言机械电子工程学院

4、机械电子工程学院3.1.2 汇编语言的格式汇编语言的格式 标号标号: 操作码操作码 操作数操作数 ;注释注释其中除其中除操作码操作码部分是必须的,括号内的区段是任选项。部分是必须的,括号内的区段是任选项。1、标号、标号标号是该指令的标号是该指令的符号地址符号地址,可根据需要设定。,可根据需要设定。1)必须以)必须以字母开始字母开始,以,以“:”结束,长度不超过结束,长度不超过8个字符。个字符。2)系统中的保留字符不能作标号)系统中的保留字符不能作标号, 如:如:SFR名名、ADD等。等。3)标号可被其他语句的操作数直接引用。)标号可被其他语句的操作数直接引用。4)源程序中,一个标号只能定义一条

5、语句,不能重复。)源程序中,一个标号只能定义一条语句,不能重复。3.1 指令系统概述指令系统概述机械电子工程学院机械电子工程学院2、操作码、操作码由指令系统的由指令系统的助记符助记符、伪指令助记符组成。、伪指令助记符组成。操作码是每一句汇编语言所必须的。操作码是每一句汇编语言所必须的。操作码和操作数之间用操作码和操作数之间用空格空格分开。分开。3、操作数、操作数可为二进制数(可为二进制数(B)、十进制数()、十进制数(D)、十六进制数()、十六进制数(H)。)。16进制:数字大于进制:数字大于9,则数字应以,则数字应以“0”开头开头,如:,如:#0AFH。可以是操作数地址、立即数、可以是操作数

6、地址、立即数、标号标号、表达式,如:、表达式,如:M+3。目的目的操作数和操作数和源源操作数之间用操作数之间用“,”分开。分开。可以是寄存器名,如:可以是寄存器名,如:A、B、R0、DPTR。3.1.2 汇编语言的格式汇编语言的格式机械电子工程学院机械电子工程学院4、注释、注释以以“;”开头,是程序员对指令操作的解释,以帮助阅读、开头,是程序员对指令操作的解释,以帮助阅读、理解程序的意义。理解程序的意义。可有可无。可有可无。汇编时对这部分不予处理,不译成任何机器代码。汇编时对这部分不予处理,不译成任何机器代码。可用英语或某种简洁的方式解释指令,或打印程序清单。可用英语或某种简洁的方式解释指令,

7、或打印程序清单。3.1.2 汇编语言的格式汇编语言的格式机械电子工程学院机械电子工程学院3.1.3 伪指令伪指令 伪指令仅在汇编过程中起控制作用,不产生可执行的目标代伪指令仅在汇编过程中起控制作用,不产生可执行的目标代码,又称为码,又称为软指令软指令。1、起点指令、起点指令 ORG格式:格式: ORG H功能:功能: 给给程序程序起始地址起始地址或或数据块数据块的的起始地址起始地址赋值。赋值。例:例:用法:用法: 一般出现在每段源程序或数据块的开始。一般出现在每段源程序或数据块的开始。一个源程序可多次出现一个源程序可多次出现ORG指令。指令。ORG 8000HSTART:MOV A,#74H

8、;源程序的起始地址为;源程序的起始地址为8000H3.1 指令系统概述指令系统概述机械电子工程学院机械电子工程学院2、结束命令、结束命令 END格式:格式:END功能:汇编程序结束标志功能:汇编程序结束标志附在一个源程序的结尾。附在一个源程序的结尾。 一个源程序只能出现一次一个源程序只能出现一次END指令。指令。3、定义字节命令、定义字节命令 DB格式:格式:功能:功能:标号:标号:DB 字节常数或字符串字节常数或字符串 (8位位)定义字节的内容,汇编程序把定义字节的内容,汇编程序把DB定义的字节依定义的字节依次存入次存入标号开始标号开始的存储单元。的存储单元。用法:用法:有定义的内存单元有定

9、义的内存单元地址地址项或项表项或项表3.1.3 伪指令伪指令机械电子工程学院机械电子工程学院例:例:ORG 8000HTAB:DB 45H, 73, 5, ATAB1:DB 101B伪指令伪指令ORG 定义了数据块定义了数据块TAB的起始地址为的起始地址为8000H伪指令伪指令DB定义了定义了8000H8003单元的内容依次为:单元的内容依次为:(8000H)= 45H(8001H)= 49H(8002H)= 35H(8003H)= 41H(8004H)= 05HTABTAB1(1) 由由 ORG定义定义(2) 跟在其他源程序之后跟在其他源程序之后3.1.3 伪指令伪指令机械电子工程学院机械电

10、子工程学院4、定义字命令、定义字命令DW格式:格式:功能:功能:标号:标号:DW 字或字表字或字表定义若干个字(定义若干个字(双字节双字节)(注:)(注:51为大端模式)为大端模式)例:例:ORG 8000HTAB:DW 7234H,8AH,10(8000H)= 72H(高字节在低端地址)(高字节在低端地址)(8001H)= 34H (低字节在高端地址)(低字节在高端地址)(8002H)= 00H(8003H)= 8AH(8005H)= 0AH汇编后:汇编后:(8004H)= 00H3.1.3 伪指令伪指令机械电子工程学院机械电子工程学院5、定义空间命令、定义空间命令 DS格式:格式:功能:功

11、能:标号:标号:DS 数据或字符及表达式数据或字符及表达式例:例:(8008H)=30H(8009H)=8AH从指定单元地址开始,由数据或字符及表达式从指定单元地址开始,由数据或字符及表达式的值来定义应保留的单元数,备用。的值来定义应保留的单元数,备用。ORG 8000HDS 08HDB 30H,8AH即:即:8000H8007H单元保留备用单元保留备用3.1.3 伪指令伪指令机械电子工程学院机械电子工程学院6、等值命令、等值命令 EQU格式:格式:字符名称字符名称 EQU 数据或汇编符号数据或汇编符号功能:功能:将一个将一个数据数据或或汇编符号汇编符号赋予标号段规定的字符赋予标号段规定的字符

12、名称。名称。例:例:ORG 8000H AA EQU R6MOV A,AA;AA与与R6等值等值;A (R6)3.1.3 伪指令伪指令机械电子工程学院机械电子工程学院例例: A10 EQU 10DELY EQU 07EBH MOV A,A10 LCALL DELY;A10 = 10;DELY = 07EBH;转向入口地址转向入口地址 07EBH使用使用EQU指令,须先赋值后使用,不能反之。指令,须先赋值后使用,不能反之。3.1.3 伪指令伪指令机械电子工程学院机械电子工程学院7、数据地址赋值等值命令、数据地址赋值等值命令 DATA格式:格式: 字符名称字符名称 DATA 数据或表达式数据或表达

13、式功能:功能: 此命令把此命令把数据数据/代码地址代码地址赋予标号段所规定的字符名赋予标号段所规定的字符名称。定义的字符名称称。定义的字符名称可先使用后定义可先使用后定义。INDEXJ DATA 8389HORG 8000HINDEXJ DATA 8096HLJMP INDEXJENDORG 8000H LJMP 8096HEND;INDEXJ这个字符名称的地址为这个字符名称的地址为8389H例:例:等等价价于于3.1.3 伪指令伪指令机械电子工程学院机械电子工程学院EQU与与DATA的区别的区别(1)DATA与与EQU相似,但相似,但DATA定义的字符名称,可定义的字符名称,可先使用先使用后

14、定义后定义,EQU则不能。则不能。(2)EQU指令可把指令可把汇编符号汇编符号赋给字符名称,赋给字符名称,DATA则不能。则不能。 (3)DATA可把可把表达式的值表达式的值赋给字符名称,赋给字符名称,EQU则不能。则不能。 DATA常在程序中定义常在程序中定义数据地址。数据地址。EQU常在程序中定义常在程序中定义字符数据。字符数据。3.1.3 伪指令伪指令机械电子工程学院机械电子工程学院8、位地址符号命令、位地址符号命令 BIT格式:格式:字符名称字符名称 BIT 位地址位地址功能:功能: 把位地址赋予标号段的字符名称把位地址赋予标号段的字符名称A1 BIT P1.0A2 BIT P2.0例

15、:例:;P1.0、P2.0赋予位地址字符名称赋予位地址字符名称A1、A2,;在编程时可以直接把在编程时可以直接把A1、A2 当成位地址使用。当成位地址使用。3.1.3 伪指令伪指令机械电子工程学院机械电子工程学院汇编程序的操作汇编程序的操作分两次扫描(分两次扫描(汇编汇编)第一次扫描(第一次扫描(汇编汇编)检查语法结构,对源程序中的符号、检查语法结构,对源程序中的符号、表达式、标号进行定义,处理伪指表达式、标号进行定义,处理伪指令,建立令,建立符号表符号表。显示显示 ERROR,并提示行号,并提示行号显示显示 ERROR,并提示行号,并提示行号修改!修改!修改!修改!第二次扫描(第二次扫描(汇

16、编汇编)汇编成目标代码和汇编程序清单汇编成目标代码和汇编程序清单可执行的代码(机器码)可执行的代码(机器码)3.1.3 伪指令伪指令机械电子工程学院机械电子工程学院3.1.4 MCS-51指令系统的特点指令系统的特点1、执行速度快,存储效率高、执行速度快,存储效率高MCS-51指令系统共有指令系统共有111条指令条指令。按字节分按字节分单字节指令单字节指令49条条双字节指令双字节指令45条条三字节指令三字节指令17条条按周期分按周期分单周期指令单周期指令64条条双周期指令双周期指令45条条四周期指令四周期指令2条条设时钟频率为设时钟频率为12MHz,则指令执行的时间分别为:,则指令执行的时间分

17、别为:1 s 582 s 404 s 2占据占据空间空间占据占据时间时间时时空空3.1 指令系统概述指令系统概述机械电子工程学院机械电子工程学院2、指令易掌握,功能强、指令易掌握,功能强 具有丰富的位操作指令、查表指令、散转指令、乘除指具有丰富的位操作指令、查表指令、散转指令、乘除指令等,构成了完整的指令系统。令等,构成了完整的指令系统。3、适合于控制、智能仪表、适合于控制、智能仪表布尔处理机布尔处理机布尔运算器布尔运算器ALU布尔累加器布尔累加器CY(PSW.7)布尔布尔RAM区区 共共128位位布尔布尔I/O口口P0P3口每位都可做口每位都可做布尔布尔I/O口口 布尔指令子集布尔指令子集

18、17条布尔指令条布尔指令3.1.4 MCS-51指令系统的特点指令系统的特点机械电子工程学院机械电子工程学院3.1.5 寻址方式(寻址方式(7种)种) 立即寻址立即寻址 直接寻址直接寻址 寄存器寻址寄存器寻址 寄存器间接寻址寄存器间接寻址 基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址 相对寻址相对寻址 位寻址位寻址3.1 指令系统概述指令系统概述机械电子工程学院机械电子工程学院3.1.6 MCS-51指令分类(指令分类(5类)类) 数据传送(数据传送(29条)条) 算术运算(算术运算(24条)条) 逻辑运算(逻辑运算(24条)条) 控制转移(控制转移(17条)条) 布尔处理(布

19、尔处理(17条)条)共共111条指令条指令3.1 指令系统概述指令系统概述机械电子工程学院机械电子工程学院3.1.7 相关指令符号的说明相关指令符号的说明当前选中寄存器区的当前选中寄存器区的8个工作寄存器(个工作寄存器(R0R7)RnRidirect 8位内部位内部RAM单元地址单元地址 00H7FH 专用特殊功能寄存器专用特殊功能寄存器SFR的地址的地址80HFFH 立即数(立即数(8位)位)#data#data16 立即数(立即数(16位)位)当前选中寄存器区中可做当前选中寄存器区中可做间址寄存器间址寄存器的的 2个工作寄存器(个工作寄存器(R0、R1)3.1 指令系统概述指令系统概述机械

20、电子工程学院机械电子工程学院addr16 16位目的地址,用于位目的地址,用于LCALL、LJMP指令。指令。 地址范围地址范围64KB ROM空间空间addr11 11位目的地址,用于位目的地址,用于ACALL、AJMP指令。指令。 地址范围地址范围2KB ROM空间空间relDPTR 数据地址指针,可做数据地址指针,可做16位位间址寄存器间址寄存器。 bit 内部内部RAM(含(含SFR)中的直接位寻址。)中的直接位寻址。 8位位带符号带符号的偏移量,的偏移量,用于用于SJMP和所有的条件转移指令中。和所有的条件转移指令中。范围范围-1281273.1.7 MCS-51相关指令符号的说明相

21、关指令符号的说明机械电子工程学院机械电子工程学院A 累加器累加器B 专用寄存器,用于专用寄存器,用于MUL和和DIV指令指令C 位累加器位累加器 ( PSW.7或或CY ),进位,进位/借位标志借位标志 间址或基址寄存器前缀如:间址或基址寄存器前缀如:Ri , A+DPTR/ 位操作的前缀,表示对该位操作数取反位操作的前缀,表示对该位操作数取反(X) X中的内容中的内容(X) 由由X寻址的单元中的内容寻址的单元中的内容箭头左边的内容被箭头右边的内容所代替箭头左边的内容被箭头右边的内容所代替DPTR , A+PC3.1.7 MCS-51相关指令符号的说明相关指令符号的说明机械电子工程学院机械电子

22、工程学院用何种方式寻找用何种方式寻找指令的指令的操作数操作数或指令的或指令的执行地址。执行地址。3.2.1 立即寻址立即寻址寻址空间:寻址空间:指令形式:指令形式:操作码操作码立即数立即数v程序存储器程序存储器v指令的操作数存放在程序存储器中指令的操作数存放在程序存储器中v操作数紧跟操作码操作数紧跟操作码OP后面后面立即寻址:立即寻址:OP#dataImmediate Addressing指令的寻址方式:指令的寻址方式:指令的寻址方式:指令的寻址方式:机械电子工程学院机械电子工程学院MOV A, #30H;A #30H 例例1:操作码操作码立即数立即数PCPCPC74H30HROM A30HM

23、OV DPTR, #8000H;DPTR #8000H 例例2:操作码操作码PCPCPC立即数的高立即数的高8位位立即数的低立即数的低8位位DPHDPLPC80H00H90H80HROM00H 3.2.1 立即寻址立即寻址机械电子工程学院机械电子工程学院3.2.2 直接寻址直接寻址寻址空间:寻址空间:指令的三种形式:指令的三种形式:操作码操作码操作数地址操作数地址v在指令中直接给出操作数的在指令中直接给出操作数的真实地址真实地址v操作码后面操作码后面紧跟一个实际紧跟一个实际操作数地址操作数地址操作码操作码操作数地址操作数地址立即数立即数操作码操作码目的操作数地址目的操作数地址源操作数地址源操作

24、数地址内部内部RAM的低的低128字节字节特殊功能寄存器特殊功能寄存器SFR区区直接寻址直接寻址直接寻址直接寻址是访问是访问 SFR 的的唯一方法唯一方法Direct Addressing00H7FH80HFFHCPU内部内部3.2 MCS-51指令的寻址方式指令的寻址方式机械电子工程学院机械电子工程学院“与与”MOV A, 30H;A (30H) 例例1:操作码操作码操作数地址操作数地址PCPCPCE5H30HROM A内内RAM 30H ANL 30H, #30H;30H (30H) #30H 例例2:操作码操作码PCPCPC直接地址直接地址立即数立即数PC53H30HROM 30H 内内

25、RAM30H ALU“结果结果”3.2.2 直接寻址直接寻址机械电子工程学院机械电子工程学院3.2.3 寄存器寻址寄存器寻址寻址空间:寻址空间:指令的三种形式:指令的三种形式:操作码操作码当前选定的当前选定的寄存器内容寄存器内容就是实际操作数就是实际操作数操作码操作码立即数立即数操作码操作码直接地址直接地址R0R7,由,由RS1、RS0确定确定寄存器区寄存器区A、B、CY(位),(位),DPTR、ABMOV A, R3;A (R3) 例例1:ADD A, R3;A (A)+(R3)例例2:寄存器寻址:寄存器寻址:Register Addressing操作数操作数隐含隐含隐含寻址隐含寻址3.2

26、MCS-51指令的寻址方式指令的寻址方式机械电子工程学院机械电子工程学院3.2.4 寄存器间接寻址寄存器间接寻址寻址空间:寻址空间:指令的三种形式:指令的三种形式:操作码操作码操作码操作码立即数立即数操作码操作码直接地址直接地址内部内部 RAM(R0、R1、SP)外部外部 RAM(R0、R1、DPTR)寄存器间接寻址:寄存器间接寻址:指令选定的指令选定的寄存器内容寄存器内容就是实际就是实际的的操作数操作数地址地址Register Indirect Addressing3.2 MCS-51指令的寻址方式指令的寻址方式机械电子工程学院机械电子工程学院MOV R0, A例例1:操作码操作码PCPCF

27、6HROMR030H;累加器传送指令;累加器传送指令内内RAM 30HA MOVX A, DPTR例例2:操作码操作码PCPCE0HROMDPTR2000H外外RAM 2000HA “读读”RD“读读”3.2.4 寄存器间接寻址寄存器间接寻址机械电子工程学院机械电子工程学院3.2.5 基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址基址基址寄存器加寄存器加变址变址寄存器寄存器间接间接寻址:寻址: 以以DPTR或或PC作作基址寄存器基址寄存器,A作作变址寄存器变址寄存器,两者相加两者相加形成形成操作数地址操作数地址。寻址空间:寻址空间:程序存储器程序存储器(A+DPTR、A+PC)指

28、令形式:指令形式:操作码操作码3.2 MCS-51指令的寻址方式指令的寻址方式机械电子工程学院机械电子工程学院MOVC A, A+DPTR例:例:操作码操作码PCPCDPTR2400HA 0FH93HROM 240FH设(设(A)= 0FH (DPTR)= 2400H ALU“读读”PSEN“读读”MOVC A, A+DPTR3.2.5 基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址机械电子工程学院机械电子工程学院3.2.6 相对寻址相对寻址程序存储器程序存储器寻址空间:寻址空间:指令的三种形式:指令的三种形式:操作码操作码 rel操作码操作码 直接地址直接地址 rel操作码操作

29、码 立即数立即数 rel相对寻址相对寻址以以当前当前PC值值为基准地址,加上指令的偏移量为基准地址,加上指令的偏移量“rel”,结果为目标地址。,结果为目标地址。rel为为有符号补码数有符号补码数,范围:范围:-128+127。一般为双字节或三字节指令一般为双字节或三字节指令Relative Addressing寻址指令寻址指令执行地址执行地址目标地址目标地址3.2 MCS-51指令的寻址方式指令的寻址方式机械电子工程学院机械电子工程学院JNZ rel例:例:; 累加器累加器A不等零则转移不等零则转移 设设:rel=23H2025H2002H2001H2000H ROM70H23H下一条指令下

30、一条指令.操作码操作码PCPCPC(PC)=2002Hrel=23H修正后转移修正后转移目标地址目标地址D(PC) = 2025HPCALU偏移量偏移量(PC)=2002HRel = 23H)005202HD =3.2.6 相对寻址相对寻址机械电子工程学院机械电子工程学院2025H2112H2111H2110H ROMDFHF2H下一条指令下一条指令.操作码操作码PCPCPC(PC)=2112Hrel=F2H修正后转移修正后转移目标地址目标地址 -D(PC) = 2104HALU偏移量偏移量例:例:DJNZ R7, rel ;(R7) 1不为不为“0”则转则转PC2104H指指 令令(PC)=

31、2112HRel= F2H)FF4012HD =3.2.6 相对寻址相对寻址机械电子工程学院机械电子工程学院3.2.7 位寻址位寻址寻址空间:寻址空间:片内片内RAM的的20H2FH字节地址字节地址位地址:位地址:00H7FH,共,共128位。位。SFR中字节地址能被中字节地址能被8整除的整除的12个寄存器个寄存器,共共93位。位。Bit Addressing 以访问触发器的方式,对内部以访问触发器的方式,对内部RAM、SFR的的位地址位地址空间空间进行访问,称为位寻址。进行访问,称为位寻址。 位地址位地址用于布尔指令。用于布尔指令。共共221位位专为布尔指令设计专为布尔指令设计3.2 MCS

32、-51指令的寻址方式指令的寻址方式机械电子工程学院机械电子工程学院寻址方式与相应的寻址空间寻址方式与相应的寻址空间小结:小结:寄存器寄存器R0R7、A、BCY、DPTR片内片内内内RAM的低的低128字节、字节、特殊功能寄存器特殊功能寄存器SFR直接寻址直接寻址direct寄存器间址寄存器间址R0、R1、SP R0、R1 、DPTR片内片内RAM、片外片外RAM与与I/O口口立即数立即数#data 程序存储器程序存储器程序存储器程序存储器基址加变址基址加变址A+DPTR、A+PC程序存储器程序存储器相对寻址相对寻址PC+rel位寻址位寻址片内片内RAM 20H2FH、部分部分SFRbit利用的

33、变量利用的变量 使用的空间使用的空间方方 式式3.2 MCS-51指令的寻址方式指令的寻址方式机械电子工程学院机械电子工程学院3.3 MCS-51指令系统介绍指令系统介绍MCS-51系统指令系统共系统指令系统共111条,按操作功能分类:条,按操作功能分类: 数据传送类数据传送类 算术运算类算术运算类 逻辑运算类逻辑运算类 控制转移类控制转移类 布尔处理类布尔处理类机械电子工程学院机械电子工程学院3.3.1 数据传送类指令(数据传送类指令(29条)条)用到的指令助记符有用到的指令助记符有5种:种:片内传送片内传送 MOV片外传送片外传送 MOVX查表传送查表传送 MOVC累加器交换累加器交换 X

34、CH、XCHD、SWAP堆栈操作堆栈操作 PUSH、POP3.3 MCS-51指令系统介绍指令系统介绍机械电子工程学院机械电子工程学院1、MOV类传送指令类传送指令格式:格式: MOV 目的字节,源字节目的字节,源字节功能:把源字节内容送目的字节,源字节内容不变功能:把源字节内容送目的字节,源字节内容不变以累加器以累加器A为目的字节的传送:为目的字节的传送:例例: 立即数送累加器立即数送累加器MOV A, #data;A #dataMOV A, Rn例例: 寄存器内容送累加器寄存器内容送累加器;A (Rn)3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院MOV类传送指令小结类传

35、送指令小结MOV A, #data立即数送累加器立即数送累加器MOV A, Rn寄存器内容送累加器寄存器内容送累加器MOV A, direct直接地址内容送累加器直接地址内容送累加器MOV A, Ri内部内部RAM内容送累加器内容送累加器MOV Rn, #data立即数送寄存器立即数送寄存器MOV Rn, A 累加器内容送寄存器累加器内容送寄存器RnMOV Rn, direct直接地址内容送寄存器直接地址内容送寄存器Rn指令助记符指令助记符说说 明明字字 节节 21212123.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院MOV类传送指令小结类传送指令小结MOV direct1

36、, direct2内部内部RAM(含(含SFR)之间直接传送)之间直接传送MOV direct, Ri内部内部RAM数据送内数据送内RAM(含(含SFR)MOV direct, #data立即数送内部立即数送内部RAM(含(含SFR)MOV direct, A累加器内容送内部累加器内容送内部RAM(含(含SFR)MOV direct, Rn寄存器内容送内部寄存器内容送内部RAM(含(含SFR)指令助记符指令助记符说说 明明字节字节32232MOV Ri, #data立即数送内部立即数送内部RAMMOV Ri, A累加器内容送内部累加器内容送内部RAMMOV Ri, direct内内RAM数据送

37、内部数据送内部RAM(含(含SFR)MOV DPTR, #data1616位立即数传送指令位立即数传送指令21233.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院3.3.1 数据传送类数据传送类例:设例:设(80H)=70H,(70H)=30H,P1口口为输入口,当前的为输入口,当前的输入状态为输入状态为AAH,执行下面程序,分析执行结果。,执行下面程序,分析执行结果。MOVR0, #80HMOVA, R0MOVR1, AMOVB, R1MOVR0, P1;80HR0;(80H)=70H A;(R1)=70H;(B)=30H;AAH 80H(80H)=0AAH(B)=30H(R

38、1)=70H(R0)=80H机械电子工程学院机械电子工程学院2、MOVX类传送指令类传送指令累加器累加器A与与外部外部RAM传送数据用传送数据用 MOVX。 外部外部RAM送累加器送累加器AMOVX A, Ri (i=0、1)单字节指令单字节指令;以以Ri内容为内容为外部外部RAM地址的单元中的数送地址的单元中的数送A 累加器内容送外部累加器内容送外部RAMMOVX Ri, A (i=0、1);累加器内容送以累加器内容送以Ri内容为地址的内容为地址的外部外部RAM单元单元单字节指令单字节指令RDWR3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院 外部外部RAM送累加器送累加器

39、AMOVX A, DPTR单字节指令单字节指令;以以DPTR内容为地址的内容为地址的外部外部RAM单元中的数送单元中的数送A 累加器内容送外部累加器内容送外部RAMMOVX DPTR, A;累加器内容送以累加器内容送以DPTR内容为地址的内容为地址的外部外部RAM单元单元单字节指令单字节指令RDWR3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院 MOVX类传送指令小结类传送指令小结 指令助记符指令助记符说说 明明字字 节节 1111MOVX A, Ri外部外部RAM送累加器送累加器AMOVX Ri, A累加器内容送外部累加器内容送外部RAMMOVX A, DPTR外部外部RA

40、M送累加器送累加器AMOVX DPTR, A累加器内容送外部累加器内容送外部RAM3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院例例2:将:将片外片外RAM 0120H单元的内容传送到单元的内容传送到片外片外RAM地址地址 为为78H的单元。的单元。MOV DPTR, #0120HMOVX A, DPTRMOV R0, #78HMOVX R0, A 例例1:将:将片内片内RAM 12H单元的内容传送到单元的内容传送到片内片内RAM地址地址 为为78H的单元。的单元。MOV 78H, 12H;外部外部RAM送累加器送累加器A;累加器内容送外累加器内容送外RAM3.3.1 数据传

41、送类数据传送类?机械电子工程学院机械电子工程学院 MOVDPTR, #0203H MOVXA, DPTR MOV30H, A MOV A, #0FH MOVXDPTR, A执行结果为执行结果为: (DPTR)=0203H(30H)=0FFH(0203H)=(A)=0FH; (DPTR) 0203H; (A) (DPTR); (30H) (A) ; (A) 0FH ; (DPTR) (A) 例例3: 设外部设外部RAM (0203H)=0FFH, 分析以下指令执行后,分析以下指令执行后,DPTR、内部(、内部(30H)、外部()、外部(0203H)的值分别是多少?)的值分别是多少? 3.3.1

42、数据传送类数据传送类机械电子工程学院机械电子工程学院3、MOVC类传送指令类传送指令MOVC类传送指令,均为类传送指令,均为基址基址加加变址寄存器变址寄存器寻址:寻址:MOVC A, A+DPTR;以以DPTR作基址寄存器,作基址寄存器,A作变址寄存器,两者作变址寄存器,两者;相加形成相加形成16位位ROM地址,将该单元内容读入地址,将该单元内容读入A单字节指令单字节指令 以以DPTR作基址加变址寻址作基址加变址寻址长查表指令长查表指令PSEN3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院MOVC A, A+PC单字节指令,单字节指令, 以以PC作基址加变址寻址作基址加变址寻

43、址;取指后取指后PC增增“1”,以,以当前当前PC作基址,作基址,A作变址,两者作变址,两者;相加形成相加形成16位位ROM地址,将该单元内容读入地址,将该单元内容读入A短查表指令短查表指令PSEN3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院 MOVC类传送指令小结类传送指令小结指令助记符指令助记符说说 明明字字 节节 11MOVC A, A+DPTRMOVC A, A+PC以以DPTR作基址加变址寻址作基址加变址寻址以以PC作基址加变址寻址作基址加变址寻址3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院MOV DPTR, #2000HMOVC A, A+D

44、PTR2004H2003H2002H2001H2000H2008H2009H2005H2006H2007H存储器存储器00H01H04H09H10H19H24H31H40H51H例:在外部例:在外部ROM中存放中存放09的平方值。根据累加器的平方值。根据累加器A中的数中的数 ( 09 ),查找对应数的平方值,并将平方值放回),查找对应数的平方值,并将平方值放回A中。中。用用DPTR作基址寄存器作基址寄存器指向表格的首地址指向表格的首地址用用A作变址寄存器作变址寄存器实际上实际上A中的值是表格中的中的值是表格中的第几项第几项表格首址表格首址3.3.1 数据传送类数据传送类机械电子工程学院机械电子

45、工程学院操作码操作码PCPCDPTR2000HA 03H 09H MOVC A, A+DPTR 93HROM00H2000H01H04H09H2001H2002H2003H;设(设(A)= 03H,查,查“3”的平方的平方ALUPSEN3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院用用PC作基址寄存器,它并不指向表格首址作基址寄存器,它并不指向表格首址;data应该是应该是PC当前值与所查表格首址之间的当前值与所查表格首址之间的距离距离;即即PC+data TABLE表格首址表格首址设(设(A)= 03H,是表格中的第,是表格中的第3项项;单字节指令,设本指令地址为单字节指令

46、,设本指令地址为1FF0HADD A, #dataMOVC A, A+PC2000H1FF1H-000FH;data(0FH)是变址调整值是变址调整值#dataPC当前值当前值表格首址表格首址 TABLE: DB 00HDB 01HDB 04HDB 09H2000H12HA PCPC2003HTABLE3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院PCPC操作码操作码MOVC A, A+PC 83HROM00H2000H01H04H09H2001H2002H2003H1FF0H1FF1H(PC)=1FF1HA12H09H ;查查“3”的平方的平方ALUTABLEPSEN3.3

47、.1 数据传送类数据传送类机械电子工程学院机械电子工程学院4、 XCH、XCHD、SWAP类传送指令类传送指令 寄存器内容与累加器内容交换寄存器内容与累加器内容交换XCH A, Rn (n=07);(A) (Rn) 单字节指令单字节指令 内部内部RAM(含(含SFR)内容与累加器内容交换)内容与累加器内容交换XCH A, direct;(A) (direct) 双字节指令双字节指令3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院 内部内部RAM内容与累加器内容交换内容与累加器内容交换XCH A, Ri (i=0,1);(A) (Ri) 单字节指令单字节指令 内部内部RAM内容内

48、容低低4位位与累加器与累加器低低4位位内容交换内容交换XCHD A, Ri (i=0,1);(A30) (Ri) 30) 单字节指令单字节指令A(Ri)3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院 累加器累加器A高高4位与低位与低4位交换位交换SWAP A;(A30) (A74) 单字节指令单字节指令A3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院 交换类传送指令小结交换类传送指令小结指令助记符指令助记符说说 明明字节字节12111XCH A, RnXCH A, direct寄存器内容与累加器内容交换寄存器内容与累加器内容交换直接地址内容与累加器内容交换直

49、接地址内容与累加器内容交换XCH A, RiXCHD A, Ri内部内部RAM内容与累加器内容交换内容与累加器内容交换内部内部RAM内容低内容低4位与累加器低位与累加器低4位交换位交换SWAP A累加器累加器A高高4位与低位与低4位交换位交换都在都在CPU内部交换内部交换3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院5、 堆栈操作指令堆栈操作指令 进栈指令进栈指令PUSH direct;SP自动增自动增“1”,(SP) (SP) +1;direct地址单元的内容压入地址单元的内容压入SP指向的单元指向的单元双字节指令双字节指令 出栈指令出栈指令POP direct;SP自动减

50、自动减“1”,(SP) (SP) -1;SP指向的单元内容弹出到以指向的单元内容弹出到以direct为地址的单元为地址的单元双字节指令双字节指令3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院SPSP例:设例:设(A)= 55H,(B)= 3FH,问:执行如下堆栈操作,问:执行如下堆栈操作后,后,PSW和和SP的值分别为多少?的值分别为多少?建立堆栈建立堆栈压入操作压入操作弹出操作弹出操作 5FH60H61H62H63H 55H 3FHSPMOV SP, #5FHPUSH ACCPUSH BPOP PSWSP 结果:结果:PSW的内容的内容3FH,SP的内容为的内容为60H。P

51、SW3FH3.3.1 数据传送类数据传送类机械电子工程学院机械电子工程学院3.3.2 算术运算类指令(算术运算类指令(24条)条)用到的指令助记符有用到的指令助记符有8种:种:加法指令加法指令 ADD、ADDC、INC、DA减法指令减法指令 SUBB,DEC乘除指令乘除指令 MUL,DIV算术运算类指令执行结果影响标志位:算术运算类指令执行结果影响标志位:CY、AC、OV机械电子工程学院机械电子工程学院1、不带进位加、不带进位加ADD(1) 累加器内容加立即数累加器内容加立即数ADD A, #data;A (A) + #data双字节指令双字节指令(2) 累加器内容加寄存器内容累加器内容加寄存

52、器内容ADD A, Rn(n=07);A (A) + (Rn)单字节指令单字节指令3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院 累加器内容加内部累加器内容加内部RAM内容内容ADD A, Ri(i=0,1);A (A)+ (Ri)单字节指令单字节指令 累加器内容加内部累加器内容加内部RAM内容(含内容(含SFR)ADD A, direct;A (A)+ (direct)双字节指令双字节指令3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院ADD类指令小结类指令小结指令助记符指令助记符说说 明明字字 节节 2112ADD A, #dataADD A, Rn立即数

53、加到累加器立即数加到累加器寄存器内容加到累加器寄存器内容加到累加器ADD A, RiADD A, direct内部内部RAM内容加到累加器内容加到累加器直接地址内容加到累加器直接地址内容加到累加器3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院2、带进位加、带进位加ADDC(1) 累加器内容加立即数累加器内容加立即数 加进位位加进位位ADDC A, #data;A (A) + #data + CY双字节指令双字节指令(2) 累加器内容加寄存器内容加进位位累加器内容加寄存器内容加进位位ADDC A, Rn(n=07);A (A) + (Rn) + CY单字节指令单字节指令3.3.

54、2 算术运算类算术运算类机械电子工程学院机械电子工程学院 累加器内容加内部累加器内容加内部RAM内容加进位位内容加进位位ADDC A, Ri(i=0,1);A (A) + (Ri) + CY单字节指令单字节指令 累加器内容加内部累加器内容加内部RAM内容(含内容(含SFR)加进位位)加进位位ADDC A, direct;A (A) + (direct) + CY双字节指令双字节指令3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院指令符助记指令符助记说说 明明字字 节节 2112ADDC A, #dataADDC A, Rn立即数和进位加到累加器立即数和进位加到累加器寄存器内容和

55、进位加到累加器寄存器内容和进位加到累加器ADDC A, RiADDC A, direct内部内部RAM内容和进位加到累加器内容和进位加到累加器直接地址内容和进位加到累加器直接地址内容和进位加到累加器ADDC类指令小结类指令小结3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院例:试分析执行下面的指令后,程序状态字例:试分析执行下面的指令后,程序状态字PSW中中CY、AC、OV的内容是什么?的内容是什么?MOV A, #53HADD A, R0 MOV R0, #76HD7 D6 D5 D4 D3 D2 D1 D0 0 1 0 1 0 0 1 1 (53H) 0 1 1 1 0 1

56、 1 0 (76H) 10010011(C9H)CY=0AC=0OV = C6 C7=1 +此时此时C6 =1、 C7=0 则则+3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院3、增量、增量INC(1) 累加器内容加累加器内容加 “1”INC A;A (A)+ 1单字节指令单字节指令 (2) 寄存器内容加寄存器内容加 “1”INC Rn;A (Rn)+1单字节指令单字节指令3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院 内部内部RAM(含(含SFR)内容加)内容加 “1”INC direct;(Ri) (Ri)+1单字节指令单字节指令 内部内部RAM内容加内

57、容加 “1”INC Ri ;direct (direct)+1双字节指令双字节指令3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院 数据指针数据指针DPTR内容加内容加 “1”INC DPTR; DPTR (DPTR)+1单字节指令单字节指令 INC 指令中除指令中除“INC A”指令影响指令影响 P 标志位,其余指令标志位,其余指令不影响任何标志位。不影响任何标志位。3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院INC类指令小结类指令小结指令助记符指令助记符说说 明明字节字节 1121INC AINC Rn累加器内容加累加器内容加“1”寄存器内容加寄存器内容

58、加“1”INC direct内部内部RAM(含(含SFR)内容加)内容加“1”INC Ri内部内部RAM内容加内容加“1”INC DPTR数据指针数据指针DPTR内容加内容加“1”13.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院4、十进制调整指令、十进制调整指令DA A;对累加器对累加器A,作,作BCD码码加法加法后进行后进行“过过9补补6”调整调整若若(A3A0)9 或者或者AC=1 则(则(A3A0) (A3A0)+06H若若(A7A4)9 或者或者CY=1则(则(A7A4) (A7A4)+60H注意:注意:DA 指令不能对指令不能对BCD码码减法减法的结果进行调整。的结

59、果进行调整。单字节指令单字节指令BCDH BCDLA3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院ABCDEF0123456789BCD合法合法非法!非法!1 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 10 0 0 00 0 0 10 1 0 00 0 1 00 0 1 11 0 0 00 1 0 11 0 0 10 1 1 10 1 1 0二进制数二进制数0 0 0 00 0 0 11 00 0 0 10 0 0 11 1合法合法3.3.2 算术运算类算术运算类机械电子工程学院机械电子工程学院例例 设设(A)=37H,(R3)=36H,执

60、行下面的程序后,执行下面的程序后A的值是多少?的值是多少? 0011 0111 (37H) 0011 0110 (36H) (6DH) 0110 1101过过“9” 0000 0110 0111 0011补补“6”(73H);(A)=6DH;(A)=73H 0111 0011 (73H) 1001 1001 (99H) 10000 1100 (0CH) CY0110 01100111 0010 (72H);(A)=0CH CY=1;(A)=72H过过“9”补补“6”110111100 ADD A, R3DA A ADD A, #99HDA A“+ 99”就等于减就等于减“- 1”互补互补DA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论