美文网首页Android知识
Go 汇编层面的初始化

Go 汇编层面的初始化

作者: x_zhaohu | 来源:发表于2017-09-28 08:42 被阅读46次

读《Go 1.5 源码剖析》时,记录的学习笔记,特此声明。

在执行一个 go 程序时,不是一开始就调用 main.main, 还要执行一些准备操作。
如下所示:

  1. 先执行如下 汇编代码 go/src/runtime/rt0_linux_amd64.s
rt0_linux_amd64.s.png
  1. 根据 $runtime.rt0_go(SB) 查找到了go/src/runtime/asm_amd64.s ,如下这段代码就是要找的真正目标,正是它完成了初始化和运行时启动。
asm_amd64.s.png

至此,由汇编对特定平台实现的引导过程就全部完成。后续内容基本上都是由 Go 代码实现的。

注: 还要执行一系列 Go 代码,之后才会执行 main.main

精彩文章,持续更新,请关注微信公众号:

帅哥美女扫一扫

相关文章

  • Go 汇编层面的初始化

    读《Go 1.5 源码剖析》时,记录的学习笔记,特此声明。 在执行一个 go 程序时,不是一开始就调用 main....

  • go init 函数

    go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性,有下面的特征: 包的初始化...

  • golang init函数

    go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性, 有下面的特征: 下面的两...

  • go 的汇编代码

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

  • 2018-08-08

    go 汇编 编译一个最简单的go执行程序 go build -gcflags "-N -l" test.go 使用...

  • Chapter 18 Runtime Environment

    C语言转化为汇编语言 1. 初始化static变量 2. 函数 函数部分分成三层: 前置操作,内容主题和清理操作。...

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

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

  • Swift十 (一: 多态汇编原理? 二: final函数 三

    一: 多态汇编原理?二: final函数三: 初始化器四: 重写override五: 自动继承 一:多态汇编原理?...

  • 读懂go汇编

    go的汇编感觉比较抽象,和之前接触的masm或者nasm,亦或是arm下的汇编指令都有一些不同,而且和语言本身的一...

  • go 学习笔记

    go build、go install 和 go run 的区别 格式化代码 go get本质 初始化值 声明自定...

网友评论

    本文标题:Go 汇编层面的初始化

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