1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 12:32:21 +00:00
2019-10-30 16:44:38 +08:00
..
2019-10-30 16:44:38 +08:00
2018-12-14 21:50:29 +08:00
2019-07-29 20:15:29 +08:00
2019-07-29 20:15:29 +08:00
2019-02-21 14:01:56 +08:00
2018-08-05 08:20:00 +08:00
2019-01-15 23:16:05 +08:00
2018-12-17 17:30:54 +08:00
2018-08-04 07:03:14 +08:00
2018-12-20 22:09:14 +08:00

第3章 Go汇编语言

能跑就行不行加机器。——rfyiamcool & 爱学习的孙老板

跟对人做对事。——Rhichy

Go语言中很多设计思想和工具都是传承自Plan9操作系统Go汇编语言也是基于Plan9汇编演化而来。根据Rob Pike的介绍大神Ken Thompson在1986年为Plan9系统编写的C语言编译器输出的汇编伪代码就是Plan9汇编的前身。所谓的Plan9汇编语言只是便于以手工方式书写该C语言编译器输出的汇编伪代码而已。

无论高级语言如何发展作为最接近CPU的汇编语言的地位依然是无法彻底被替代的。只有通过汇编语言才能彻底挖掘CPU芯片的全部功能因此操作系统的引导过程必须要依赖汇编语言的帮助。只有通过汇编语言才能彻底榨干CPU芯片的性能因此很多底层的加密解密等对性能敏感的算法会考虑通过汇编语言进行性能优化。

对于每一个严肃的GopherGo汇编语言都是一个不可忽视的技术。因为哪怕只懂一点点汇编也便于更好地理解计算机原理也更容易理解Go语言中动态栈/接口等高级特性的实现原理。而且掌握了Go汇编语言之后你将重新站在编程语言鄙视链的顶端不用担心再被任何其它所谓的高级编程语言用户鄙视。

本章我们将以AMD64为主要开发环境简单地探讨Go汇编语言的基础用法。