|
伪操作 |
语法格式 |
作用 |
常量编译控制 |
.byte |
.byte expr{, expr} … |
分配一段字节内存单元,并用expr初始化 |
.hword .short |
.hword expr{, expr} … |
分配一段半字内存单元,并用expr初始化 |
|
.ascii |
.ascii expr{, expr} … |
定义字符串expr(非零结束符) |
|
.asciz .string |
.asciz expr{, expr} … |
定义字符串expr(以/0为结束符) |
|
.float .single |
.float expr{, expr} … |
定义一个32bitIEEE浮点数expr |
|
.double |
.double expr{, expr} … |
定义一个64bitIEEE浮点数expr |
|
.word/.long/.int |
.word expr{, expr} … |
分配一段字内存单元,并用expr初始化 |
|
.fill |
.fill repeat {, size}{, value} |
分配一段字节内存单元,用size长度value填充repeat次 |
|
.zero |
.zero size |
分配一段字节内存单元,并用填充内存 |
|
.space .skip |
.space size {, value} |
分配一段内存单元,用value将内存单元初始化 |
|
代码控制 |
.section |
.section expr |
定义域中包含的段 |
.text |
.text {subsection} |
将操作符开始的代码编译到代码段或代码段子段 |
|
.data |
.data {subsection} |
将操作符开始的数据编译到数据段或数据子段 |
|
.bss |
.bss {subsection} |
将变量存放到.bss段或.bss段的子段 |
|
.code 16 .thumb |
.code 16 |
表明当前汇编指令的指令集选择Thumb指令集 |
|
.code 32 .arm |
.code 32 |
表明当前汇编指令的指令集选择ARM指令集 |
|
.end |
.end |
标记汇编文件的结束行,即标号后的代码不用处理 |
|
.include |
.include "filename" |
将一个源文件包含到当前源文件中 |
|
.align .balign |
.align {alignment} {, fill} {, max} |
通过添加填充字节使当前位置满足一定的对齐方式 |
|
宏及条件编译控制 |
.macro .exitm .endm |
.macro acroname{parameter {, parameter} |
.macro伪操作标识宏定义的开始,.endm标识宏定义的结束。用.macro及.endm定义一段代码,称为宏定义体。.exitm伪操作用于提前退出宏 |
宏及条件编译控制 |
.ifdef .else .endif |
.ifdef condition |
当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。其中else可以缺省 |
其他 |
.eject |
.eject |
在汇编符号列表文件中插入一分页符 |
.list |
.list |
产生汇编列表(从.list到.nolist) |
|
.nolist |
.nolist |
表示汇编列表结束处 |
|
.title |
.title "heading" |
使用"heading"作为标题 |
|
.sbttl |
.sbttl "heading" |
使用"heading"作为子标题 |
|
.ltorg |
.ltorg |
在当前段的当前地址(字对齐)产生一个文字池 |
|
.req |
.req name, expr |
为一个特定的寄存器定义名称 |
|
.err |
.err |
使编译时产生错误报告 |
|
|
.print string |
打印信息到标准输出 |
|
.fail |
.fail expr |
编译汇编文件时产生警告 |