资源预览内容
第1页 / 共92页
第2页 / 共92页
第3页 / 共92页
第4页 / 共92页
第5页 / 共92页
第6页 / 共92页
第7页 / 共92页
第8页 / 共92页
第9页 / 共92页
第10页 / 共92页
亲,该文档总共92页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Northwest A&F University 第三章 MCS-51系列单片机的指令系统 3.1 概述 目前,计算机基本上都是按冯 诺依曼的方式工作的,即按程序存储和自动执行的方式工作。在计算机执行某一任务之前,首先要为这一任务的实现编写一段相应的程序或步骤,其中的每一步都是由具有指定功能的指令所组成。所以,程序是计算机的一系列指令的有序集合。程序设计语言分高级语言和低级语言。低级语言又分机器语言和汇编语言。 3.1.1 机器语言 机器语言就是能被机器识别并执行的语言 , 也即由二进制编码的机器指令表示的语言 。 它是人们最早使用的一种程序设计语言 。 直接由指令代码编写的程序也称为机器语言程序 , 是唯一能被计算机识别并且执行的语言 。 任何语言编写程序 , 最终都必须翻译成为机器语言程序 , 才能在机器上执行 。 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University 3.1.2 汇编语言 (Assembly Language) 为了便于理解和记忆指令 , 并方便地用指令作为工具 ,编写和阅读程序 , 人们尝试着采用能帮助理解和记忆的英文单词或其缩写符号 , 来代替机器指令中的操作码 , 并对所需的数据 、 寄存器或有关数据的地址 , 用相应的符号表示 , 并把每一条机器指令都用相应的符号化的指令 (称为汇编指令 )代替 。 这种用汇编指令编写的程序 , 称为汇编语言程序 。 由于它属于符号化的程序 , 因此也称为汇编语言源程序 。 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University 3.1.3 高级语言 高级语言是一种脱离具体计算机 , 面向过程 , 更符合人们的思维 , 易为人们学习和理解的一种语言 。 高级语言程序由语句组成 , 每条语句的功能相当于若干条机器指令 。因此 , 高级语言的语句功能很强 , 用语句编写程序要比用指令编写容易得多 。 目前通用的高级语言有 BASIC、FORTRAN、 COBOL、 PASCAL、 C语言等 。 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University 3.2 MCS-51系列单片机指令格式 3.2.1 汇编语言的指令格式及符号简介 标号 : 操作码助记符 第一操作数 ,第二操作数 ,第三操作数 ;注释 例如: LOOP: MOV A, #50H ;(A)50H DEC R0 ;(R0)(R0) -1 DJNZ R0, LOOP ;(R0)-10, 则程序转移到 LOOP地址;否则顺序执行 END ;结束 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University 3.1.2 MCS-51系列单片机指令系统按功能分类 数据传送( 29条) 算术运算( 24条) 逻辑运算( 24条) 控制转移( 17条) 位处理( 布尔处理 )( 17条) 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University 3.1.3 汇编语言伪指令 ( 1)定位伪指令 格式 : ORG n n为十进制或十六进制常数,代表地址。该伪指令规定了后面指令的存放地址。例如 : ORG 0100H AJMP PRG1 AJMP为双字节指令,其首字节放在 0100H单元,第二个字节放在 0101H单元。 ( 2)汇编结束伪指令 格式: END 当汇编程序遇到该指令后,结束汇编过程,其后的指令将不加处理。 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University ( 3)定义字节伪指令 格式: 标号: DB X1, X2, , Xi, Xn 其中标号为可选项, Xi为 8位数据或 ASC 码。 例如: ORG 1000H TAB: DB 01H, 02H 则 ( 1000H) =01H,( 1001H) =02H ( 4)定义双字节伪指令 格式: 标号: DW X1, X2, , Xi, Xn 其中标号为可选项, Xi为双字节数据。 例如: ORG 2000H HETAB: DW 2546H, 0178H 则 ( 2000H) =25H ,( 2001H) =46H ( 2002H) =01H ,( 2003H) =78H 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University ( 5) 定义空间伪指令 格式:标号: DS 数据或字符表达式 其中标号为可选项。从指定单元开始,由数据或表达式确定保留若干个字节内存空间备用。 例如 : ORG 8000H BUF: DS 08H DB 50H, 8FH 即: 8000H 8007H单元保留备用 ( 8008H) =50H ( 8009H) =8FH 以上 DB、 DW、 DS伪指令只对程序存储器起作用 。 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University ( 6)赋值伪指令 格式 : y EQU n y为用户定义的符号名, n为双字节常数。 该伪指令将 n的值赋给符号名 y。 y可作为指令中双单字节操作数,或转移指令中的目的地址。 用 EQU定义的符号名必须先定义后使用。 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University ( 7)数据地址赋值伪指令 格式:字符名称 DATA 数据或表达式 此命令把一个数据地址或代码地址赋予标号段规定的字符名称。 例如 : INDEXJ DATA 6369H 定义了 INDEXJ这个字符名称的地址为 6369H,主要用于程序的模块式调试。 ( 8)位定义伪指令 BIT 格式:字符名称 BIT 位地址 该命令把位地址赋予标号段的字符名称。 例如 : A1 BIT P1.0 A2 BIT P1.1 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University 3.2 寻址方式 7种寻址方式: 立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址、位寻址。 ( 1)立即寻址 立即寻址是指指令中直接给出操作数的寻址方式。指令中的操作数称为立即数,立即数前面加“ #”以区别直接寻址。 8位的立即数 #data,如 #30H; 16位的立即数 #data,如 #3000H。要注意立即寻址与直接寻址区别。 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University 指令形式: 例如: M O V A , #30H ; A 30H 操作码 立即数 74H 30H PC P C+ 1 操作码 OP A 指令 M O V A , #30H 的执行过程 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 立即寻址 Northwest A&F University 例如: MOV DPTR, #8000H; DPTR8000H 指令立即数为 16位,是双字节数。其功能是把立即数高 8位送入 DPH,低 8 位送入 DPL。指令执行过程如图所示。 80H 00H P C+ 1 P C+ 2 操作码 OP D P H D P L 指令 M O V D P TR , #8000H 的执行过程 90H PC 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University ( 2) 直接寻址 寻址空间:内部 RAM的低 128字节和特殊功能寄存器 SFR(直接寻址是访问 SFR的唯一方式)。 操作码后面的一个字节是实际操作数地址。这种直接在指令中给出操作数真实地址的方式称为直接寻址。指令有三种形式: 操作码 操作数地址 操作码 操作数地址 立即数 操作码 源操作数地址 目的操作数地址 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University 例如: MOV A, 30H ; A ( 30H) 这是数据传送指令, 30H是内部 RAM地址,功能是把30H单元内容读入 A中。注意:立即数字址与直接寻址的区别,立即数字址是在指令中直接给出操作数直接寻址是在指令中直接给出操作的地址。如图所示。 E5 H 30H PC P C+1 操作码 指令 M OV A , 30H 的执行过程 操作数地址 内部 RAM 30H A 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University 例如: ANL 30H, #30H ; 30H ( 30H) 30H 这是逻辑“与”操作指令,操作码后面第一个 30H是操作数地址,第二个 30H是参加“与”运算的立即数,“与”的结果存入 30H单元中,执行过程如图所示。 结果 E5H 30H PC P C+ 1 操作码 指令 ANL 30H , #30H 的执行过程 操作数地址 内部 RAM 30H 30H P C+ 2 立即数 AL U “与” 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University ( 3) 寄存器寻址 寻址空间: R0 R7, A、 B、 CY(位), DPTR,其中由 RS1、 RS0两位的值选定工作寄存器区,其中 CY是一个特殊的寄存器,通常称之为位累加器。 指令选定的寄存器内容就是实际操作数,这种寻址方式称为寄存器寻址。其特点是被寻址的某个寄存器已隐含在操作码中,故有时称寄存器寻址为隐含寻址。 第三章 MCS-51系列单片机的指令系统 基于 KEIL和 PROTEUS的单片机技术 侯俊才 Northwest A&F University 有三种指令形式: 操作码 操作码 立即数 操作
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号