永发信息网

伪指令的用法

答案:1  悬赏:70  手机版
解决时间 2021-04-01 13:27
  • 提问者网友:niaiwoma
  • 2021-04-01 07:07
伪指令的用法
最佳答案
  • 五星知识达人网友:鱼芗
  • 2021-04-01 08:02
其实你不入在网上搜索单片机伪指令,有很多的,何必在这里看答案呢,就那么几个
1.ORG 汇编起始命令
2.END 汇编结束命令
3.EQU 赋值命令
4.DATA 数据地址赋值命令
5.DB 定义字节命令
6.DW 定义字命令
7.DS 定义存储空间命令
8.BIT 位地址符号命令
我相信很快就有人复制粘贴上来
不同的微机系统有不同的汇编程序,也就定义了不同的汇编命令。这些由英文字母表示的汇编命令成为伪指令。伪指令不是真正的指令,无对应的机器码,在汇编时不产生目标程序(机器码),只是用来对汇编过程进行某种控制。89C51汇编程序(如Intel的ASM51)定义的常用伪指令有几条。

1. ORG 汇编起始命令

格式:ORG 16位地址

功能是规定该伪指令后面程序的汇编地址,即汇编后生成目标程序存放的起始地址。例如:

ORG 2000H

START:MOV A,#64H

既规定了标号START的地址是2000H,又规定了汇编后的第一条指令码从2000H开始存放。ORG可以多次出现在程序的任何地方。当它出现时,下一条指令的地址就由此重新定位。

2. END 汇编结束命令

END命令通知汇编程序结束汇编。在END之后的汇编语言指令均不予以汇编。

3.EQU 赋值命令

格式:字符名称 EQU 项(数或汇编符号)

EQU命令是把“项”赋值给“字符名称”。注意,这里的字符名称不等于标号(其后没有冒号)。其中的项,可以是数也可以是汇编符号。用EQU赋过值的符号名可以用作数据地址、代码地址、位地址或是一个立即数。由此它可以是8位的,也可以16位的。例如:

AA EQU R1

MOV A, AA

这里AA就是代表了工作寄存器R1。又例如:

A10 EQU 10

DELY EQU 07EBH

MOV A, A10

LCALL DELY

这里A10当作片内RAM的一个直接地址,而DELY定义了一个16位地址,实际上它是一个子程序的入口。

4.DATA 数据地址赋值命令

格式:字符名称 DATA 表达式

DATA命令功能与EQU类似,但有一下差别:

1)EQU定义的字符名必须先定义再使用,而DATA定义的字符名可以后定义先用;

2)用EQU伪指令可以把一个汇编符号赋给一个名字,而DATA只能把数据赋给字符名;

3)DATA语句中可以把一个表达式的值赋给字符名,其中的表达式应是可求值的。

5.DB 定义字节命令

格式:DB [项或项表]

项或项表可以是一个字节、用逗号隔开的字节串或括在单引号(‘’)中的ASCII字符串。它通知汇编程序从当前ROM地址开始,保留一字节或字节串的存储单元,并存入DB后面的数据,例如:

ORG 2000H

DB 0A3H

LIST: DB 26H, 03H

STR: DB 'ABC'

经汇编后,则有:

(2000H)=A3H

(2001H)=26H

(2002H)=03H

(2003H)=41H

(2004H)=42H

(2005H)=43H

其中,41H、42H和43H分别是A、B和C的ASCII编码值。

6.DW定义字节命令

格式:DW 16位数据项或项表

该命令把DW后的16为数据项或项表从当前地址连续存放。没项数值为16位二进制数,高8位先存放,低8位后存放,这和其他指令中16位数的存放方式相同。DW常用于定义一个地址表,例如:

ORG 1500H

TABLE: DW 7234H, 8AH, 10H

经汇编后,则有:

(1500H)=72H (1501H)=34H

(1502H)=00H (1503H)=8AH

(1504H)=00H (1505H)=10H

7.DS定义存储空间命令

格式:DS 表达式

在汇编时,从定义地址开始保留DS之后表达式的值所规定的存储单元,以备后用。例如:

ORG 1000H

DS 08H

DB 30H,8AH

汇编以后,从1000H保留8个单元,然后从1008H开始给内存赋值,即

(1008H)=30H

(1009H)=8AH

以上的DB、DW和DS伪指令都只是对程序存储器起作用,它们不能对数据存储器进行初始化。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯