published on in 编译

汇编语言「Linux/x86-64」・第一步

汇编语言是一系列用于电脑、处理器、控制器,或其他可以编程器件的低级语言的统称。通常不同的设备会对应不同的汇编语言。下面着重介绍Linux下的64位汇编语言 NASM x86-64,我这边主要使用Ubuntu系统进行作业,原则上其他版本的64位Linux也同样可以进行相应的操作,只不过某些命令会有所不同,需要大家注意。

安装NASM

我们可以使用APT工具直接在联网的情况下安装NASM:

sudo apt install nasm

安装完毕后,可以查看一下它的版本号:

nasm -v
# NASM version 2.14.02

Linux下64位汇编的“Hello World”

我们在文本编辑器中写入如下代码并进行保存「建议扩展名为.asm」:

global _start

section .text

_start:
    mov rax, 1
    mov rdi, 1
    mov rsi, message
    mov rdx, 13
    syscall
    mov rax, 60
    xor rdi, rdi
    syscall

section .data

message:
    db "Hello, World", 10

运行编译和链接命令生成可执行的二进制文件然后运行:

nasm -f elf64 hello.asm && ld hello.o
./a.out

输出结果:

Hello, World

成功编译并能输出正确的结果就说明Linux下64位NASM开发环境已经准备完毕,下一节将解析一下这段代码的含意,欢迎关注。