偽操作
語法格式 作用
常量編譯控制
.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 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也是...