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