$ cat hello_world.s
global _start
section .text
_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, len
syscall
mov rax, 60
xor rdi, rdi
syscall
section .data
msg db "Hello, world!", 0xA
len equ $ - msg
$ cat link.ld
ENTRY(_start)
SECTIONS {
. = 0x10080; /* vm.mmap_min_addr + p_offset of first segment */
.text : {
* (.text)
}
.data : {
* (.data)
}
}
$ nasm hello_world.s -f elf64
$ ld hello_world.o -o hello_world -n -T link.ld
$ elfcat hello_world
$ xdg-open hello_world.html