赵工的个人空间


专业技术部分转网页计算转业余爱好部分


 单片机与嵌入式

首页 > 专业技术 > 单片机与嵌入式 > 51汇编语言的伪指令
51汇编语言的伪指令

汇编语言中除常用指令外,还有一些用来对“汇编”过程进行控制、或者对符号、标号赋值的指令。在汇编过程中,这些指令不被翻译成机器码,因此称为“伪指令”。

汇编语言中常用的伪指令有8条。

伪指令名称(英文含义)

伪指令格式

作用

ORG (Origin)

ORG Addr16

汇编程序段起始

END

END

结束汇编

DB (Define Byte)

DB 8位二进制数表

定义字节

DW (Define Word)

DW 16位二进制数表

定义字

DS (Define Storage)

DS 表达式

定义预留存储空间

EQU (Equate)

字符名称 EQU 数据或汇编符

给左边的字符名称赋值

DATA (Define Lable Data)

字符名称 DATA 表达式

数据地址赋值,定义标号数值

BIT

字符名称 BIT 位地址

位地址赋值

1. 段起始:指出下一段程序的起始地址。

ORG Addr16

可以有多个ORG伪指令,以规定不同程序段的起始地址,但地址要从小到大,不能相同。

2. 结束汇编:放在程序结尾,表示汇编到此结束,后面的指令不进行汇编。

END

3. 赋值:将一个数据或特定的汇编符号赋予规定的字符名称。

字符名称 EQU 数据或汇编符号

汇编软件自动把EQU右边的“数据或汇编符号”赋值给左边的“字符名称:例:

AAR EQU R7

DDY EQU 200H

ORG 00H

MOV A,AAR

LCALL DDY

SJMP DDY

DDY: ......

END

4. 数据地址赋值:将数据、地址、表达式赋值给规定的字符名称。

字符名称 DATA 表达式

字符名称、DATA与表达式之间要用空隔符分开。例:

FST DATA 30H

SEC DATA FST*2+8

5. 定义字节:从指定的地址单元开始,定义若干个8位内存单元的数据,数据间”,”分隔。

DB 8位二进制数表

若数据表首有标号,数据依次放到以左边标号为首地址的存储单元中,这些数可以采用二进制、十进制、十六进制和ASCII码等多种形式表示,其中ASCII码用””或’’括住。例:

TAB: DB 34

DB 34H

DB 0101B

DB “a”

DB “2”

以上指令经汇编后,ROM地址TAB单元开始的相继地址单元中赋值(十六进制)为:

22H 34H 05H 61H 32H

6. 定义字:从指定的地址单元开始,定义若干16位数据。

DW 16位二进制数表

因为16位数据要占用两个字节,所以高8位先存入,占低位地址;低8位后存入,占高位地址。不足16位的用0填充。例:

ORG 100H

TAB : DW 12

DW 45H

DW 3343H

汇编后,从100H地址开始依次存放00H、0CH、00H、45H、33H、43H,共6个单元。

7. 定义预留存储空间:从指定地址开始预留一定数量的内存单元。

DS 表达式

预留单元数量由DS语句中“表达式”的值决定。例:

ORG 100H

DS 7

CLR A

汇编后,从100H单元开始,保留7个字节的内存单元,然后在107H单元放置指令”CLR A”的机器码0E4H,即(107H)=E4H。 

8. 定义位地址:将位地址赋值给字符名称。

字符名称 BIT 位地址

例: FT1 BIT P0.0

FT2 BIT ACC.1

将P0.0和A.1的位地址分别赋予字符FT1和FT2,以后的程序中可作为位地址使用。

 

Copyright@dwenzhao.cn All Rights Reserved   备案号:粤ICP备15026949号
联系邮箱:dwenzhao@163.com  QQ:1608288659