伪操作 | 语法格式 | 作用 | |
常量编译控制 | .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 | 编译汇编文件时产生警告 |
GNU ARM指令伪操作
最新推荐文章于 2024-05-14 11:20:13 发布