ARM指令集中的跳轉指令

2021-05-28 05:36:43 字數 472 閱讀 5594

arm程式中如何實現跳轉

1.       使用專門的跳轉指令

2.       直接向pc寫人要跳轉的位址

向pc寫人位址在可以任意可以定址的範圍內任意跳轉,然而跳轉指令只能在當前指令向前或向後的32m的位址空間跳轉

跳轉指令包括:

1.       b

b指令是最簡單的跳轉,跳到給定的目標位址,從那裡繼續執行

2.       bl

bl跳轉之前會在暫存器r14中儲存pc的當前內容

3.       blx

blx 指令從arm 指令集跳轉到指令中所指定的目標位址,並將處理器的工作狀態有arm 狀態切換到thumb 狀態,該指令同時將pc 的當前內容儲存到暫存器r14 中(用於主程式使用arm指令而子程式使用thumb指令)

4.       bx

bx 指令跳轉到指令中所指定的目標位址,目標位址處的指令既可以是arm 指令,也可以是thumb指令

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作業系統中實現訊號...

Arm指令集 偽指令

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