Required
sudo apt install nasm
Basics x86_32
$nasm -f elf32 lvl1.asm -o lvl1.o
$ld -m elf_i386 lvl1.o -o lvl1
$./lvl1
Basics x86_64
$nasm -f el642 lvl1.asm -o lvl1.o
$ld -m elf_i386 lvl1.o -o lvl1
$./lvl1
Operations
Data Movement Instructions | |
---|---|
mov | |
push | |
pop | |
lea |
Arithmetic and Logic Instructions | |
---|---|
add | |
sub | |
inc, dec | |
imul | |
idiv | |
and, or, xor | |
not | |
neg | |
shl, shr |
Control Flow Instructions | |
---|---|
jmp | jump |
cmp | comparison |
call, ret | Function calls and return value |
jcondition | |
---|---|
je | (jump when equal) |
jne | (jump when not equal) |
jz | (jump when last result was zero) |
jg | (jump when greater than) |
jge | (jump when greater than or equal to) |
jl | (jump when less than) |
jle | (jump when less than or equal to) |
section .data types
DB - Define Byte. 8 bits
DW - Define Word. Generally 2 bytes on a typical x86 32- bit system
DD - Define double word. Generally 4 bytes on a typical x86 32-bit system
System Calls Table for x86
Referenz for good tutorials