Swift 匯編常見指令

  • mov: 將某一寄存器的值復制到另一寄存器(只能用于寄存器與寄存器或者寄存器與常量之間傳值,不能用于內存地址),如:
 mov x1,  x0   將寄存器 x0 的值復制到 x1 中
  • add: 將某一寄存器的值和另一寄存器的值 相加 并將結果保存在另一寄存器中,如:
add x0,  x1,  x2      將寄存器x1 和 x2 的值相加后保存到寄存器 x0 中
  • sub: 將某一寄存器的值和另一寄存器的值 相減 并將結果保存在另一寄存器中,如:
sub x0,  x1,  x2      將寄存器x1 和 x2 的值相減后保存到寄存器 x0 中
  • and: 將某一寄存器的值和另一寄存器的值 按位與 并將結果保存到另一寄存器中,如:
and x0, x0, #0x1         將寄存器 x0 的值和常量 1 按位與后保存到寄存器 x0 中
  • orr: 將某一寄存器的值和另一寄存器的值 按位或 并將結果保存到另一寄存器中, 如:
orr x0, x0, #0x1       將寄存器 x0的值和常量 1 按位或后保存到寄存器 x0 中
  • str:將寄存器中的值寫入到內存中,如:
str x0, [x0, x8]    將寄存器 x0 中的值保存到棧內存 [x0 + x8]處
  • ldr: 將內存中的值讀取到寄存器中,如:
ldr x0, [x1, x2]     將寄存器 x1 和寄存器x2的值相加作為地址,取該內存地址的值放入寄存器 x0 中
  • cbz: 和 0 比較,如果結果為零就轉移(只能跳到后面的指令)
  • cbnz: 和非 0 比較,如果結果非零就轉移(只能跳到后面的指令)
  • cmp: 比較指令
  • blr: (branch)跳轉到某地址(無返回)
  • bl: 跳轉到某地址(有返回)
  • ret: 子程序(函數(shù)調用)返回指令,返回地址已默認保存在寄存器 lr (x30) 中
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容