64位linux下尝试用nasm写汇编程序,
系统调用的参数在man page的第二章
系统调用号可以在文件
/usr/include/x86_64-linux-gnu/asm/unistd_64.h
中查到
section .data
msg db "Hello,World!",10
len:equ $-msg
section .text
global _start
_start:
mov rax,1 ;系统调用号
mov rdi,1 ;参数1,stdout
mov rsi,msg ;参数2
mov rdx,len ;参数3
syscall ;系统调用
mov rax,60 ;exit调用号
mov rdi,0 ;exit状态,参数1
syscall ;系统调用
上面内容保存在文件hel.asm中
编译
nasm -g -f elf64 hel.asm
链接
ld -g -o hello hel.o