段定义伪指令:
把汇编程序的各个部分与适当的段(数据块或程序块)联系起来
.asect “段名” , 地址 | 汇编到一以绝对地址为起始的段中 作用类似于.sect,但多了绝对地址定位功能,此功能现常用更强大又灵活的命令文件来完成,故不常用。 |
.bss 符号,字数[,块标号] | 未初始化变量段,用于为未初始化的变量在.bss 段内保留空间。 (定义变量存放空间) |
.data | 已初始化数据段,用于包含已初始化的数据。 (如表格数据等) |
.sect “段名” | 定义一个已经初始化命名的段,将代码和数据放入该段中。 (用户可自定义的已初始化段,提供更多灵活性) |
.text | 程序代码段,通常用于包含可执行程序代码。.text 是系统定义的默认段,如果不明确声明,代码就归属.text 段。 |
符号 .usect “段名”,字数[,块标号] | 自定义一已命名(未初始化)的段中保留空间。 (用户可自定义的未初始化段,提供更多灵活性) |
常数初始化伪指令(包括数据和地址常数):
在当前段中汇编数值
.bes 位数 | 在当前段中保留指定数目的位数(标号指向所保留空间的尾部) |
.bfloat 数值 | 初始化一个 32 位,IEEE 单精度的浮点常数;禁止有跨页的初始化对象。 |
.blong 数值 1[,…,数值 n] | 初始化一个或多个 32 位整数;禁止有跨页的初始化对象。 |
.byte 数值 1[,…,数值 n] | 初始化当前段中一个或多个连续字节 |
.field 数值 1[,…,数值 n] | 初始化一个可变长度的字段 |
.float 数值 | 初始化一个 32 位,IEEE 单精度的浮点常数 |
.int 数值 1[,…,数值 n] | 初始化一个或多个 16 位整数 |
.long 数值 1[,…,数值 n] | 初始化一个或多个 32 位整数 |
.space 位数 | 在当前段中保留位数(标号指向所保留空间的头部) |
.string “字符串 1”[,…,“字符串 n”] | 初始化一个或多个文本字符串 |
.word 数值 1[,…,数值 n] | 初始化一个或多个 16 位整数 |
对准段程序计数器的伪指令 :
使段程序计数器SPC指向预定的位置(例如页边界)
.align | 在一页的边缘对准 SPC(段程序计数器) |
.even | 在一偶数的边缘对准 SPC |
定义输出列表格式的伪指令 :
控制列表文件的格式
.drlist | 使所有伪指令行都被列出(缺省方式) |
.drnolist | 禁止某些伪指令行的列出 |
.fclist | 允许列出错误的条件代码块(缺省方式) |
.fcnolist | 禁止列出错误的条件代码块 |
.length 页的长度 | 定义源文件列表的页长 |
.list | 从头开始源文件的列表 |
.mlist | 允许宏列表和循环块(缺省方式) |
.mnolist | 禁止宏列表和循环块 |
定义输出列表格式的伪指令 :
控制列表文件的格式
.nolist | 停止源文件列表 |
.option{B/D/F/L/M/T/X} | 选择输出列表文件的参数 |
.page | 在源文件列表中生成一页 |
.sslist | 允许扩展子程序符号列表 |
.ssnolist | 禁止扩展子程序符号列表(缺省方式) |
.tab 大小 | 设置表的大小 |
.title “字符串” | 在列表页头显示一个标题 |
.width 页宽 | 设置源文件列表的页宽 |
外部文件定位的指伪令 :
提供或者获取文件的信息
.copy [“]文件名[”] | 包含其他文件中的源语句 |
.def 符号 1[,…,符号 n] | 标明一个或多个在当前模块中定义而在其他模块中要用到的符号 |
.global 符号 1[,…,符号 n] | 标明一个或多个全局(外部)符号 |
.include [“]文件名[”] | 包含其他文件中的源语句 |
.mlib [“]文件名[”] | 定义宏定义库 |
.ref 符号 1[,…,符号 n] | 标明一个或多个在另一模块中定义而在当前模块中要用到的符号 |
条件汇编伪指令:
.break [确切定义的表达式] | 如果条件满足,就结束.loop 汇编。.break 是可选可不选的 |
.else | 如果.if 的条件不满足,则汇编代码块。.else 是可选可不选的 |
.elseif 确切定义的表达式 | 如果.if 的条件不满足且.elseif 的条件满足,则汇编代码块。 .elseif 是可选可不选的 |
.endif | 结束.if 代码块 |
.endloop | 结束.loop 代码块 |
.if 确切定义的表达式 | 如果条件满足,则汇编代码块。 |
.loop [确切定义的表达式] | 开始一个代码块的重复汇编 |
汇编定时伪指令:
把自定义的符号等同于常数值或者字符串
.asg[“]字符串[”],替换符号 | 用一字符串作为替换符号 |
.endstruct | 结束结构定义 |
.equ | 给符号赋值 |
.eval 确切定义的表达式,替换字符 | 在数字替换符号的基础上执行运算 |
.newblock | 未定义的局部标号 |
.set | 给符号赋值 |
.struct | 开始结构定义 |
.tag | 设置一标号的结构属性 |
其他伪指令:
.emsg 字串 | 把用户定义的错误信息送到输出设备 |
.end | 结束程序 |
.label 符号 | 定义一在段中可重定位的标号 |
.mmregs | 将存储映射寄存器送入符号表中 |
.mmsg 字串 | 把用户定义的信息送到输出设备 |
.port | 打开汇编器的端口开关 |
.sblock “段名”[,“段名”,…] | 把多个段组成块 |
.version 版本号 | 设置处理器版本 |
.wmsg 字串 | 把用户定义的警告信息送到输出设备 |