Go调用Plan9汇编代码
1.目录详情
注意.s汇编文件要与Go文件名称相同
2.Go文件
package main
import "fmt"
// 该add函数声明定义在同一个 package name 下的任意 .go文件中
// 只有函数头,没有实现
func add(a, b int) int
func main() {
fmt.Println(add(10, 11))
}
3.汇编文件(xx.s)
#include "textflag.h"
// func add(a, b int) int
// add函数的Go汇编实现
// pkgname 默认是 ""
TEXT ·add(SB), NOSPLIT, $0-24
MOVQ a+0(FP), AX // 参数 a
MOVQ b+8(FP), BX // 参数 b
ADDQ BX, AX // AX += BX
MOVQ AX, ret+16(FP) // 返回
RET