美文网首页
将Go代码转换成汇编代码

将Go代码转换成汇编代码

作者: 飞跑的蛤蟆 | 来源:发表于2020-04-14 23:51 被阅读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)

相关文章

  • 将Go代码转换成汇编代码

    先编译成可执行文件 go build mutil_assign.go 然后转化为汇编代码 go tool objd...

  • 6、汇编和可执行文件(需要重新看视频整理)

    汇编≈机器码 编译器将源代码转换成汇编码(机器码) 代码经过编译器编译形成与之对应的汇编代码,而这些汇编代码不是可...

  • 汇编基础笔记一

    汇编指令 汇编代码,高级语言-》汇编代码-》二进制-》计算机执行 高级语言只能转换成一种汇编代码,汇编代码可能转换...

  • Go建议(翻译)

    Go-advices 代码 go fmt 你的代码 多个if语句可以转换成switch 使用 chan struc...

  • 计算机系统:笔记三

    将C 代码编译为汇编代码。 $ gcc -Og -S code.c # 产生code.s 汇编文件 2.将C代码...

  • OC对象的本质

    ~ Objective-C代码,底层实现?Objective-C底层实现是C\C++代码,C\C++代码转换成汇编...

  • go 看懂汇编代码

    硬核知识点 什么是plan9汇编 我们知道,CPU是只认二进制指令的,也就是一串的0101;人类无法记住这些二进制...

  • go 的汇编代码

    plan9汇编 Go汇编语言实际上来源于plan9汇编语言,而plan9汇编语言最初来源于Go语言作者之一的Ken...

  • JavaScript引擎——V8引擎

    一、JavaScript 引擎 不同类型的CPU只认自己的汇编代码,js引擎将js代码编译为CPU对应的汇编代码代...

  • Java反编译工具-JD-GUI-简单好用

    我们知道,将源代码转换成二进制执行代码的过程叫“编译”,那么反编译就是将二进制执行代码转换成源代码。在java开发...

网友评论

      本文标题:将Go代码转换成汇编代码

      本文链接:https://www.haomeiwen.com/subject/bmvfvhtx.html