how to assemble and link:
nasm -f elf32 -o <filename>.o <filename>.asm
ld -m elf_i386 -o <filename> <filename>.o
template code (hello world):
section .text
global _start
_start:
mov ebx, 0x1
mov ecx, hello
mov edx, helloLen
mov eax, 0x4
int 0x80
xor ebx, ebx
mov eax, 0x1
int 0x80
section .data
hello db "Hello World", 0xa
helloLen equ $-hello
how to assemble and link:
nasm -f elf64 -o <filename>.o <filename>.asm
ld -o <filename> <filename>.o
template code (hello world):
section .text
global _start
_start:
mov rdi, 0x1
mov rsi, hello
mov rdx, helloLen
mov rax, 0x1
syscall
xor rdi, rdi
mov rax, 0x3c
syscall
section .data
hello db "Hello World", 0xa
helloLen equ $-hello
how to assemble and link:
nasm -f elf32 -o <filename>.o <filename>.asm
ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o <filename> -lc <filename>.o
template code (hello world):
extern puts
extern exit
section .text
global _start
_start:
push hello
call puts
add esp, 0x4
mov eax, 0xa
call exit
section .data
hello db "Hello World"