07.23 程序員必修——彙編語言(棧:SP&FP寄存器)

棧(SP&FP寄存器)

程序員必修——彙編語言(棧:SP&FP寄存器)

  • 棧:是一種具有特殊的訪問方式的存儲空間(後進先出, Last In Out Firt,LIFO)
程序員必修——彙編語言(棧:SP&FP寄存器)


SP和FP寄存器

  • sp寄存器在任意時刻會保存我們棧頂的地址.
  • fp寄存器也稱為x29寄存器屬於通用寄存器,但是在某些時刻我們利用它保存棧底的地址!()

注意:ARM64開始,取消32位的 LDM,STM,PUSH,POP指令! 取而代之的是ldr\\ldp str\\stp

ARM64裡面 對棧的操作是16字節對齊的!!

關於內存讀寫指令

注意:讀/寫 數據是都是往高地址讀/寫

str(store register)指令

將數據從寄存器中讀出來,存到內存中.

ldr(load register)指令

將數據從內存中讀出來,存到寄存器中

此ldr 和 str 的變種ldp(pair) 和 stp(pair) 還可以操作2個寄存器.

堆棧操作練習

使用32個字節空間作為這段程序的棧空間,然後利用棧將x0和x1的值進行交換.

程序員必修——彙編語言(棧:SP&FP寄存器)

百度搜索:請叫我hank,關注我吧!


分享到:


相關文章: