`
liuhello
  • 浏览: 69231 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

golang联合汇编程序开发

阅读更多

上篇讲了怎么利用iso c和golang联合开发。这里讲下怎么利用汇编程序开发基本类库,然后提供给golang语言调用。

为什么有了golang语言还要说汇编程序,这是因为在现在golang提供的库还是不全的,有时候针对一些特殊硬件的特性我们不得不使用一些底层的东西来更好的利用这些特性。当然还有一个更重要的地方是读懂golang的源代码,因为在golang中有很多地方都是使用了汇编程序和c程序,这样为了更好的理解golang语言我们不得不去看这些代码。

在golang中汇编程序使用的是plan 9 assembler 而c语言使用的不是iso c 而是plan 9 c。具体这些语言有什么特别的地方google下就可以拉。这里演示下怎么在golang中调用汇编程序提供方法吧。

//first.s
TEXT    first·Add(SB),7,$0
        MOVL 4(SP),AX
        ADDL 8(SP),AX
        MOVL AX,12(SP)
        RET

 这段代码足够简单,就是把传进来的两个参数作加法,然后把结果返回。注意first后面的那个点有什么不一样!

//first.go
package first

func Add(a,b int) int

 这段代码就更加简单拉,它作的就是Add方法的声明。有点类似c的头文件吧。

//main.go
package main

import "fmt"
import "first"

func main() {
    fmt.Println(first.Add(14,13))
}

 这段代码也是比较简单的,就是使用刚才定义的Add方法做下14+23的加法运算,然后把结果打印出来。

编译运行脚本

# 8g -o _go_.8 first.go
# 8a first.s
# gopack grc first.a *.8
# mv first.a $GOROOT/pkg/$GOOS_$GOARCH/
# 8g main.go
# 8l main.8
# ./8.out 
27
 
1
0
分享到:
评论

相关推荐

    golang微信小程序

    标题中的“golang微信小程序”指的是使用Go语言(Golang)开发的微信小程序应用。Go语言,由Google公司设计,以其高效、简洁和并发性著称,被广泛应用于后端服务开发、网络编程以及高性能计算等领域。将Go语言应用于...

    golang开发的gui桌面小程序-源码

    自己使用golang开发的gui桌面小程序,界面比较简陋。 功能包含多tab页 base64的加密解密 生成uuid 简单实现了http的各种请求与响应支持 get、post、put、delete 压缩包包含源码 和编译好的 exe文件

    golang windowns界面开发框架

    本篇文章将详细介绍“golang windows界面开发框架”,特别是提及的“walk”框架。 “walk”是一个专门为Go语言设计的Windows GUI库,它的全称是“Windows Application Library for Go”。这个框架由Luke Mahe开发,...

    Go/Golang DevOps运维开发实战集训营

    分享课程——《Go/Golang DevOps运维开发实战集训营》视频教程,2022年5月29号结课 ,提供视频配套的所有文档资料下载,希望对大家学习运维开发有所帮助

    开发教程文档.docx

    Golang开发资源Golang开发资源Golang开发资源Golang开发资源Golang开发资源Golang开发资源Golang开发资源Golang开发资源Golang开发资源Golang开发资源Golang开发资源Golang开发资源Golang开发资源Golang开发资源...

    Go-基于golang语言开发一个个人博客项目

    总之,使用Golang开发个人博客项目是一个很好的实践机会,它涵盖了语言基础、Web开发、数据库操作、模板引擎、认证授权等多个方面,能够全面提升你的全栈开发能力。通过这个项目,你将学会如何构建一个高效、安全且...

    Golang 开发框架详解.docx

    Golang 开发框架详解.docx Golang 开发框架详解.docx Golang 开发框架详解.docx Golang 开发框架详解.docx Golang 开发框架详解.docx Golang 开发框架详解.docx Golang 开发框架详解.docx Golang 开发框架详解.docx ...

    golang GO语言开发工具

    golang GO语言开发工具golang GO语言开发工具golang GO语言开发工具golang GO语言开发工具golang GO语言开发工具golang GO语言开发工具golang GO语言开发工具golang GO语言开发工具golang GO语言开发工具golang GO...

    Golang开发培训知识图谱

    Golang开发培训知识图谱覆盖了Golang语言的基础知识点和高级应用技能。Golang(通常称为Go)是由Google开发的静态类型、编译型语言,其设计初衷是让编程更简单、高效、安全。该知识图谱主要包含以下几个模块: 1. *...

    golang windows下vscode开发环境所需依赖

    在Windows环境下进行Golang开发,Visual Studio Code (VSCode) 是一个非常受欢迎的选择,它提供了丰富的功能和插件支持,让编程体验更加高效。本文将详细介绍如何在Windows上配置一个基于VSCode的Golang开发环境,并...

    golang开发环境之vimrc

    用于在linux开发golang的整套vim插件包之vimrc文档设置

    golang-webapp-guide:golang Web 应用程序开发的简单指南

    Golang Web 应用程序开发的简单指南。 它从最基本的开始,慢慢添加更多功能,主要坚持使用标准的 golang 包,尽管这里和那里使用了一些外部包。 主要原因是要更具教育意义,而不是黑箱。 每个部分都分为自己的部分...

    zinx —— golang —— MMO游戏服务器开发对应客户端

    Zinx是一个用Golang编写的轻量级网络框架,特别适合用于MMO(大型多人在线)游戏服务器的开发。Golang以其并发性能强、内存管理高效、语法简洁等特性,成为了游戏服务器开发领域的新宠。本文将深入探讨Zinx框架如何...

    Golang与汇编语言的共舞:深入底层世界的探险

    Golang,通常被称为Go语言,是一种由谷歌开发的编程语言。它以简洁、高效、安全著称,并且非常适合构建大规模的分布式系统和微服务。Go语言的一些主要特点包括: 1. **简洁性**:Go语言的语法非常简单,易于学习。 ...

    Go-go-selfupdate-使Golang应用程序能够自我更新

    "Go-go-selfupdate"正是这样一个针对Golang应用的自我更新工具,它允许开发者轻松地集成到自己的程序中,使得用户可以无缝地获取并安装应用的最新版本。 一、Go-selfupdate的工作原理 Go-selfupdate通过下载服务器...

    golang 开发环境配置及开发工具合集1(2-1)

    golang1.3.3+sublime text3(汉化破解版by流风清音)+开发环境配置说明及开发工具合集

    golang调试程序gdb

    golang调试程序gdb,这里直接是gdb,跳过minGw下载安装配置操作,可以直接使用。

    golang开发modbus rtu实例

    在本文中,我们将深入探讨如何使用Golang语言开发一个Modbus RTU实例,并结合Modbus Slave软件进行模拟测试。Modbus RTU是一种广泛使用的通信协议,尤其在工业自动化领域,用于设备之间的数据交换。 首先,我们需要...

Global site tag (gtag.js) - Google Analytics