首页 理论教育 汇编语言语句种类和格式-《单片机应用技术》

汇编语言语句种类和格式-《单片机应用技术》

时间:2023-10-17 理论教育 版权反馈
【摘要】:汇编语言编写的程序由一系列语句组成,汇编语言的语句分为指令性语句和指示性语句。对MCS-51单片机而言,指令性语句就是前面介绍的111条指令,是进行汇编语言程序设计的基本语句,每条指令性语句汇编后都有与之对应的机器码供CPU执行。汇编语言的指令性语句的格式在前面已作介绍,此处不再赘述。

汇编语言语句种类和格式-《单片机应用技术》

汇编语言编写的程序由一系列语句组成,汇编语言的语句分为指令性语句和指示性语句。

1.指令性语句

指令性语句是采用指令助记符构成的汇编语言语句。对不同的微型机,指令性语句各不相同。对MCS-51单片机而言,指令性语句就是前面介绍的111条指令,是进行汇编语言程序设计的基本语句,每条指令性语句汇编后都有与之对应的机器码供CPU执行。汇编语言的指令性语句的格式在前面已作介绍,此处不再赘述。

2.指示性语句

指示性语句又称伪指令语句,简称伪指令。伪指令虽然与真指令有类似的形式,但在汇编时并不会产生可供机器执行的机器码,它只是提供汇编要求,告诉汇编程序如何进行汇编,并指导汇编过程。伪指令语句的格式为:

[标号:]定义符 [参数表][;注释]

在MCS-51汇编语言中,常用的伪指令共有7条,下面分别进行介绍:

(1)汇编起始伪指令ORG(Origin)。

格式:[标号:] ORG addr16

功能:用于规定ORG之后的程序或数据的起始地址。在汇编时由addr16确定此语句下面第一条指令(或第一个数据)的地址。该段源程序(或数据块)就连续存放在以后的地址内,直到遇到另一条ORG伪指令为止。例如:

ORG 1000H

START:MOV R0,#50H

MOV A,R4

ADD A,@R0

汇编后目标代码在存储器中存放的结果安排如下,起始地址是1000H。

注意:

①在每一个汇编语言源程序的开始,都要利用ORG伪指令来指定该程序在存储器中存放的起始位置。若省略,则默认该程序从0000H单元开始存储。

②在一个源程序中可以多次使用ORG指令,以规定不同程序段的起始位置,但所规定的地址应从小到大且不允许有重叠。

(2)汇编结束伪指令END。

格式:[标号:] END

功能:用于汇编语言源程序的末尾,指示源程序到此全部结束。

说明:END伪指令是一个结束标志,用来指示汇编语言源程序的结束,进行机器汇编时到此为止,其后的语句将不被汇编成机器码。因此,在一个源程序中只允许出现一个END语句,它必须放在整个程序的最后。

(3)定义字节伪指令DB(Define Byte)。

格式:[标号:] DB X1,X2,…,Xi,…,Xn

功能:将这组数据依次存入以左边标号为起始地址的存储单元中。

说明:标号一般是根据所在自然位置自然赋值,也可由伪指令ORG标定。例如:

ORG 2000H

DATA1:DB 73H,20H,30H

DB ‘A’

结果安排如下:

(4)定义字伪指令DW(DefineWord)。

格式:[标号:] DW Y1,Y2,…,Yi,…,Yn(www.xing528.com)

说明:其中Y1~Yn均为双字节数。DW伪指令的功能与DB相似,其区别在于DB是定义字节,而DW是定义字。此伪指令主要用来定义地址。

(5)赋值伪指令EQU(Equate)。

格为:字符名称 EQU 数据或汇编符号

功能:将数据或汇编符赋给左边的“字符名称”

说明:一旦“字符名称”被赋值,它就可以在程序中作为一个数据或地址来使用。注意,在一个程序中对于某一数据或汇编符只能赋值一次、且伪指令中的“字符名称”必须先赋值后使用。例如:

ORG 2000H

STK EQU 50H ;STK赋值为50H

AA EQU R1 ;AA赋值后当R1使用

TAB EQU 3000H ;TAB赋值为双字节数3000H

MOV A,STK

MOV B,AA

LCALL TAB

(6)数据地址赋值伪指令DATA。

格式:字符名称 DATA 表达式

功能:将表达式的值赋给左边的“字符名称”。

说明:这里的表达式可以是一个数据或地址,也可以是一个包含定义“字符名称”在内的表达式,但不可以是汇编符(如R0-R7)。DATA伪指令可以先使用后定义。例如:

AA EQU R1 ;AA赋值后当作R1使用

CC DATA 30H ;CC赋值后为8位数30H

MOV CC,AA ;R1的值赋给30H单元

MOV A,#CC+1 ;立即数31H赋给累加器A

(7)位定义伪指令BIT。

格式:字符名称 BIT 位地址

功能:将BIT右边的位地址赋给它左边的“字符名称”。

说明:位地址可以用绝对地址,也可以使用像P1.0一样的符号位地址。例如:

H1 BIT 30H ;H1定义为位地址30H

H2 BIT TF0 ;H2定义为位地址TF0

A1 BIT P1.0 ;A1定义为位地址P1.0

MOV C,H1

ANL C,H2

MOV A1,C ;P1.0←(30H)∧(TF0)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈