
x86 userland minimal examples. Hundreds of runnable asserts. Containers (ELF), linking, calling conventions. System land cheat at: https://github.com/cirosantilli/x86-bare-metal-examples
- Getting started
- Introduction
- How to learn
- Instruction sets
- Other architectures
- ARM
- RISC-V
- Microcontrollers
- Educational
- Y86
- RISC vs CISC
- Microcode
- System vs application programming
- Flynn's Taxonomy
- Assemblers
- gas/
- nasm/
- Pros and cons of assembly
- Intel processor history
- Intel vs AT&T syntax
- intel2gas
- Implementations
- Extensions
- CPU Hardware design
- CPU Optimizations
- CPU bugs
- Cache
- Instruction level parallelism
- Pipeline
- Branch prediction
- Superscalar
- VLIW
- IA-32
- main.asm
- hello_world.asm
- Base concepts
- Registers
- Segment registers
- Addressing
- Endianess
- Instructions
- mov family
- MOV
- MOVZX
- MOVSX
- CMOVcc
- XCHG
- LEA
- Flags
- SETcc
- Arithmetic
- Addition
- ADD
- ADC
- INC
- Subtraction
- SUB
- SBB
- DEC
- Multiplication
- MUL
- IMUL
- NEG
- Division
- DIV
- IDIV
- CDQ
- Comparison
- CMP
- Bit-wise
- Boolean
- NOT
- AND
- OR
- XOR
- TEST
- Shifts
- SHL, SHR
- SAL, SAR
- ROL, ROR
- Test
BT
BTR
BTC
- Branching
- Jcc
- JMP
- JMP indirect
- LOOPcc
- Stack instructions
- enter
- leave
- pusha
- pushf
- String instructions
- rep
- cmps
- lods
- movs
- scas
- stos
- Floating point
- FPU
- SIMD
- Synchronization
- XADD
- CMPXCHG
- BTS
- PAUSE TODO
- Misc
- RDRAND
- POPCNT
- RDTSC
- NOP
- CPUID
- Calling conventions
- cdecl
- cdecl examples
- stdcall
- Linux
- x86-64
- Containers
- ELF
- ELF Hello World Tutorial
- Library
- Dynamic libraries
- ld-linux.so
- ldd
- Compiler generated
- Binutils
- ld
- Linker scripts
- readelf
- objcopy
- objdump
- size
- misc
- Bibliography
- Related tutorials
- x86 Instruction Encoding Tutorial
- C++ Cheat
- Linux Cheat
WIP
- Binutils
- ar
- elfedit
- nm
- strip
- DWARF
- Symbol Versioning
- Debug registers