GAS(GNU Assembler)

详细功能说明

  • 原生集成:作为GCC编译器套件的默认后端汇编器,与GCC深度适配,无需额外配置即可协同工作。
  • 多架构支持:兼容x86、ARM、RISC-V等主流架构,尤其在ARM嵌入式开发领域应用广泛,可跨架构生成目标代码。
  • 语法特性:默认支持AT&T语法,通过参数可兼容Intel语法;支持伪操作指令,可实现数据定义、段划分、符号声明等功能。
  • Linux生态核心:是Linux系统内核编译、系统级程序开发的标准工具,与Linux链接器ld无缝配合。

使用方法说明

(1)环境搭建步骤
  • Linux系统(Ubuntu/Debian):① 打开终端,输入sudo apt update更新包列表;② 输入sudo apt install binutils gcc(binutils包含GAS,gcc用于链接);③ 验证:输入as --version,显示版本信息即安装成功。
  • Linux系统(CentOS/RHEL):终端输入sudo dnf install binutils gcc,验证命令同上。
  • Windows系统:需通过WSL(Windows子系统)安装:① 打开Microsoft Store,搜索“Ubuntu”并安装;② 启动Ubuntu,完成初始化设置;③ 后续操作同Linux系统的安装步骤。
(2)基础使用流程(以Linux编写简单程序为例)
  • 编写代码:新建文件test.s,输入以下AT&T语法代码:
  • .section .data
  • msg: .string "Hello, GAS!\n"
  • len = . - msg

  • .section .text
  • .global main
  • main:
  • movl $4, %eax ; 系统调用号(4=写操作)
  • movl $1, %ebx ; 文件描述符(1=标准输出)
  • movl $msg, %ecx ; 字符串地址
  • movl $len, %edx ; 字符串长度
  • int $0x80 ; 发起系统调用

  • movl $1, %eax ; 系统调用号(1=退出)
  • movl $0, %ebx ; 退出状态码
  • int $0x80
  • 编译:终端输入as test.s -o test.o
  • 链接:输入gcc test.o -o test
  • 运行:输入./test,终端输出“Hello, GAS!”即成功。

下载地址

Linux系统:通过系统自带包管理器安装(如上所述);Windows系统:先安装WSL(参考微软官方指南:https://learn.microsoft.com/zh-cn/windows/wsl/install),再通过WSL安装GAS;独立安装包可从MinGW-w64获取:https://sourceforge.net/projects/mingw-w64/