GNU ARM指令僞操作

僞操作

語法格式

作用

常量編譯控制

.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

編譯彙編文件時產生警告

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章