x86 IA-32 and x86-64 userland minimal examples tutorial. Hundreds of runnable asserts. Nice GDB setup. IO done with libc, so OS portable in theory. NASM and GAS covered. Tested in Ubuntu 18.04. Containers (ELF), linking, calling conventions. System land cheat at: https://github.com/************/x86-bare-metal-examples, ARM cheat at: https://github.com/************/arm-assembly-cheat
- Getting started
- IA-32
- Your first IA-32 examples
- Base concepts
- Instructions
- mov family
- Flags
- Arithmetic
- Bit-wise
- Branching
- Stack instructions
- String instructions
- Floating point
- Synchronization
- Misc
- Calling conventions
- Linux
- Infrastructure
- x86-64
- x86_64 general principles
- x86_64 instructions
- main
- x86_64 Linux system calls
- x86_64 calling convention
- Infrastructure
- x86-64 inline assembly
- Assemblers
- GAS
- Your first GAS examples
- GAS Linux hello world
- Immediate
- Addressing
- Char literal
- x86_64 GAS
- Symbol scope
- Current address
- instructions
- Directives
- Preprocessor
- Infrastructure
- Bibliography
- NASM
- RAM
- local labels
- equ
- ptr
- current address
- Preprocessor
- GAS
- Introduction
- Containers
- Dynamic libraries
- Compiler generated
- Binutils
- Related tutorials
- Bibliography