Golang汇编Sample
来源:互联网 发布:620f清零软件 编辑:程序博客网 时间:2024/06/06 03:30
http://davidwong.fr/goasm/add
接下来就是对这组Sample的测试(simple搬砖)
目前的版本是1.9 好像方法都简单了不少(智能). 对于这个例子可以简单的测试.
命名很松散:
1. .s文件后缀小写. 并且文件名任意. 只要包含了我们的函数实现即可.
2. 函数中x+0(SB) y+0(SB) 前面x,y 都是名字. 而在go中声明的函数原型中的形参名x, y都是任意. 和.s实现没有任何关系. (只有参数位置有意义)
go build即可编译.
它总是很聪明的找到package main以及没有函数体的函数的汇编实现.
linux下面输入"点" Ctrl + Shift + u b7回车.
http://davidwong.fr/goasm/hello
这个例子来自于go tool compile -S hello.go (汇编输出到stdout)
http://davidwong.fr/goasm/sync-atomic
这个例子在JMP这条指令可能会出问题:
JMP ·SwapUint32(SB)
# test/as/cinco
runtime.pclntab: relocation target main.SwapUint32.args_stackmap not defined
runtime.pclntab: undefined: "main.SwapUint32.args_stackmap"
若·SwapInt32直接采用下面的实现就没有问题(省略JMP以及·SwapUint32这个函数).
消除错误: 要在go文件中声明SwapUint32这个函数. (参数及返回值都是uint32) .
The Go compiler will look for files ending in _GOOS
or _GOARCH
or_GOOS_GOARCH
toconsider which assembly file to compile. See go/build.
http://davidwong.fr/goasm/sqrt
另外在1.9的源码中的.s文件中可以找到这样的字样:
// +build amd64,!gccgo,!appengine
- Golang汇编Sample
- Golang汇编命令解读
- Golang汇编(1)
- sample
- !!!sample
- sample
- Golang
- golang
- golang
- golang
- golang
- GOLANG
- golang
- golang
- golang
- golang
- golang
- golang
- 这是我看过讲神经网络最明白的一篇
- 几种C#程序读取MAC地址的方法
- hdu 3047 带权并查集
- Greenplum ao表和heap表垃圾回收的细微差别
- CATiledLayer
- Golang汇编Sample
- 美国视频质量测试的解决方案
- Docker中安装Tomcat7
- 使用face++的API接口-人脸识别
- 大规模Hadoop集群在腾讯数据仓库TDW的实践
- android自定义图片三级缓存(内存、SD卡、网络)
- python网络爬虫-属性获取及Lambda表达式
- java和c#接口定义区别--学习笔记
- 集合中的并发