现在的位置: 首页 > 综合 > 正文

GNU ARM指令伪操作

2018年04月28日 ⁄ 综合 ⁄ 共 1406字 ⁄ 字号 评论关闭

伪操作

语法格式

作用

常量编译控制

.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

表明当前汇编指令的指令集选择Thumb指令集

.code 32

.arm

.code 32
.arm

表明当前汇编指令的指令集选择ARM指令集

.end

.end

标记汇编文件的结束行,即标号后的代码不用处理

.include

.include "filename"

将一个源文件包含到当前源文件中

.align

.balign

.align {alignment} {, fill} {, max}

通过添加填充字节使当前位置满足一定的对齐方式

宏及条件编译控制

.macro

.exitm

.endm

.macro acroname{parameter {, parameter}
…}
.endm

.macro伪操作标识宏定义的开始,.endm标识宏定义的结束。用.macro及.endm定义一段代码,称为宏定义体。.exitm伪操作用于提前退出宏

宏及条件编译控制

.ifdef

.else

.endif

.ifdef condition

.else

.endif

当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。其中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

.print string

打印信息到标准输出

.fail

.fail expr

编译汇编文件时产生警告

抱歉!评论已关闭.