GNU ARM指令偽操作

2021-06-18 02:39:46 字數 2229 閱讀 1958

偽操作

語法格式 作用

常量編譯控制

.byte

.byte expr …

分配一段位元組記憶體單元,並用expr初始化

.hword

.short

.hword expr …

分配一段半字記憶體單元,並用expr初始化

.ascii

.ascii expr …

定義字串expr(非零結束符)

.asciz

.string

.asciz expr …

定義字串expr(以/0為結束符)

.float

.single

.float expr …

定義乙個32bitieee浮點數expr

.double

.double expr …

定義乙個64bitieee浮點數expr

.word/.long/.int

.word expr …

分配一段字記憶體單元,並用expr初始化

.fill

.fill repeat

分配一段位元組記憶體單元,用size長度value填充repeat次

.zero

.zero size

分配一段位元組記憶體單元,並用填充記憶體

.space

.skip

.space size

分配一段記憶體單元,用value將記憶體單元初始化

**控制

.section

.section expr

定義域中包含的段

.text

.text

將操作符開始的**編譯到**段或**段子段

.data

.data

將操作符開始的資料編譯到資料段或資料子段

.bss

.bss

將變數存放到.bss段或.bss段的子段

.code 16

.thumb

.code 16

.thumb

表明當前彙編指令的指令集選擇thumb指令集

.code 32

.arm

.code 32

.arm

表明當前彙編指令的指令集選擇arm指令集

.end

.end

標記彙編檔案的結束行,即標號後的**不用處理

.include

.include "filename"

將乙個原始檔包含到當前原始檔中

.align

.balign

.align

通過新增填充位元組使當前位置滿足一定的對齊方式

巨集及條件編譯控制

.macro

.exitm

.endm

.macro acroname

…}….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

編譯彙編檔案時產生警告

GNU ARM彙編偽操作

1 section 1.1 語法格式 section section name flags type flag specific arguments 1.2 作用 定義乙個段,每乙個段以段名為開始,以下乙個段名或者檔案結尾為結束。elf格式允許的段標誌 a 可分配 w 可寫段 x 執行段 1.3 舉...

GNU ARM中的彙編指令 word

gnu arm中的彙編 指令.word 彙編中的標號通常情況下是用來標明程式段的起始位址的,如 start b reset ldr pc,undefined instruction ldr pc,software interrupt ldr pc,prefetch abort ldr pc,data...

GNU ARM彙編偽指令之迴圈

gnu arm彙編中,支援如下形式的迴圈結構 rept times code endr code 表示一段 rept和.endr都是彙編偽指令,times是乙個數字,表示code這段 要重複執行的次數。另一種迴圈的形式如下 irp param,val1,val2.code endr 其中.irp也是...