棧(SP&FP寄存器)
- 棧:是一種具有特殊的訪問方式的存儲空間(後進先出, Last In Out Firt,LIFO)
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的值進行交換.
百度搜索:請叫我hank,關注我吧!
閱讀更多 猿修心 的文章