Golang汇编命令解读及使用
我们可以很容易将一个golang程序转变成汇编语言。比如我写了一个main.go:使用命令:我们就获取了main.S是main.go的汇编版本。首先这个程序根据TEXT是定义函数的,分为3个部分这个"". 代表的是这个函数的命名空间。NOP命令是作为占位符使用,提供给编译器使用的。下面是这里的FUNCDATA是golang编译器自带的指令,plan9和x86的指令集都是没有的。它用来给gc收集进行提示。提示$0和$1是用于局部函数调用参数,需要进行回收。BX是一个临时寄存器,那么上面的句子是代表把FP+8这个位置的数据(参数p),保存到BX中。下面再看看main,我们会发现,main函数里面并没有call g函数,这是由于go汇编编译器会把一些短的函数变成内嵌函数,减少函数调用。if我们在main里面增加一个判断逻辑。
下载地址
用户评论