单片机汇编语言课件_第1页
单片机汇编语言课件_第2页
单片机汇编语言课件_第3页
单片机汇编语言课件_第4页
单片机汇编语言课件_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

单片机汇编语言

汇编语言

计算机程序设计语言是计算机能够理解和执行的语

言。它随着计算机的诞生而诞生,它随着计算机的发

展而发展。迄今为止,计算机的程序设计语言很多,

但通常分为机器语言、汇编语言、高级语言三种。

1、机器语言是一种直接为计算机识别和执行的机器级

语言。有两种表现形式:一种是二进制形式,一种是十

六进制形式。机器语言的二进制形式由二进制代码“0”

和“1构成,可以直接存放在计算机存储器内。机器语言

的十六进制形式,由十六个数字符0-F组成。机器语言难

读、难写、难记、难改,一般不用来编写程序。

2、汇编语言是人们用来替代机器语言进行程序设计的

语言。由助记符、保留字和伪指令组成。

3、高级语言是面向过程和问题并能独立于机器的通用

程序设计语言。

>匚编语言

。用助记符编写的程序设计语言称为汇编语言。

。汇编语言是面向机器的语言,和CPU有关,不同

的CPU的机器有不同的汇编语言;

♦:♦汇编语言属于低级语言;

♦:♦特点:用汇编程序设计单片机程序时,对数据的

存放、寄存器和工作单元的使用等具体工作要由

设计者来安排。而设计高级语言时,这些工作都

由计算机自动安排,程序设地者不必过问。

汇编语言

■指令的寻址方式

9常用指令

❷伪指令

■指令的时序

常用符号

Rn:工作寄存器中的寄存器RO、R1...R7之一;

Ri:工作寄存器中的寄存器R0或R1;

#data:8位立即数;

#datal6:16位立即数;

direct:片内RAM或SFR的地址(8位);

@:寄存器间接寻址;

Bit:片内RAM或SFR的位地址;

addrl1:H位目的地址;

addrl6:16位目的地址;

rel:8位地址偏移量,偏移范围为-128〜127;

/:该位求反后参与操作,不影响该位;

(X):地址单元中的内容

箭头左边的内容送入箭头右边的单元内

第二章汇编铸■言如汇编程本

符号指令的构成

。操作助记符[目的操作数][源操作数]

。操作助记符,也称指令助记符。它以符合形式给

出该指令进行什么操作。

如:数据传送MOV,加IADD,逻辑与ANL。

。操作数可以是操作数本身,可以是寄存器,也可

以是操作数的地址。

。有0,1,2个操作数多种情况

♦:♦一条带操作数的指令要指明用什么方式寻找操作

数,寻找操作数的方式称为寻址方式。

第二章汇编铸■言如汇编程本

2.1指令的寻址方式

O立即寻址

I直接寻址

■寄存器寻址

■寄存器间接寻址

♦变址寻址

J___________________

相对寻址

_____________________

「位寻址

第二章汇编铸■言如汇编程本

2.1.1立即寻址

指令中直接给出操作数的寻址方式,在操作码

之后,称为立即数,用"#"表示。

如:MOVA,#80H

MOVDPTR,#1245H

第二章汇偏语言融汇编看图

2.1.2直接寻址

直接使用数所在单元的地址找到了操作数,所以称这种

方法为直接寻址。

操作数在SFR、内部RAM、位地址(即操作数据在内部

数据存储器或特殊功能寄存器中)空间。

如:

MOVA,OOH

MOVC,60H

MOVA,OFOH

MOVPSWr#08H

第二章汇编铸■言如汇编程本

2.1.3寄存器寻址

对选定的工作寄存器RO〜R7、累加器A、通用寄

存器B、地址寄存器DPTR中的数进行操作。

例:MOVA,R0;将R0工作寄存器中的数据送到

累加器A中去。

第二章汇编铸■言如汇编程本

2.1.3寄存器寻址

问题:我们知道,工作寄存器就是内存单元的一部

分,如果我们选择工作寄存器组3则R0就是RAM的00H单

元,那么这样一来,MOVA,00H和MOVA,R0不就没

什么区别了吗?

的确,这两条指令执行的结果是完全相同的,都是将

00H单元中的内容送到A中去,但是执行的过程不同,执行

第一条指令需要2个机器周期,而第二条则只需要1个机器周

期,第一条指令变成最终的目标码要两个字节(E5H00H),

而第二条则只要一个字节(E8H)就可以了。

第二章汇编铸■言如汇编程本

2.1.4寄存器间接寻址

把地址放在另外一个寄存器中,根据这个寄存

器中的数值决定该到哪个单元生取数据。

RO,R1—8位地址,片内低|操作数在片内卜

RAM中

❖DPTR16位,片外64

如:MOVA,操作数在片

外RAM中

MOVXA,@

MOVXA,@DP

操作数在片

外RAM中

第二章汇编铸■言如汇编程本

2.1.5变址寻址

以DPTR或PC为基址寄存器,累加器A为变址

寄存器。把两者内容相加,结果作为操作数的地

址。常用于查表操作。

MOVCAA@A+DPTR;(A+DPTR)-A

MOVCA,@A+PC;PC+1-PC,(A+PC)-A

第二章汇编铸■言如汇编程本

将PC中的当前内容与指令第二字节给出的数相加,

结果作为跳转指令的转移地址(转移目的地址)。PC

中的当前内容称为基地址(本指令后的字节地址)指

令第二字节给出的数据称为偏移量,1字节带符号

数。

常用于跳转指令。

如:JC23H

若C=0,不跳转;

C=L跳转.

第二章汇编铸■言如汇编程本

2.L7位寻址

对片内RAM的位寻址区和某些可位寻址的特殊功能

寄存器进行位操作时的寻址方式。

如:SETB3DH;将27H.5位置1

CLRC;Cy位清0

第二章汇编铸■言如汇编程本

2.1.8小节

寻址方式寻址空间(操作数存放空间)

立即寻址程序存储器

直接寻址片内RAM低128字节、SFR

寄存器寻址工作寄存器R0〜R7,A,B,DPTR

片内RAM:@RO,@R1,SP

寄存器间接寻址

片外RAM:@RO,@R1,@DPTR

变址寻址程序存储器:@A+PC,@A+DPTR

相对寻址程序存储器256字节范围内:PC+偏移量

片内RAM的位寻址区(20H〜2FH字节地址)

位寻址

某些可位寻址的SFR

第二章汇编铸■言如汇编程本

二.〉匚编语言和〉匚编程序

・指令的寻址方式

。常用指令

■指令的时序

第二章汇编铸■言如汇编程本

2.2常用指令

数据传输与交换类指令

算数运算类指令

逻辑运算与移位类指令

位操作类指令

第二章汇编铸■言如汇编程本

助记符:

MOV、MOVX、MOVC

XCH、XCHD、SWAP

PUSH、POP

源操作数寻址方式(5种):

立即寻址、直接寻址、寄存器寻址、

寄存器间接寻址、变址寻址。

目的操作数寻址方式(3种):

直接寻址、寄存器寻址、寄存器间接寻址

除了目的操作数为ACC的指令影响奇偶标志P外,一般

木影响标志位。

第二章MSC51单片机捐公乐优

2.2.1数据传送与交换类指令

♦:♦十六位数的传递指令(1条)

MOVDPTR,#datal6

8051是一种8位机,这是唯一的一条16位立即数传递指

令。功能:将一个16位的立即数送入DPTR中去。其中高8位

送入DPH,低8位送入DPL。

第二章汇编铸■言如汇编程本

2.2.1数据传送与交换类指令

例:MOVDPTR,#1234H

执行完了之后DPH中的值为12H,DPL中的值为34H。

如果我们分别向DPH,DPL送数,则结果也一样。

如下面两条指令:MOVDPH,#12H

MOVDPL,#34Ho

则就相当于执行了MOVDPTR,#1234Ho

第二章汇编铸■言如汇编程本

2.2.1数据传送与交换类指令

。八位数的传递指令(15条)

MOVA,#dataMOVA,direct

MOVRn,#dataMOVRn,A

MOVdirect,#dataMOVA,Rn

MOV@Ri,#dataMOV@Ri,A

MOVdirect,directMOVA,@Ri

MOVdirect,RnMOVdirect,@Ri

MOVRn,directMOV@Ri,direct

MOVdirect,A

第二章汇编铸■言如汇编程本

2.2.1数据传送与交换类指令

。累加器A与片外RAM之间的数据传递类指令(4条)

MOVXA,@Ri

MOVX@Ri,A

MOVXA,@DPTR

MOVX@DPTR,A

说明:

1.在51中,与外部存储器RAM打交道的只可以是A累加

器。所有需要送入外部RAM的数据必需要通过A送去,而所

有要读入的外部RAM中的数据也必需通过A读入。

在此我们可以看出内外部RAM的区别了,内部RAM间

可以直接进行数据的传递,而外部则不行。

比如,要将外部RAM中某一单元(设为0100H单元的数

据)送入另一个单元(设为0200H单元),也必须先将0100H单

元中的内容读入A,然后再送到0200H单元中去。

2.2.1数据传送与交换类指令

2.要读或写外部的RAM,当然也必须要知道RAM的地址,

在后两条指令中,地址是被直接放在DPTR中的。而前两

条指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提

供低8位地址。高8位地址由P2口来提供。

3.使用时应先将要读或写的地址送入DPTR或Ri中,然后再

用读写命令。

例:将外部RAM中100H单元中的内容送入外部RAM中200H

单元中。

MOVDPTR,#0100H

MOVXA,@DPTR

MOVDPTR,#0200H

MOVX@DPTR,A

第二章汇编铸■言如汇编程本

2.2.1数据传送与交换类指令

。读程序存储器指令(2条)

MOVCA,@A+DPTR

MOVCA,@A+PC

本组指令是将ROM中的数送入A中。本组指令也被称为查

表指令,常用此指令来查一个已做好在ROM中的表格

说H:查找到的结果被放在A中,因此,本条指令执行前

后,A中的值不一定相同。

第二章汇编铸■言如汇编程本

2.2.1数据传送与交换类指令

例:有一个数在R0中,要求用查表的方法确定它的平方值

(此数的取值范围是0-5)

MOVDPTR,#100H

MOVA,RO

MOVCA,@A+DPTR

••♦•

ORG01OOH

DB0,1,4,9,16,25

第二章汇编铸■言如汇编程本

2.2.1数据传送与交换类指令

。堆栈操作

PUSHdirect;SP^SP+1,(SP)一(direct)

POPdirect;(direct)—(SP),SP<-SP-1

第一条为压入指令,就是将direct中的内容送入堆栈中,

第二条为弹出指令,就是将堆栈中的内容送回到direct中。

例:MOVSP,#5FH

MOVA,#100

MOVB,#20

PUSHACC

PUSHB

第二章汇编铸■言如汇编程本

2.2.1数据传送与交换类指令

♦:♦数据交换指令(5条)

1.字节交换指令XCH

XCHA,Rn

XCHA,direct

XCHA,@Ri

2.半字节交换指令XCH

XCHDA,@Ri

SWAPA

第二章汇编铸■言如汇编程本

2.2.2算数运算类指令

助记符:

ADD、ADDC、INC

SUBB、DEC、DA

源操作数寻址方式(4种):

立即寻址、直接寻址、寄存器寻址、

寄存器间接寻址。

目的操作数寻址方式(1种):

寄存器(A)寻址

影响PSW有关标志位。

第二章MSC51单片机捐公乐优

2.2.2算数运算类指令

加法类指令

1.不带进位位的加法指令ADD

2.带进位位的加法指令ADDC

3.增量指令INC

第二章汇编铸■言如汇编程本

2.2.2算数运算类指令

不带进位位的加法指令ADD

ADDA,#data;A+data-A

ADDA,direct;A+(direct)-A

ADDA,Rn;A+Rn-A

ADDA,@Ri;A+(Ri)一A

用途:将A中的值与源操作数所指内容相加,最终结果

存在A中。

第二章汇编铸■言如汇编程本

2.2.2算数运算类指令

带进位位的加法指令ADDC

ADDCA,Rn;A+Rn+C丫-A

ADDCA,direct;A+(direct)+CY-A

ADDCA,@Ri;A+(Ri)+CY一A

ADDCA,#data;A+data+CY-A

用途:将A中的值和其后面的值以及进位位C中的值相

加,最终结果存在A,常用于多字节数运算中。

质日由于51单片机是一种8位机,所以只能做8位的数学运

算,但!位运算的范围只0有〜F这FH在实际工作中是不够的,

因此就要进行扩展,一般是将2个8位(两字节)的数学运算合起

来,R位的运算,这样,可以表达的数的范围就可以

达到O-FFFFH

第二章汇编铸■言如汇编程本

2.2.2算数运算类指令

。增量指令INC

INCA;A+1-A

INC即;RJZ+1—

INCdirect;direct+1一direct

INC@Rz;(Rz)+—(Rz)

INCDPTR;DPTR+1―DPTR

用途:将操作数加1后再送回操作数。

说明:除了操作数为A的指令影响奇偶标志P外,一般

不影响标志位。

第二章汇编铸■言如汇编程本

2.2.2算数运算类指令

♦:♦减法类指令

1.带借位的减法指令SUBB

2.减量指令DEC

2.2.2算数运算类指令

带借位的减法指令SUBB

SUBBA,Rn;A-R〃-CY—A

SUBBA,direct;A-(direct)-CY->A

SUBBA,@Rz;A-(Rz)-CY-A

SUBBA,#data;A-data-CY一A

用途:将A中的值减去源操作数所指内容以及进位位C

中的值,最终结果存在A中。

说明:

1.没有不带借位W的,减如法果指需令要做带位的减法指令(在

做第一次相减时),只要将即可。

2.对带符号数,要注意标志。,

第二章汇编铸■言如汇编程本

2.2.2算数运算类指令

。减量指令DEC

DECA;A-1—A

DEC即;即-1一RJ?

DECdirect;direct-1一direct

DEC@Rz;(Rz)-l^(Rz)

用途:将操作数减1后再送回操作数。

说明:

1.险了操作数为A的指令影响奇偶标志P外,一般不影

响标志位。

2.DPTR不能作为减量指令的操作数

第二章汇编铸■言如汇编程本

2.2.3逻辑运算及移位类指令

助记符:

ANL、ORL、XRL、CPL

RR、RL、RRC、RLC

主要用于对2个操作数按位进行逻辑操作或对A进行循

环移位操作,将结果送到A或直接寻址单元。

京主要操作

与、或、异或、移位、取反、清零等。

立对标志位的影响

除了目的操作数为A的指令影响奇偶标志P,CY外,一般

不影响标志位。

第二章MSC51单片机捐公乐优

2.2.3逻辑运算及移位类指令

逻辑运算类指令

1.逻辑或运算指令

2.逻辑与运算指令

3.逻辑异或运算指令

4.取反指令

第二章汇编铸■言如汇编程本

______

2.2.3逻辑运算及移位类指令

逻辑或指令

ORLA,Rn;AVRn一A

ORLA,direct;AV(direct)一A

ORLA,@Ri;AV(Ri)一A

ORLA,#datajAVdata->A

ORLdirect,A;(direct)VA一(direct)

ORLdirect,#data;(direct)Vdata一(direct)

用途:除了操作数为A的指令影响奇偶标志P外,一般

不影响标志位。

说明:后两条指令,若直接地址为I/O端口,则为“读-

改一写”操作。

—iim”・01恤肝;.出•/1-第二拿汇编语言制汇编程本

2.2.3逻辑运算及移位类指令

逻辑与指令

ANLA,Rn;AARn—A

ANLA,direct;AA(direct)一A

ANLA,@Ri;AA(Ri)一A

ANLA,#data;A/\data->A

ANLdirect,A;(direct)AA一(direct)

ANLdirect,#data;(direct)Adata一(direct)

用途:除了操作数为A的指令影响奇偶标志P外,一般

不影响标志位。

说明:后两条指令,若直接地址为I/O端口,则为“读-

改一写”操作。

—iim”・01恤肝;.出•/1-第二拿汇编语言制汇编程本

2.2.3逻辑运算及移位类指令

逻辑异或指令

XRLA,Rn;A@Rn-A

XRLA,direct;A㊉(direct)一A

XRLA,@Ri;A㊉(Ri)一A

XRLA,#data;A®data一A

XRLdirect,A;(direct)®A一(direct)

XRLdirect,#data;(direct)㊉data一(direct)

用途:除了操作数为A的指令影响奇偶标志P外,一般

不影响标志位。

说明:后两条指令,若直接地址为I/O端口,则为“读-

改一写”操作。

—iim”・01恤肝;.出•/1-第二拿汇编语言制汇编程本

2.2.3逻辑运算及移位类指令

清零与取反指令

CPLA;A-A

CLRA;0一A

远明:清零指令影响奇偶标志P,取反指令不影响任何

标志位。

第二章汇编铸■言如汇编程本

2.2.3逻辑运算及移位类指令

♦:♦循环移位类指令

1.循环右移指令RR

2.循环左移指令RL

3.带进位循环右移指令RRC

4.带进位循环左移指令RLC

一._

第二#汇编语言而汇编程本

2.2.3逻辑运算及移位类指令

说明:后两条指令,影响P标志和CY。

第二章汇编铸■言如汇编程本

2.2.3逻辑运算及移位类指令

例如:利用移位实现乘2、除2运算

第二章汇编铸■言如汇编程本

2.2.4位操作指令

>MCS-51单片机的硬件结构中,有一个位处理器(又称布尔

处理器),它有一套位变量处理的指令集,包括位变量传

送、逻辑运算、控制程序转移等。

>在MCS-51中,有一部份RAM和一部份SFR是具有位寻址

功能的。

总位操作区:内部RAM的20H-2FH这16个字节单元,即128个位

单元(位地址空间位00〜7FH);

京可以位寻址的特殊功能寄存器:8051中有一些SFR是可以进行

位寻址的,这些SFR的特点是其字节地址均可被8整除,如A累加

器,B寄存器、PSW、IP(中断优先级控制寄存器)、IE(中断允许

控制寄存器)、SCON(串行口控制寄存器)、TCON(定时器/计数器

控制寄存器)、P0-P3Q/O端口锁存器)。

立在进行位处理时,CY用作“位”。

第二章MSC51单片机捐公乐优

2.2.4位操作指令

位地址表达方式

/以PSW中位4(RS1)为例。

/直接(位)地址方式:如D4H;

,点操作符号方式:如PSW.4,D0H.4;

/位名称方式:如RS1;

/用户定义名方式:如用伪指令bit。

例如:SUB.REGRS1

定义后,可月jSUB.REG^RSl

第二章MSC51单片机捐公乐优

2.2.4位操作指令

位操作指令

/位传送指令

/位清0和置位

/位逻辑运算指令

第二章MSC51单片机捐公乐优

2.2.4位操作指令

。位传送指令

MOVC,bit;bit一C

MOVbit,C;C->bit

用途:这组指令的功能是实现位累加器(CY)和其它位地

址之间的数据传递。

例:MOVC,P1.0Y等PLO的状态送给C。

MOVPl.O,C中的状态送到P1.0

;引脚上去。

第二章汇编铸■言如汇编程本

2.2.4位操作指令

。位清0和置位

CLRC;使CY=O

CLRbit;使指令的位地址等于0。

SETBC;使CY=1

SETBbit;使指定的位地址等于1。

用途:这组指令的功能是实现位累加器(CY)和其它位地

址置位或者复位操作。

例:CLRP1.0;使P1.0变为0

SETBP1.0;使P.O变为1

一一.第二章汇编铸■言如汇编程本

2.2.4位操作指令

♦:♦位逻辑运算指令

ANLC,bit;CY与指定位的值相与,结果送CY

ANLC,/bit;先将位地址bit中的值取出后取反,再和

;CY相与,结果送回CY。

ORLC,bit;CY与指定位的值相与,结果送CY

ORLC,/bit;先将位地址bit中的值取出后取反,再和

;CY相与,结果送回CY。

CPLC;使CY值取反。

CPLbit;使位地址bit中的值取反。

用途:这组指令的功能是实现位地址数据位逻辑运算。

第二章汇编铸■言如汇编程本

MCS-51提供了较丰富的控制转移指令,因此在编程上相

当灵活方便。

包括以下类型:

,无条件转移和条件转移

,相对转移和绝对转移

/长转移和短转移

/调用与返回指令

助记符:

AJMP、LJMP、SJMP、JMP、ACALL、LCALL、JZ、

JNZ、CJNE、DJNZ

第二章MSC51单片机捐公乐优

无条件转移类指令

无条件转移是指不规定条件的程序转移。

短转移类指令:AJMPaddrll

长转移类指令:LJMPaddrl6

相对转移指令:SJMPrel

■间接转移指令:JMP@A+DPTR

第二章MSC51单片机捐公乐优

1.无条件转移类指令

转移范围:

短转移类指令:AJMPaddrll2KB

长转移类指令:LJMPaddrl664KB

相对转移指令:SJMPrel-128〜+127

原则上,所有用SJMP或AJMP的地方都可以用

LJMP来替代

AJMP、LJMP后跟的是绝对地址,

而SJMP后跟的是相对地址。

第二章MSC51单片机捐公乐优

2.2.5控制转移指令

例:MOVDPTR,#TAB;将TAB代表的地址送入DPTR

JMP@A+DPTR;跳转

TAB:AJMPROUTO;跳转ROUTO开始的程序段

AJMPROUT1;跳转ROUT1开始的程序段

AJMPROUT2;跳转ROUT2开始的程序段

AJMPROUT3;跳转ROUT3开始的程序段

程序将根据A中的内容转移到不同的

ROUTO:程序段去执行散转。

ROUT1:A=0,转ROUTO

ROUT2:A=2,转R0UT1

ROUT3:A=4,转R0UT2

A=6,转R0UT3

第二章MSC51单片机捐公乐优

2.2.5控制转移指令

2.条件转移类指令

条件转移指令是指在满足一定条件时进行相对转移,否

则程序继续执行本指令的下一条指令。

累加器A状态转移指令

比较不等转移指令

减1不为零转移指令

第二章MSC51单片机捐公乐优

2.2.5控制转移指令

累加器状态转移指令

JZrel;如果A=0,则转移,否则顺序执行。

JNZrel;如果ARO,就转移。

转移到相对于当前PC值的8位移量的地址去。即:

新的PC值=当前PC+偏移量rel

在编写汇编语言源程序时,可以直接写成:

JZ标号;即转移到标号处。

第二章MSC51单片机相令系挑

比较不等转移指令

CJNEA,#data,rel

CJNEA,direct,rel

CJNERn,#data,rel

CJNE@Ri,#data,rel

此类指令的功能是将两个操作数比较,如果两者相等,

就顺序执行,如果「相等,就转移。

转移到相对于当前PC值的8位移量的地址去。即:

新的「<2值=当前PC+偏移量rel

同样,在编写汇编语言源程序时,可以直接写成:

CJNEA,#data,标号;即转移到标号处。

第二章MSC51单片机捐公乐优

2.2.5控制转移指令

比较不等转移指令

利用这些指令,可以判断两数是否相等。

但有时还想得知两数比较之后哪个大,哪个小,本

条指令也具有这样的功能:

如果两数不相等,则CPU还会用CY(进位位)来反映

哪个数大,哪个数小。

如果前面的数大,则CY=O,否则CY=1。

因此在程序转移后再次利用CY就可判断出哪个数

大,哪个数小了。

第二章MSC51单片机捐公乐优

2.2.5控制转移指令

因此最终结果是:

例MOVA,RO

CJNEA,#10H,LI如果R0=10H,则Rl=00H;

MOVRI,#0如果RO10H,则Rl=0AAH;

AJMP如果ROvlOH,则R1=OFFH。

LI:JC

MOVRI,#OAAH

AJMP

L2:MOVRI,#0FFH

L3:SuJMPL3

第二章MSC51单片机捐公乐优

2.2.5控制转移指令

减1不等于零转移指令

DJNZRn,rel

DJNZdirect,rel

这两条指令把源操作数减1,结果回送到源操作数

中去,如果结果不为0则转移。

转移到相对于当前PC值的8位移量的地址去。

即:

同样,慰鞭蠢ft雕窗翳界以直接写成:

DJNZRn,标号;即转移到标号处。

第二章MSC51单片机捐公乐优

2.2.5控制转移指令

将23H单元中的数连续相加,

存至A中,每加一次,23H单

元中的数值减1,直至减到0,

共加(23H)次。

本例中的23H中的数是10,实

际就是求:

1+2++10=?

第二章MSC51单片机捐公乐优

2.2.5控制转移指令

3.调用与返回指令

在程序设计中,通常把具有一定功能的公用程序段编制成

子程序,当主程序需要使用子程序时用调用指令,而在子

程序的最后安排一条子程序返回指令,以便执行完子程序

后能返回主程序继续执行。

长调用指令:LCALLaddrl6

短调用指令:ACALLaddrll

子程序返回指令:RET

中断子程序返回指令:RETI

第二章MSC51单片机捐公乐优

2.2.5控制转移指令

4.空操作指令

NOP

空操作,就是什么事也不干,停一个周期,一般用作短

时间的延时。

第二章MSC51单片机捐公乐优

二.〉匚编语言和〉匚编程序

・指令的寻址方式

常用指令

■指令的时序

第二章汇编铸■言如汇编程本

______

2.3伪指令

伪指令:对汇编起某种控制作用的特殊命令,但自身并

不产生机器码,不属于指令系统,而仅仅为汇编服务的一些

指令,因此称为伪指令。

不同汇编程序允许的伪指令并不完全相同,但是一些基

本的伪指令在大部分汇编程序中都能使用。51中常用的伪指

令分为5大类:

。程序计数与结束伪指令:ORG,END;

。符号定义伪指令:EQU,DB,DW,DS,BIT,SET等;

附加文件指令:INCLUDE;

。程序清单格式化伪指令:TITLE,PAGE;

。一般控制伪指令:LIST,NOLIST,NOCODEo

第二章汇编铸■言如汇编程本

2.3伪指令

❖ORG

功能:程序计数伪指令,用于设置由表达式决定的初始

地址,ORG也称为起始伪指令。表达式缺省为0。

格式:ORG16位地址

例如:||

ORG2000H

7440START:MOVA,#40H2000H74

40

第二章汇编铸■言如汇编程本

2.3伪指令

功能:汇编语言源程序结束的标志,在END以后的所有

指令,汇编程序不再处理。一个源程序只有一个END指令,

放在所有指令的最后,若没有END指令,编译将报错。

格式:END

例如:

END

编译器

不处理

ORG2000H

7440START:MOVA,#40H

第二章汇编铸■言如汇编程本

2.3伪指令

❖EQU

功能:将一个数值或寄存器名赋给一个指定的符号名。

格式:符号名EQU表达式/寄存器名

例如:

DELYEQU3344H

ROTEQU40H

MOVDPTR,#DELY

MOVDPTR,#3344H

MOVROT,A

MOV40H,A

第二章汇编铸■言如汇编程本

2.3伪指令

❖DB

功能:从指定的地址单元开始,定义若干字节的数据。

格式:标号DB8位表达式

例如:

ORG2000H2000H

TAB:DB14H,26,'A'

DBOAFH,、BC'

第二章汇编铸■言如汇编程本

2.3伪指令

❖DW

功能:从指定的地址单元开始,定义若干字(16位)的数

据。

格11—1^式***2•:1标/J号DW16位表达式

例如:2000H74H

ORG2000H23H

TAB:DW7423H,00ABHOOH

DW0AF0HABH

OAH

FOH

第二章汇编铸■言如汇编程本

2.3伪指令

❖BIT

功能:将一个位地址赋给指定的符号。

格式:符号名BIT位地址

例如:

CTRLBITPO.O

RSTBIT90H

SETBCTRL

SETBRST

第二章汇编铸■言如汇编程本

二.〉匚编语言和〉匚编程序

・指令的寻址方式

常用指令

Q.峥

■指令的时序

第二章汇编铸■言如汇编程本

______

2.4指令的时序

241指令、机器、状态和振荡周期

2.4.2MCS-51指令的时序

2.4.3MCS-51指令执行的过程

第二章汇编铸■言如汇编程本

241指令、机器、状态和振荡周期

单片机以晶体振荡器的振荡周期(或者外部引入的时钟

周期)为最小的时序单位,片内的各种操作都以此周期为时

序基准。

振荡频率2分频后形成状态周期,振荡频率12分频后形

成机器周期。1〜4个机器周期确定一条指令的执行时间,这

个事件就是指令周期。

4种时序单位中,振荡周期和机器周期是单片机内部计

算其他时间(如:波特率,定时器定时时间)的基本时序单

位。

第二章汇编铸■言如汇编程本

241指令、机器、状态和振荡周期

如:当单片机外接12MHz晶振时的各种时序单位大小如

下:

1

振荡周期二—-0.0833us

fOSC12MHz

22

状态周期二=0.1667us

OSC12MHz

1212

机器周期二=lllS

OSC12MHz

指令周期=(1〜4)机器周期=1〜4〃s

第二章汇编铸■言如汇编程本

2.4.28051单片机指令的时序

S1S2S3S4S5S6SIS2S3S4S5S6

P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2

OSC

ALE

读下一个操作庭

—读操作码读下一个操作码

,(丢弃)

r.1一4

<A>S1S2S3S4S5S6

单字节单周期指令伊:INCA

——读操作码

温馨提示

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

评论

0/150

提交评论