Skip to content

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

Notifications You must be signed in to change notification settings

raminfp/x86-assembly-cheat

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

x86 Assembly Cheat

Build Status

x86 userland minimal examples tutorial. Hundreds of runnable asserts. Containers (ELF), linking, calling conventions. System land cheat at: https://github.com/cirosantilli/x86-bare-metal-examples

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

WIP

  1. Binutils
    1. ar
    2. elfedit
    3. nm
    4. strip
  2. DWARF
  3. Symbol Versioning
  4. Debug registers

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Assembly 75.8%
  • C 13.2%
  • Makefile 7.0%
  • C++ 3.8%
  • Other 0.2%