- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录
什么是伪指令?
01
01
什么是伪指令
汇编程序中提供了一套伪指令(Pseudo Instructions) ,以支持汇编的运行。这些伪指令仅在汇编过程中起控制作用,不产生可执行目标代码,与机器指令代码无一一对应关系,只能被汇编程序识别。汇编后,目标程序中不再出现伪指令,故又称为软指令。
“
”
伪指令与单片机指令的区别:
伪指令不能命令CPU执行某种操作,也没有对应的机器代码。
单片机指令能使单片机的CPU执行某种操作,并可以生成对应的机器代码
02
伪指令的作用
伪指令的作用包括:
用来指定程序或数据的起始位置;
给出一些连续存放数据的地址;
为中间运算结果保留一部分存储空间;
为源程序中的符号和标号赋值;
表示源程序结束等等
“
”
不同版本的汇编语言,伪指令的符号和含义可能有所不同,但基本用法是相似的。
常用的伪指令
03
ORG:起点命令
ORG表达式程序起始地址伪指令
例如:
ORG 8000H
START: MOV A,#74H
…
表示源程序的入口地址为8000H,即
程序从8000H开始执行。
“
”
常用的伪指令
03
END:结束命令
END 程序结束命令伪指令
格式:
…
END
汇编程序结束标志,该命令附在一个源程序的结尾。
在END之后所写的指令,汇编时不予处理,因此一
个源程序只能有一个END命令。
“
”
常用的伪指令
03
DB:定义字节命令
DB 表达式定义字节命令
格式:
标号: DB 字节常数或字符
从指定单元开始,定义了若干个8位存储单元,
以存放指令给出的数据或字符,字符若用引号
括起来,则表示ASC Ⅱ码。
“
”
常用的伪指令
03
DB:定义字节命令
DB 表达式定义字节命令
例如:
ORG 8000H
TAB: DB 45H,73,’A’
TAB1: DB 101B
这里数据块的首址由ORG命令定义,即TAB=8000H,则有
由DB命令定义的标号可以任选,DB所确定的
单元地址有两种方法。
“
”
(8000H)=45H
(8001H)=49H
(8002H)=35H
(8003H)=41H
(8004H)=05H
1.若DB命令是在其他源程序之后,则源程序的最后一条指令地址之后就是DB定义的数据或数据表格。
2.由ORG定义数据块首址。
常用的伪指令
03
DW:定义字命令
DW 表达式定义字命令
格式:
标号: DW 字或字表
从指定单元开始,定义若干个字(双字节数)。
例如:
ORG 8000H
HETAB: DW 7234H,8AH,10
“
”
(8000H)=72H
(8001H)=34H
(8002H)=00H
(8003H)=8AH
(8004H)=00H
(8005H)=0AH
汇编后则:
常用的伪指令
03
DS:定义空间命令
DS 表达式定义空间命令
格式:
标号: DS 数据或字符表达式
从指定单元开始,由数据或表达式
确定保留若干个字节内存空间备用。
例如:
ORG 8000H
DS 08H
DB 30H,8AH
即8000H~8007H单元保留备用
(8008H)=30H
(8009H)=8AH
“
”
以上DB`DW`DS伪指令只对程序储存器起作用
常用的伪指令
03
EQU:等值命令
EQU表达式命令
格式:
字符名称: EQU 数据或汇编符号
此命令把一个数据或特定的汇编符号赋予标号段规定的字符名称。
为“取代”之意,即以数据或汇编符号取代字符名称。用EQU
定义的字符必须先定义后使用,这些定义的字符名称可用作数据
地址,位地址或立即数。
例如:
ORG 8000H
AA: EQU R6 ;AA与R6等值
MOV A,AA ;A(R6)
…
“
”
常用的伪指令
03
DATA:数据地址赋值命令
DATA表达式数据地址赋值命令
格式:
字符名称: DATA 数据或表达式
此命令把数据地址或代码地址赋予标号段规定的字符名称。
例如:INDEXJ DATA 8389H
定义了INDEXJ这个字符名称的地址为8389H,主要用于
程序的模块式调试。
例如: ORG 8000H
INDEXJ: DATA 8096H
LJMP INDEXJ
END
“
”
常用的伪指令
03
DATA:数据地址赋值命令
DATA表达式数据地址赋值命令
等价于
ORG 8000H
LJMP 8096H
END
被定义的字符名称也可先使用后定义。
DATA和EQU的区别在于DATA定义的字符名称
作为标号登记在符号表中,故可先使用后定义;
而用EQU定义的字符名称必须
文档评论(0)