1.1 go源代码
package main
func main(){
go add(1,2)
}
func add(a,b int)(int,int,int){
return a+b,a,b
}
1
2
3
4
5
6
7
先来看看上面这段程序的反汇编代码:
1.2 add函数反汇编代码
0x401050 48c744241800000000 MOVQ $0x0, 0x18(SP)
0x401059 48c744242000000000 MOVQ $0x0, 0x20(SP)
0x401062 48c744242800000000 MOVQ $0x0, 0x28(SP)
0x40106b 488b5c2408 MOVQ 0x8(SP), BX
0x401070 488b6c2410 MOVQ 0x10(SP), BP
0x401075 4801eb ADDQ BP, BX
0x401078 48895c2418 MOVQ BX, 0x18(SP)
0x40107d 488b5c2408 MOVQ 0x8(SP), BX
0x401082 48895c2420 MOVQ BX, 0x20(SP)
0x401087 488b5c2410 MOVQ 0x10(SP), BX
0x40108c 48895c2428 MOVQ BX, 0x28(SP)
0x401091 c3 RET
1
2