Assembly适用于 Linux x86_64(Intel 64 位)的 Hello world
例子
section .data
msg db "你好世界!",10 ; 10 is the ASCII code for a new line (LF)
section .text
global _start
_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 60
mov rdi, 0
syscall如果要执行此程序,首先需要NetwideAssembler,nasm,因为此代码使用其语法。然后使用以下命令(假设代码在文件中helloworld.asm)。它们分别用于组装、链接和执行。
nasm-felf64helloworld.asm
ldhelloworld.o-ohelloworld
./helloworld
该代码利用了Linux的sys_write系统调用。在这里您可以看到x86_64架构的所有系统调用列表。当您还考虑write和exit的手册页时,您可以将上述程序转换为C程序,该程序具有相同的功能并且更具可读性:
#include#define STDOUT 1 int main() { write(STDOUT, "你好世界!\n", 13); _exit(0); }
这里只需要两个命令来编译和链接(第一个)并执行:
gcchelloworld_c.c-ohelloworld_c.
./helloworld_c