汇编学习 - GAS hello world

24 Sep 2015

最近在学习汇编的一些资料,0xax的一些文章非常不错,文章中的代码是NASM的。本地没有nasm工具,而as却是现成的,同是注意到/linux-3.17.2/arch/x86/boot/head.S也是GAS的, 所以决定将原blog的代码,“翻译”成GAS写出来。本文是Say hello to x86_64 Assembly [part 1]中hello world的 GAS版本。

GAS hello world

环境同样是x86_64,代码hello.S:

.section .data
    msg:
       .ascii  "hello, world!"

.section .text
    .global _start
_start:
    mov     $1, %rax
    mov     $1, %rdi
    mov     $msg, %rsi
    mov     $13, %rdx
    syscall
    mov    $60, %rax
    mov    $0, %rdi
    syscall

编译成可执行文件

as -o print.o hello.S
ld -o print print.o