1 回答

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è)指針。
- 1 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報(bào)