【计算机】3 mcs-51单片机指令系统和汇编语言程序示例

上传人:ldj****22 文档编号:51717825 上传时间:2018-08-16 格式:PPT 页数:151 大小:2.24MB
返回 下载 相关 举报
【计算机】3 mcs-51单片机指令系统和汇编语言程序示例_第1页
第1页 / 共151页
【计算机】3 mcs-51单片机指令系统和汇编语言程序示例_第2页
第2页 / 共151页
【计算机】3 mcs-51单片机指令系统和汇编语言程序示例_第3页
第3页 / 共151页
【计算机】3 mcs-51单片机指令系统和汇编语言程序示例_第4页
第4页 / 共151页
【计算机】3 mcs-51单片机指令系统和汇编语言程序示例_第5页
第5页 / 共151页
点击查看更多>>
资源描述

《【计算机】3 mcs-51单片机指令系统和汇编语言程序示例》由会员分享,可在线阅读,更多相关《【计算机】3 mcs-51单片机指令系统和汇编语言程序示例(151页珍藏版)》请在金锄头文库上搜索。

1、第3章 MCS-51单片机指令系统和汇编语言程序示例 第3章 MCS-51单片机指令系统和汇编语言程序示例3.1 MCS-51单片机指令系统概述3.2 寻址方式3.3 数据传送类指令3.4 算术运算类指令3.5 逻辑运算及移位指令3.6 控制转移类指令3.7 子程序调用与返回指令3.8 位操作类指令3.9 汇编程序格式与伪指令3.10 汇编程序设计示例第3章 MCS-51单片机指令系统和汇编语言程序示例3.1 MCS-51单片机指令系统概述3.1.1 指令、指令系统的概念指令是使计算机内部执行的一种操作,提供给用户编程使用的一种命令。由构成计算机的电子器件特性所决定,计算机只能识别二进制代码。

2、以二进制代码来描述指令功能的语言,称之为机器语言。由于机器语言不便被人们识别、记忆、理解和使用,因此给每条机器语言指令赋予助记符号来表示,这就形成了汇编语言。也就是说,汇编语言是便于人们识别、记忆、理解和使用的一种指令形式,它和机器语言指令一一对应,也是由计算机的硬件特性所决定的。第3章 MCS-51单片机指令系统和汇编语言程序示例计算机能够执行的全部操作所对应的指令集合,称为这种计算机的指令系统。从指令是反应计算机内部的一种操作来看,指令系统全面展示出了计算机的操作功能,也就是它的工作原理;从用户使用的角度来看,指令系统是提供给用户使用计算机功能的软件资源。要让计算机处理问题,首先要编写程序

3、。编写程序实际上是从指令系统中挑选一个指令子集的过程。因此,学习指令系统既要从编程使用的角度掌握指令的使用格式及每条指令的功能;又要掌握每条指令在计算机内部的微观操作过程,即工作原理,从而进一步加深对硬件组成原理的理解。第3章 MCS-51单片机指令系统和汇编语言程序示例指令一般有功能、时间和空间三种属性。功能属性是指每条指令都对应一个特定的操作功能;时间属性是指一条指令执行所用的时间,一般用机器周期来表示;空间属性是指一条指令在程序存储器中存储所占用的字节数。这三种属性在使用中最重要的是功能,但时间、空间属性在有些场合也要用到。如一些实时控制应用程序中,有时需要计算一个程序段的确切执行时间或

4、编写软件延时程序,都要用到每条指令的时间属性;在程序存储器的空间设计,或相对转移指令的偏移量计算时就要用到指令的空间属性。第3章 MCS-51单片机指令系统和汇编语言程序示例指令的描述形式有两种:机器语言形式和汇编语言形式。现在描述计算机指令系统及实际应用中主要采用汇编语言形式。采用机器语言编写的程序称之为目标程序。采用汇编语言编写的程序称之为源程序。计算机能够直接识别并执行的只有机器语言。汇编语言程序不能被计算机直接识别并执行,必须经过一个中间环节把它翻译成机器语言程序,这个中间过程叫做汇编。汇编有两种方式:机器汇编和手工汇编。机器汇编是用专门的汇编程序,在计算机上进行翻译;手工汇编是编程员

5、把汇编语言指令逐条翻译成机器语言指令。现在主要使用机器汇编,但有时也用到手工汇编。第3章 MCS-51单片机指令系统和汇编语言程序示例3.1.2 MCS-51单片机指令系统及其指令格式MCS-51单片机指令系统具有功能强、指令短、执行快等特点,共有111条指令。从功能上可划分成数据传送、算术操作、逻辑操作、程序转移位操作等五大类;从空间属性上分为单字节指令(49条)、双字节指令(46条)和最长的三字节指令(只有16条)。从时间属性上可分成单机器周期指令(64条)、双机器周期指令(45条)和只有乘、除法两条4个机器周期的指令。可见,MCS-51单片机指令系统在存储空间和执行时间方面具有较高的效率

6、。第3章 MCS-51单片机指令系统和汇编语言程序示例指令系统中的指令描述了不同的操作,不同操作对应不同的指令。但结构上,每条指令通常由操作码和操作数两部分组成。操作码表示计算机执行该指令将进行何种操作,操作数表示参加操作的数的本身或操作数所在的地址。MCS-51单片机的指令有无操作数、单操作数、双操作数三种情况。汇编语言指令有如下的格式:标号: 操作码助记符 目的操作数,源操作数 ;注释第3章 MCS-51单片机指令系统和汇编语言程序示例指令系统中的指令描述了不同的操作,不同操作对应不同的指令。但结构上,每条指令通常由操作码和操作数两部分组成。操作码表示计算机执行该指令将进行何种操作,操作数

7、表示参加操作的数的本身或操作数所在的地址。MCS-51单片机的指令有无操作数、单操作数、双操作数三种情况。汇编语言指令有如下的格式:标号: 操作码助记符 目的操作数,源操作数 ;注释第3章 MCS-51单片机指令系统和汇编语言程序示例为便于后面的学习,在这里先对描述指令的一些符号的约定意义作以说明:(1) Ri和Rn:表示当前工作寄存器区中的工作寄存器,i取0或1,表示R0或R1。n取07,表示R0R7。(2) #data:表示包含在指令中的8位立即数。(3) #data16:表示包含在指令中的16位立即数。(4) rel:以补码形式表示的8位相对偏移量,范围为-128127,主要用在相对寻址

8、的指令中。第3章 MCS-51单片机指令系统和汇编语言程序示例(5) addr16和addr11:分别表示16位直接地址和11位直接地址。(6) direct:表示直接寻址的地址。(7) bit:表示可位寻址的直接位地址。(8) (X):表示X单元中的内容。(9) (X):表示以X单元的内容为地址的存储器单元内容,即(X)作地址,该地址单元的内容用(X)表示。(10) / 和符号:“/”表示对该位操作数取反,但不影响该位的原值。“”表示操作流程,将箭尾一方的内容送入箭头所指另一方的单元中去。 第3章 MCS-51单片机指令系统和汇编语言程序示例3.2 寻 址 方 式3.2.1 立即寻址操作数直

9、接出现在指令中,紧跟在操作码的后面,作为指令的一部分与操作码一起存放在程序存储器中,可以立即得到并执行,不需要经过别的途径去寻找,故称为立即寻址。汇编指令中 ,在一个数的前面冠以“#“符号作前缀,就表示该数为立即寻址。例如:MOV A,#30H指令中30H就是立即数。这一条指令的功能是执行将立即数30H传送到累加器A中的操作。该指令操作码的机器代码为74H,占用一个字节存储单元,立即数30H存放在紧跟在其后的一个字节存储单元,成为指令代码的一部分。整条 指令的机器码为74H 30H。第3章 MCS-51单片机指令系统和汇编语言程序示例 3.2.2 寄存器寻址在指令选定的某寄存器中存放或读取操作

10、数,以完成指令规定的操作,称为寄存器寻址。例如:MOV A,R0指令中源操作数和目的操作数都是寄存器寻址。该指令的功能是把工作寄存器R0中的内容传送到累加器A中,如R0中的内容为30H,则执行该指令后A的内容也为30H。寄存器寻址按所选定的工作寄存器R0R7进行操作,指令机器码的低3位的八种组合000,001,110,111分别指明所用的工作寄存器R0,R1,R6,R7。如:MOV A,Rn(n=07),这8条指令对应的机器码分别为E8HEFH。在汇编指令中,累加器A作为寄存器寻址的操作数,但在机器码中无需指明,它由操作码隐含。第3章 MCS-51单片机指令系统和汇编语言程序示例3.2.3 寄

11、存器间接寻址由指令指出某一寄存器的内容作为操作数地址的寻址方法,称为寄存器间接寻址。这里需要强调的是:寄存器中的内容不是操作数本身,而是操作数的地址,到该地址单元中才能得到操作数。寄存器起地址指针的作用。例如:MOV A,R1指令的源操作数是寄存器间接寻址。该指令的功能是将以工作寄存器R1中的内容为地址的片内RAM单元的数据传送到A中去。例如:若R1中的内容为80H,片内RAM地址为80H的单元中的内容为2FH,则执行该指令后,片内RAM 80H单元的内容2FH被送到A中。寄存器间接寻址示意图如图3.1所示。第3章 MCS-51单片机指令系统和汇编语言程序示例图3.1 寄存器间接寻址示意图 第

12、3章 MCS-51单片机指令系统和汇编语言程序示例3.2.4 直接寻址指令中直接给出操作数所在的存储器地址,以供取数或存数的寻址方式称为直接寻址。例如:MOV A,40H指令中的源操作数就是直接寻址,40H为操作数的地址。该指令的功能是把片内RAM地址为40H单元的内容送到A中。该指令的机器码为E5H 40H,8位直接地址在指令操作码中占一个字节。MCS-51系列单片机的直接寻址可用于访问片内、外数据存储器,也可用于访问程序存储器。第3章 MCS-51单片机指令系统和汇编语言程序示例直接寻址可访问片内RAM的低128个单元(00H7FH),同时也是用于访问高128个单元的特殊功能寄存器SFR的

13、唯一方法。由于52子系列的片内RAM有256个单元,其高128个单元与SFR的地址是重叠的。为了避免混乱,单片机规定:直接寻址的指令不能访 问片内RAM的高128个单元(80HFFH),若要访问这些单元只能用寄存器间接寻址指令,而要访问SFR只能用直接寻址指令。另外,访问SFR可在指令中直接使用该寄存器的名字来代替地址,如MOV A,80H,可以写成MOV A,P0,因为P0口的地址为80H。直接寻址访问程序存储器的转移、调用指令中直接给出了程序存储器的地址,执行这些指令后,程序计数器PC的内容将更换为指令直接给出的地址,机器将改为访问以所给地址为起始地址 的存储区间,取指令(或取数),并依次

14、执行。第3章 MCS-51单片机指令系统和汇编语言程序示例3.2.5 变址寻址图3.2 变址寻址示意图 第3章 MCS-51单片机指令系统和汇编语言程序示例3.2.6 相对寻址相对寻址是以当前程序计数器PC值加上指令中给出的偏移量rel,而构成实际操作数地址的寻址方法。它用于访问程序存储器,常出现在相对转移指令中。在使用相对寻址时要注意以下两点:(1) 当前PC值是指相对转移指令的存储地址加上该指令的字节数。例如:JZ rel 是一条累加器A为零就转移的双字节指令。若该指令的存储地址为2050H,则执行该指令时的当前PC值即为2052H。即当前PC值是对相对转移指令取指结束时的值。第3章 MC

15、S-51单片机指令系统和汇编语言程序示例(2) 偏移量rel是有符号的单字节数。以补码表示,其值的范围是-128+127(00HFFH),负数表示从当前地址向前转移,正数表示从当前地址向后转移。所以,相对转移指令满足条件后,转移的地址(目的地址)为:目的地址=当前PC值+rel = 指令存储地址+指令字节数+rel第3章 MCS-51单片机指令系统和汇编语言程序示例3.2.7 位寻址位寻址是在位操作指令中直接给出位操作数的地址,可以对片内RAM中的128位和特殊功能寄存器SFR中的93位进行寻址。第3章 MCS-51单片机指令系统和汇编语言程序示例3.3 数据传送类指令第3章 MCS-51单片

16、机指令系统和汇编语言程序示例3.3.1 访问片内数据存储器的一般数据传送指令该类指令的功能是实现数在片内RAM单元之间、寄存器之间、寄存器与RAM单元之间的传送。所有指令具有统一的格式,其格式如下:MOV ,;目的操作数单元源操作数(或单元)操作码助记符都是“MOV“,目的操作数和源操作数不同寻址方式的组合就派生出该类的全部指令。因此,记忆这类指令的关键在于掌握两个操作数的各种寻址方式的组合关系。第3章 MCS-51单片机指令系统和汇编语言程序示例图3.3 访问片内RAM的一般传送指令操作关系图 第3章 MCS-51单片机指令系统和汇编语言程序示例表3.1 访问片内RAM的一般传送指令表第3章 MCS-51单片机指令系统和汇编语言程序示例第3章 MCS-51单片机指令系统和汇编语言程序示例例1 设内部RAM(30H)=40H,(40H)=10H, (10H)=00H(P1)=CAH

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

当前位置:首页 > 行业资料 > 其它行业文档

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