ARM彙編指令

2022-09-11 03:36:15 字數 590 閱讀 5811

1.  b指令跳轉範圍是64m,用24位空間表示26位。bl:儲存返回位址。

2.  前索引:存在r0+4,r0值不變  str r1,[r0,#4](!!以下兩種才是真正的索引)

後索引:資料存在r0並後改變r0的值  str r1,[r0],#4

自動索引:存到r0+4,然後r0+4。  str r1,[r0,#4]!

3.  stm(存)指令最多操作16個暫存器  stmia r11!,  (注意和str的目標位址不同)

使用批量暫存器操作時,編號小的一定存到低位址當中

stm等價於stmia(increase after use),stmib, s***a,s***b

stmia和ldmdb配合,stmib和ldmda配合。

4.  最常用的是滿減棧。stmfd,ldmfd

5.  讀cpsr:mrs r1,cpsr

寫cpsr: msr cpsr_c,r1

6.  偽指令:ldr r1, =0x12345678  可能等價於ldr r1,[pc]

7.  cpsr中【31:24】條件域f表示  【23:16】狀態域s表示  【15:8】預留域x表示  【8:0】控制域c表示

ARM彙編指令

b或bl指令引起處理器轉移到 子程式名 也就是位址 處開始執行,這兩個指令都是相對跳轉指令。兩者的不同之處在於bl指令在轉移到子程式執行之前,將其下一條指令的位址拷貝到r14 lr,鏈結暫存器 由於bl指令儲存了下條指令的位址,因此使用指令 mov pc lr 即可實現子程式的返回。而b指令則無法實...

arm彙編指令

一般arm官方風格彙編指令為大寫,windows ads mdk 實際運用一般用gnu風格,為小寫,linux 1 arm採用risc架構,cpu本身不能直接讀取內 存,而需要先將記憶體中內容加載入cpu中通用寄 存器中才能被 cpu處理 ldr loadregister 指令 將記憶體內容加載入通...

ARM彙編指令

1.彙編概述 2.指令分類學習 3.偽指令 4.協處理訪問指令 為什麼要學習使用匯程式設計序?bootloader kernel的初始化和需要執行效率極高的程式中 1.arm標準彙編 2.gnu彙編 section.data 初始化的資料 section.bss 未初始化的資料 section.te...