- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
伪指令用来对汇编程序进行控制
伪指令用来对汇编程序进行控制,对程序中的数据实现条件转移、列表、存储空间分配等处理,其格式和汇编指令一样,但一般不产生目的代码,即不直接命令 CPU 去执行什么操作。
伪指令是汇编语言的特色之一,具有两个基本特征:???? 1、伪指令是一条指令。它在程序中不是可有可无的,使用时受到严格的规范,与标准指令一样,在程序中占有固定的位置,有固定的书写格式。每条伪指令都与标准指令一样可实现特定的功能,伪指令是不能用标准指令替代的。???? 2、伪指令不是一条真正的指令,没有指令代码。在程序编译过程中,伪指令的功能会被实现,但伪指令会被删除,在编译后的目标文件中(目标文件一般是代码文件),不会有伪指令的编码。???? 也可以这样理解:指令是对计算机发出的命令,而伪指令则是对编译器发出的命令。在编译程序结束时,伪指令的使命就完成了。???? 伪指令是相对标准指令而言的,高级语言不存在伪指令,因为高级语言不存在指令,很难说明高级语言中哪一条语句是什么指令。???? 伪指令是为程序开发工程师提供辅助的程序表达,让编译器实现一些标准指令所不能表达的内容。???? 伪指令的作用:???? 1、程序定位的作用。把各程序段之间的相互关系和在存储器的位置告诉编译器。???? 2、为非指令代码进行定义。包括逻辑变量、字符和存储区等。???? 3、为程序完整性做标注。程序段的开始和结束。???? 4、有条件地引用程序段。比如条件循环、条件选择以及宏等。???? 在ARM处理器中,伪指令的应用和51系列的单片机很相似,它们除了把正常的程序用指令表达给计算机以外,还需要把程序设计者的意图表达给编译器。无论是51系列单片机还是ARM处理器,都需要定义数据以便编译器能够正确识别代码和数据,都可以引用宏,都可以为符号或变量赋值等。
一、 定义数据伪指令
该类伪指令用来定义存储空间及其所存数据的长度。
· DB :定义字节,即每个数据是 1 个字节。
· DW :定义字,即每个数据占 1 个字 (2 个字节 ) 。
· DD :定义双字,即每个数据占 2 个字。低字部分在低地址,高字部分在高地址。
· DQ :定义 4 字长,即每个数据占 4 个字。
· DT :定义 10 个字节长,用于压缩式十进制数,
例如: DATA1 DB 5 , 6 , 8 , 100
DATA2 DW 7 , 287
TABLE DB ? ;表示在 TABLE 单元中存放的内容是随机的
当一个定义的存储区内的每个单元要放置同样的数据时,可用 DUP 操作符。
一般格式 : COUNT DUP (?), COUNT 为重复的次数,“( )”中为要重复的数据。
如: BUFFER DB 100DUP(0) ;表示以 BUFFER 为首地址的 100 个字节中存放 00H 数据
BUFFER1 DB 100 DUP ( 3 , 5 , 2DUP ( 10 ), 35 ), 24 ,‘ NUM )
想一想存储区的情况?
二、 符号定义伪指令 EQU 、 = 、及 PURGE
· EQU 伪指令给符号定义一个值。在程序中,凡是出现该符号的地方,汇编时均用其值代替,
如: TIMES EQU 50
DATA DB TIMES DUP(?)
上述两个语句实际等效于如下一条语句:
DATA DB 50 DUP(?)
· “ = ”伪指令可给初始变量赋值。
如: COUNT=100 ; COUNT=100
TIME=50 ; TIME=50
· PURGE 伪指令用于释放由 EQU 伪指令定义的变量,使这些变量可以被重新定义。
PURGE TIMES ; 释放 TIMES 变量
TIMES EQU 2 ; 重新定义
三、段定义伪指令 SEGMENT 和 ENDS
一般来说,一个完整的汇编源程序由 3 个段组成,即堆栈段、数据段和代码段。段定义伪指令可将源程序划分成若干段,以便生成目的代码和连接时将各同名段进行组合。
段定义伪指令一般格式为 :
段名 SEGMENT [ 定位类型 ] [ 组合类型 ] [ 类别 ]
段名 ENDS
SEGMENT 和 END5 应成对使用,缺—不可。其中段名是不可省略的。其它是可选项,是赋予段名的属性,可以省略。
例如: DATA SEGMENT
DW 20DUP(?)
DATA ENDS
四、 设定段寄存器伪指令 ASSUME
一般格式 : ASSUME 段寄存器:段名 [ ,段寄存器:段名,…… ]
功能 :通知汇编程序,哪一个段寄存器是该段的段寄存器,以便对使用变量或标号的指令汇编出正确的目的代码。在段名中, CODE 表示代码段, DATA 表示数据段, STACK 表示堆栈段。
由于 ASSUME 伪
您可能关注的文档
最近下载
- 2024年新高考化学命题特点及江西卷试题分析.pptx
- 县区域水土保持评估实施细则.docx
- (医学课件)PICC维护课件.ppt
- 第四单元 三国两晋南北朝时期:政权分立与民族交融 教学设计 2023-2024学年统编版七年级历史上册.docx
- Unit 2 Different families 单元整体(教学设计)-2024-2025学年人教PEP版(2024)英语三年级上册.docx
- 2024煤矿安全生产标准化管理体系解读.docx VIP
- 算法设计与分析 第2版 第9章-图算法设计.ppt
- 标准化服务在政务服务中的应用考核试卷.docx
- 2023年《全日制普通高中物理新课程标准》.pdf
- 人教PEP三年级英语上册《Unit1 Making friends part A》课件.pptx VIP
文档评论(0)