內(nèi)存分區(qū)
代碼區(qū) 特點(diǎn): 可讀可寫可執(zhí)行
棧區(qū)域 放參數(shù)和局部變量
堆區(qū)域 動(dòng)態(tài)申請(qǐng) 可讀可寫
全局: 可讀可寫
常量區(qū): 只讀!
adrp指令
1)創(chuàng)建項(xiàng)目在mian 文件中寫個(gè)方法然后執(zhí)行此方法在匯編模式調(diào)試斷點(diǎn)。詳細(xì)操作
將debug -> Debug Overflow -> Always Show DisAssembly 選中運(yùn)行查看混編代碼。如果想恢復(fù)再點(diǎn)下就可以了.
2) 得到以下界面

3)原理 adrp操作步驟adrp x0, 1
1. 將1的值,左移12位 1 0000 0000 0000 == 0x1000
2.將PC寄存器的低12位清零 0x1045228b0 ?==> 0x104522000
3.將將1 和 2 的結(jié)果相加? 給 X0 寄存器!!
注:地址為pc寄存器左邊的地址,adrp是找出要獲取參數(shù)的地址范圍,然后下個(gè)pc寄存器執(zhí)行的代碼會(huì)定位到準(zhǔn)確的物理地址。
指令區(qū)域
由于adrp的為范圍尋址并不會(huì)精確到具體地址所以地址的最后三位,即12bit位為0是需要系統(tǒng)下一步執(zhí)行的時(shí)候補(bǔ)上的。
根據(jù)cpu總線的計(jì)算規(guī)則12bit相當(dāng)于12根總線器地址范圍為2的12次方即4KB。