棧_ARM64_003

  • 棧:是一種具有特殊的訪問(wèn)方式的存儲(chǔ)空間(后進(jìn)先出, Last In Out Firt,LIFO)

SP和FP寄存器

  • sp寄存器在任意時(shí)刻會(huì)保存我們棧頂?shù)牡刂?
  • fp寄存器也稱(chēng)為x29寄存器屬于通用寄存器,但是在某些時(shí)刻我們利用它保存棧底的地址!()

注意:ARM64開(kāi)始,取消32位的 LDM,STM,PUSH,POP指令! 取而代之的是ldr\ldp str\stp
ARM64里面 對(duì)棧的操作是16字節(jié)對(duì)齊的!!

關(guān)于內(nèi)存讀寫(xiě)指令

注意:讀/寫(xiě) 數(shù)據(jù)是都是往高地址讀/寫(xiě)

str(store register)指令

將數(shù)據(jù)從寄存器中讀出來(lái),存到內(nèi)存中.

ldr(load register)指令

將數(shù)據(jù)從內(nèi)存中讀出來(lái),存到寄存器中

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

堆棧操作練習(xí)

使用32個(gè)字節(jié)空間作為這段程序的??臻g,然后利用棧將x0和x1的值進(jìn)行交換.

sub    sp, sp, #0x20    ;拉伸棧空間32個(gè)字節(jié)
stp    x0, x1, [sp, #0x10] ;sp往上加16個(gè)字節(jié),存放x0 和 x1
ldp    x1, x0, [sp, #0x10] ;將sp偏移16個(gè)字節(jié)的值取出來(lái),放入x1 和 x0

bl和ret指令

bl標(biāo)號(hào)

  • 將下一條指令的地址放入lr(x30)寄存器
  • 轉(zhuǎn)到標(biāo)號(hào)處執(zhí)行指令

ret

  • 默認(rèn)使用lr(x30)寄存器的值,通過(guò)底層指令提示CPU此處作為下條指令地址!

ARM64平臺(tái)的特色指令,它面向硬件做了優(yōu)化處理的

x30寄存器

x30寄存器存放的是函數(shù)的返回地址.當(dāng)ret指令執(zhí)行時(shí)刻,會(huì)尋找x30寄存器保存的地址值!

注意:在函數(shù)嵌套調(diào)用的時(shí)候.需要講x30入棧!

函數(shù)的參數(shù)和返回值

ARM64下,函數(shù)的參數(shù)是存放在X0到X7(W0到W7)這8個(gè)寄存器里面的.如果超過(guò)8個(gè)參數(shù),就會(huì)入棧.
函數(shù)的返回值是放在X0 寄存器里面的.

函數(shù)的局部變量

函數(shù)的局部變量放在棧里面!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 寄存器 內(nèi)部部件之間由總線連接 對(duì)程序員來(lái)說(shuō),CPU中最主要部件是寄存器,可以通過(guò)改變寄存器的內(nèi)容來(lái)實(shí)現(xiàn)對(duì)CPU的...
    成績(jī)是汗閱讀 2,180評(píng)論 0 3
  • 函數(shù)的本質(zhì) 關(guān)于CPU的補(bǔ)充 寄存器 CPU由: 控制器, 計(jì)算器和寄存器組成. 其中寄存器的作用就是將數(shù)據(jù)進(jìn)行臨...
    請(qǐng)叫我大帥666閱讀 4,612評(píng)論 2 9
  • 棧 棧:是一種具有特殊的訪問(wèn)方式的存儲(chǔ)空間(后進(jìn)先出, Last In Out Firt,LIFO) SP和FP寄...
    Superman168閱讀 2,682評(píng)論 0 2
  • 今天體育老師給我們拿來(lái)了籃球,給我們來(lái)排練打籃球。我們要用手心來(lái)打籃球,我拍了籃球。拍了好幾個(gè),不停的拍,不停的拍...
    魂之文龍閱讀 210評(píng)論 0 0
  • 全文目錄 每個(gè)死去的人,對(duì)至親至愛(ài),都只有一個(gè)愿望,那就是——我走了,你們要好好活下去。 那天,他看著她精神恍惚地...
    離影疏落閱讀 847評(píng)論 0 6

友情鏈接更多精彩內(nèi)容