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
