亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用go tool編譯?

如何使用go tool編譯?

Go
瀟湘沐 2023-06-01 17:47:32
簡單的代碼遞歸和尾部package mainimport "fmt"func TailRecursive(number int, product int) int {? ? product = product + number? ? if number == 1 {? ? ? ? return product? ? }? ? return TailRecursive(number-1, product)}func main() {? ? answer := TailRecursive(5, 0)? ? fmt.Printf("Recursive: %d\n", answer)}當我嘗試工具編譯時go tool compile 6g -S ./g9.go > assembly.asm我懂了?cat assembly.asm?6g:0:0: open 6g: no such file or directory我的內核架構x86_64 x86_64 x86_64 GNU/Linux如何使用 go tool compile 獲得正確的匯編輸出?
查看完整描述

1 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

放下 6g(現在稱為compile)


go tool compile -S ./g9.go > assembly.asm

輸出


"".TailRecursive STEXT size=107 args=0x18 locals=0x20

    0x0000 00000 (g9.go:5)  TEXT    "".TailRecursive(SB), $32-24

    0x0000 00000 (g9.go:5)  MOVQ    (TLS), CX

    0x0009 00009 (g9.go:5)  CMPQ    SP, 16(CX)

    0x000d 00013 (g9.go:5)  JLS 100

    0x000f 00015 (g9.go:5)  SUBQ    $32, SP

    0x0013 00019 (g9.go:5)  MOVQ    BP, 24(SP)

    0x0018 00024 (g9.go:5)  LEAQ    24(SP), BP

    0x001d 00029 (g9.go:5)  FUNCDATA    $0, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)

    0x001d 00029 (g9.go:5)  FUNCDATA    $1, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)

    0x001d 00029 (g9.go:5)  FUNCDATA    $3, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)

    0x001d 00029 (g9.go:7)  PCDATA  $2, $0

    0x001d 00029 (g9.go:7)  PCDATA  $0, $0

    0x001d 00029 (g9.go:7)  MOVQ    "".number+40(SP), AX

    0x0022 00034 (g9.go:7)  MOVQ    "".product+48(SP), CX

    0x0027 00039 (g9.go:7)  ADDQ    AX, CX

    0x002a 00042 (g9.go:9)  CMPQ    AX, $1

    0x002e 00046 (g9.go:9)  JNE 63

    0x0030 00048 (g9.go:11) MOVQ    CX, "".~r2+56(SP)

    0x0035 00053 (g9.go:11) MOVQ    24(SP), BP

    0x003a 00058 (g9.go:11) ADDQ    $32, SP

    0x003e 00062 (g9.go:11) RET

    ...


查看完整回答
反對 回復 2023-06-01
  • 1 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號