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