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