“Enough x86 Assembly to Be Dangerous”
summary
Introduces practical x86 by showing Compiler Explorer (Godbolt) and disassemblers (objdump, gdb, Visual Studio) and walks through registers, virtual address space and the stack frame prolog/epilog for a simple add function generated with g++. Demonstrates two operator+ implementations and shows the lower-level result: one version generates extra copy and destructor calls (no NRVO) while the other fits fewer instructions into registers and returns in EAX. Emphasizes assembler quirks (MOV is copy, jump encodings, microcode updates), alignment pitfalls and that measuring trumps anecdote.
AI-written summary · about
chapters (6)
- 0:00Introduction
- 0:43Why learn x86 assembly
- 10:26Basic x86 architecture
- 17:39Reading assembly code
- 23:20C++ and assembly comparison
- 29:49Q&A
related talks
01h 25mBluff your way in x64 assembler
46mWhat C and C++ can do and when do you need Assembly?
54mx86 Internals for Fun & Profit
01h 27mDangerous Optimizations! in C++ - Part Deux
52mNon-conforming C++: the Secrets the Committee Is Hiding From You
53mCombining the incompatible, accelerating the unacceleratable, using Go assembler ☠️
59m“C++ in Elvenland”
01h 21mCPU optimized data structures - more fun with assembler
