ARM偽指令集

2021-04-17 14:58:49 字數 1489 閱讀 1756

一、符號定義(symbol definition)偽指令

符號定義偽指令用於定義arm 匯程式設計序中的變數、對變數賦值以及定義暫存器的別名等操作。

常見的符號定義偽指令有如下幾種:

— 用於定義全域性變數的gbla、gbll 和gbls。

— 用於定義區域性變數的lcla、lcll 和lcls。

— 用於對變數賦值的seta、setl、sets。

— 為通用暫存器列表定義名稱的rlist。

二、資料定義(data definition)偽指令

資料定義偽指令一般用於為特定的資料分配儲存單元,同時可完成已分配儲存單元的初始化。

常見的資料定義偽指令有如下幾種:

— dcb 用於分配一片連續的位元組儲存單元並用指定的資料初始化。

— dcw(dcwu) 用於分配一片連續的半字儲存單元並用指定的資料初始化。

— dcd(dcdu) 用於分配一片連續的字儲存單元並用指定的資料初始化。

— dcfd(dcfdu)用於為雙精度的浮點數分配一片連續的字儲存單元並用指定的資料初始化。

— dcfs(dcfsu) 用於為單精度的浮點數分配一片連續的字儲存單元並用指定的資料初始化。

— dcq(dcqu) 用於分配一片以8 位元組為單位的連續的儲存單元並用指定的資料初始化。

— space 用於分配一片連續的儲存單元

— map 用於定義乙個結構化的記憶體表首位址

— field 用於定義乙個結構化的記憶體表的資料域

三、彙編控制(assembly control)偽指令

彙編控制偽指令用於控制匯程式設計序的執行流程,常用的彙編控制偽指令包括以下幾條:

— if、else、endif

— while、wend

— macro、mend

— mexit

四、其他常用的偽指令

還有一些其他的偽指令,在匯程式設計序中經常會被使用,包括以下幾條:

— area

— align

— code16、code32

— entry

— end

— equ

— export(或global)

— import

— extern

— get(或include)

— incbin

— rn

— rout

arm有七種工作模式

使用者模式(user,usr)             正常程式執行的模式

快速中斷模式(fiq,fiq)             用於高速資料傳輸和通道處理

外部中斷模式(irq,irq)   使用者通常的中斷使用

特權模式(supervisor,sve)  供作業系統使用的一種保護模式

資料訪問中止模式(abort,abt)   用於虛擬儲存及儲存保護

未定義指令中止模式(undefin- ed,und) 用於支援通過軟體**硬體的協處理器

系統模式(system,sys)   用於執行特權級的作業系統任務

Arm指令集 偽指令

目錄 arm指令集 跳轉指令 資料處理 程式狀態暫存器傳輸指令 load srote指令 協處理器指令 異常中斷產生指令 gnu arm偽指令 資料定義 彙編控制 其他指令 blx register string abcd efgh hello asciz qwer sun world ascii ...

ARM 指令集 比較指令

譯註 cmp 和 cmp 是算術指令,teq 和 tst 是邏輯指令。把它們歸入一類的原因是它們的 s 位總是設定的,就是說,它們總是影響標誌位。compare negative cmn status op 1 op 2 cmn同於cmp,但它允許你與小負值 運算元 2 的取負的值 進行比較,比如難...

ARM指令集 SWP指令

arm指令集 swp指令 swp和swpb是arm指令集中對儲存單元的原子操作,即對儲存單元的一次讀和一次不可被分割。swp和swpb分別完成儲存器和暫存器之間 乙個字 32bit 和乙個位元組 8bit 的資料交換。swp指令主要是完成arm體系架構處理器的同步操作,在linux作業系統中實現訊號...