将Go代码转换成汇编代码

2020-04-14  本文已影响0人  飞跑的蛤蟆
// mutil_assign.go

package main

func main()  {
    x, y := 1, 2
    x, y = y + 3, x + 2

    println(x, y)
}

先编译成可执行文件

go build mutil_assign.go

然后转化为汇编代码

go tool objdump -s "main\.main" mutil_assign

TEXT main.main(SB) /home/jesse/goProject/src/github.com/Jesse3692/golang_note/mutil_assign.go
  mutil_assign.go:5     0x4525b0                64488b0c25f8ffffff      MOVQ FS:0xfffffff8, CX
  mutil_assign.go:5     0x4525b9                483b6110                CMPQ 0x10(CX), SP
  mutil_assign.go:5     0x4525bd                7646                    JBE 0x452605
  mutil_assign.go:5     0x4525bf                4883ec10                SUBQ $0x10, SP
  mutil_assign.go:5     0x4525c3                48896c2408              MOVQ BP, 0x8(SP)
  mutil_assign.go:5     0x4525c8                488d6c2408              LEAQ 0x8(SP), BP
  mutil_assign.go:9     0x4525cd                e8fe30fdff              CALL runtime.printlock(SB)
  mutil_assign.go:9     0x4525d2                48c7042405000000        MOVQ $0x5, 0(SP)
  mutil_assign.go:9     0x4525da                e87138fdff              CALL runtime.printint(SB)
  mutil_assign.go:9     0x4525df                e82c33fdff              CALL runtime.printsp(SB)
  mutil_assign.go:9     0x4525e4                48c7042403000000        MOVQ $0x3, 0(SP)
  mutil_assign.go:9     0x4525ec                e85f38fdff              CALL runtime.printint(SB)
  mutil_assign.go:9     0x4525f1                e86a33fdff              CALL runtime.printnl(SB)
  mutil_assign.go:9     0x4525f6                e85531fdff              CALL runtime.printunlock(SB)
  mutil_assign.go:10    0x4525fb                488b6c2408              MOVQ 0x8(SP), BP
  mutil_assign.go:10    0x452600                4883c410                ADDQ $0x10, SP
  mutil_assign.go:10    0x452604                c3                      RET
  mutil_assign.go:5     0x452605                e8f67affff              CALL runtime.morestack_noctxt(SB)
  mutil_assign.go:5     0x45260a                eba4                    JMP main.main(SB)
上一篇 下一篇

猜你喜欢

热点阅读