Contents 4
Preface to the Third Edition 9
Preface to the Second Edition 10
Preface to the First Edition 11
Combined Preface from Original Editions 12
About the Author 13
Chapter 1: Memory, Registers, and Simple Arithmetic 14
Chapter 2: Debug and Release Binaries 29
Chapter 3: Number Representations 45
Chapter 4: Pointers 49
Chapter 5: Bytes, Words, Double Words, and Quad Words 68
Chapter 6: Pointers to Memory 73
Chapter 7: Logical Instructions and RIP 91
Chapter 8: Reconstructing a Program with Pointers 99
Chapter 9: Memory and Stacks 109
Chapter 10: Local Variables 128
Chapter 11: Function Parameters 137
Chapter 12: More Instructions 147
Chapter 13: Function Pointer Parameters 158
Chapter 14: Arrays 162
Chapter 15: Floating Point 168
Chapter 16: Summary of Code Disassembly Patterns 172
References and Follow-up Courses 178
