第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

golang asm代碼中的未知“ptr”變量

golang asm代碼中的未知“ptr”變量

Go
慕娘9325324 2023-06-05 19:29:53
最近剛開始看atomic.LoadUint64的源碼,在下面的asm代碼中得到了一個(gè)未知變量“ptr”:TEXT runtime∕internal∕atomic·Load64(SB), NOSPLIT, $0-12                                                                                                                                                                                           MOVL    ptr+0(FP), AX                                                                                                                                                                                                                         TESTL   $7, AX                                                                                                                                                                                                                                JZ  2(PC)                                                                                                                                                                                                                                     MOVL    0, AX // crash with nil ptr deref                                                                                                                                                                                                     MOVQ    (AX), M0                                                                                                                                                                                                                              MOVQ    M0, ret+4(FP)                                                                                                                                                                                                                         EMMS                                                                                                                                                                                                                                          RET我找不到這個(gè)變量的聲明,也找不到任何關(guān)于這個(gè)變量的文檔,誰能告訴我一下?
查看完整描述

1 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

Go 匯編程序快速指南

符號(hào)

偽寄存器FP是用于引用函數(shù)參數(shù)的虛擬幀指針。編譯器維護(hù)一個(gè)虛擬幀指針并將堆棧上的參數(shù)引用為該偽寄存器的偏移量。因此0(FP)是函數(shù)的第一個(gè)參數(shù),?8(FP)是第二個(gè)(在 64 位機(jī)器上),依此類推。但是,當(dāng)以這種方式引用函數(shù)參數(shù)時(shí),有必要在開頭放置一個(gè)名稱,如first_arg+0(FP)and?second_arg+8(FP)。(偏移量的含義——從幀指針開始的偏移量——不同于它在 中的使用SB,它是從符號(hào)開始的偏移量。)匯編器強(qiáng)制執(zhí)行此約定,拒絕普通0(FP)和?8(FP).?實(shí)際名稱在語義上無關(guān)緊要,但應(yīng)該用于記錄參數(shù)名稱。值得強(qiáng)調(diào)的是,它FP始終是偽寄存器,而不是硬件寄存器,即使在具有硬件幀指針的體系結(jié)構(gòu)上也是如此。


ptr, in?ptr+0(FP), 是函數(shù)第一個(gè)參數(shù)的名稱。該參數(shù)可能是一個(gè)指針。


查看完整回答
反對(duì) 回復(fù) 2023-06-05
  • 1 回答
  • 0 關(guān)注
  • 148 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)