IOS ARM 彙編指令

2021-10-07 03:18:24 字數 1355 閱讀 9551

x0到x28是普通64位暫存器

fp是棧底指標暫存器

lr通常稱x30為程式鏈結暫存器,儲存子程式結束後需要執行的下一條指令

sp(stack point)是棧頂指標暫存器

pc(program counter)即將要執行的下一條指令

cpsr (狀態暫存器)

w0到w30是x0到x30的低32位暫存器

arm64經常用到的彙編指令

mov    x1,x0         ;將暫存器x0的值傳送到暫存器x1

add x0,x1,x2 ;暫存器x1和x2的值相加後傳送到x0

sub x0,x1,x2 ;暫存器x1和x2的值相減後傳送到x0

and x0,x0,#0xf ; x0的值與0xf相位與後的值傳送到x0

orr x0,x0,#9 ; x0的值與9相位或後的值傳送到x0

eor x0,x0,#0xf ; x0的值與0xf相異或後的值傳送到x0

ldr x5,[x6,#0x08] ;ld:load; x6暫存器加0x08的和的位址值內的資料傳送到x5

ldp x29, x30, [sp, #0x10] ; ldp :load pair ; 一對暫存器, 從記憶體讀取資料到暫存器

str x0, [sp, #0x8] ;st:store,str:往記憶體中寫資料(偏移值為正); x0暫存器的資料傳送到sp+0x8位址值指向的儲存空間

stur w0, [x29, #-0x8] ;往記憶體中寫資料(偏移值為負)

stp x29, x30, [sp, #0x10] ;store pair,存放一對資料, 入棧指令

cbz ;比較(compare),如果結果為零(zero)就轉移(只能跳到後面的指令)

cbnz ;比較,如果結果非零(non zero)就轉移(只能跳到後面的指令)

cmp ;比較指令,相當於subs,影響程式狀態暫存器cpsr

b ;跳轉指令,可帶條件跳轉與cmp配合使用

bl ;帶返回的跳轉指令, 返回位址儲存到lr(x30)

blr ; 帶返回的跳轉指令,跳轉到指令後邊跟隨暫存器中儲存的位址(例:blr x8 ;跳轉到x8儲存的位址中去執行)

ret ;子程式返回指令,返回位址預設儲存在lr(x30)

mo彙編指令 彙編指令大全

一 資料傳輸指令 它們在存貯器和暫存器 暫存器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓...

彙編 彙編指令大全

一 資料傳輸指令 它們在存貯器和暫存器 暫存器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓...

彙編指令msr STM 常用彙編指令

在嵌入式開發中,匯程式設計序常常用於非常關鍵的地方,比如系統啟動時初始化,進出中斷時 的環境保護,恢復等對效能有要求的地方。arm指令集可以分為六大類,分別為資料處理指令 load store 指令 跳轉指令 程式狀態 暫存器處理指令 協處理器指令和異常產生指令。arm指令使用的基本格式如下 opc...