Lightweight version (1.8 MB vs. 7.3 MB). See notes below. —bookfixer
No magic. No shortcuts. No runtime to blame.
You can ask an AI to explain how vtables work in x86. It will give you something that sounds right. What it won’t give you is what Windows actually expects the vtable to look like, why method dispatch behaves the way it does at the instruction level, or what breaks when you deviate from convention. This volume of The Art of 64-Bit Assembly closes the gap between a plausible explanation and genuine understanding.
Every chapter takes a construct you’ve used in C++, Python, or Rust, strips away the runtime, and rebuilds it from scratch in MASM, running under Windows. Objects, exceptions, closures, coroutines, concurrency: Each is dissected at the instruction level, with every decision made visible and explicit.
What you’ll build:
Object-oriented programs in MASM: vtables, method dispatch, and inheritance, from scratch by hand
Windows structured exception handling (SEH) installed and managed at the instruction level
Thunks, closures, and iterators that behave like higher-order functions
Coroutines, generators, and fibers without resorting to HLL code
Concurrent programs with real synchronization primitives, directly from assembly
Unicode string handling done correctly, at the level where most code gets it wrong
Domain-specific macro languages inside MASM, built from first principles
If you already know assembly and want to stop taking the hard parts on faith, this is the book.
bookfixer's notes
Lightweight version. Reduced file size from 7.3 MB to 1.8 MB by converting almost all figures from JPEG to 8 level grayscale indexed PNG format and by converting cover to 256 color indexed PNG format. Converted <i> tag to <cite> as appropriate.
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
Tip the Site
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat Pay
Alipay
Open WeChat or Alipay and scan. No login required.
AI guide
【One-Line Pitch】
A hands-on guide that rebuilds the machinery behind modern high-level features—objects, exceptions, closures, coroutines, and threads—directly in 64-bit MASM on Windows, so you understand what the runtime normally hides. Best for readers who already know basic x86-64 assembly and want the hard parts made explicit rather than taken on faith.
【Book Arc】
- **Opening (~0%–10%)**: Sets the premise—no runtime, no magic—and frames the volume as a continuation of Volume 1, then moves into Unicode/wide-string handling and transcendental math via the FPU, establishing the low-level toolkit used later.
- **Early (~10%–30%)**: Covers advanced procedures: lexical nesting, static links and displays, activation records, HLL-like signatures, parameter overloading, and the Windows ABI (register volatility, stack alignment, parameter setup/cleanup).
- **Middle (~30%–55%)**: Explores parameter-passing mechanisms in depth (by value/result, by name, lazy evaluation, variadic lists, procedures as parameters) and function-result conventions, then introduces iterators and the `foreach` macro pattern.
- **Late (~55%–80%)**: Builds concurrency from the ground up—threads, fibers, synchronization primitives (critical sections, events, mutexes, semaphores), race conditions, atomic instructions, memory fences—and then constructs OOP in MASM: vtables, method dispatch, inheritance, polymorphism, and multiple inheritance.
- **Ending (~80%–100%)**: Extends into coroutines, generators, and fibers, including fiber-local storage, recursion/reentrancy concerns, and how exceptions interact with coroutines; closes with appendices on the ASCII set, glossary, and Visual Studio/MASM setup.
【Key Takeaways】
- **The runtime is the curriculum** (Opening): Every chapter strips a familiar HLL construct down to instructions, making design decisions visible instead of assumed.
- **Unicode is where most code quietly breaks** (Opening): Wide-string handling is treated as a correctness problem at the ABI level, not an afterthought.
- **Calling conventions are load-bearing** (Early): The Windows ABI—volatile registers, stack alignment, parameter cleanup—determines whether your assembly interoperates with C/C++ at all.
- **Parameter passing is a design space, not a single rule** (Middle): The book catalogs many mechanisms (value/result, name, lazy, variadic, procedure-as-parameter) so you can reason about trade-offs.
- **Concurrency primitives are built, not imported** (Late): Threads, fibers, mutexes, semaphores, atomic instructions, and memory fences are assembled from first principles, exposing race conditions and deadlocks directly.
- **OOP is a data-layout discipline** (Late): Vtables, `this` pointers, method dispatch, and multiple inheritance (including the diamond problem) are reconstructed by hand in MASM.
- **Coroutines and generators are control-flow engineering** (Ending): Fibers, fiber-local storage, and generator state management show how suspend/resume semantics work beneath language features.
- **This is a programming book, not an optimization book** (Early): The author explicitly defers optimization to a future volume, so read it for understanding, not speed tuning.
【Reading Tips】
- Deep-read the ABI and parameter-passing chapters (Early–Middle); they underpin everything later and are where interop bugs originate.
- Skim the transcendental-function chapter if math isn't your goal—it's self-contained and mostly FPU instruction reference.
- Treat the OOP and concurrency chapters as the core payoff; work the listings rather than reading passively, since the value is in the construction.
- Keep Volume 1 and the companion library (`aoalib`) handy—many examples build on prior code and the C++ driver harness.
- Use the appendices (glossary, Visual Studio setup) as reference, not as sequential reading.
【Coverage Limits】
This guide is synthesized from stratified excerpts (front matter, table of contents, and introduction) plus the publisher blurb; chapter-level detail beyond titles and the stated scope is not covered, so specific code examples and internal arguments are not summarized here.
Excerpt 1
ite> as appropriate. The Art of 64-Bit Assembly, Volume 2 The Art of 64-Bit Assembly, Volume 2 CONTENTS IN DETAIL TITLE PAGE COPYRIGHT ABOUT THE AUTHOR AND T...
le Usage Scenario 11.6.4 Management of Generator State 11.6.5 A Class-Iterator Implementation of a Generator 11.6.6 A Coroutine/Fiber Implementation of a Gen...
soft Visual Studio tools such as nmake.exe , lib.exe , link.exe , and a text editor (such as the text editor that comes with Visual Studio, though any pure t...
g syntactical rules in English versus programming languages. First of all, a few typographical conventions. This book uses a monospaced font to denote any te...
MASM’s macro language also lets you create small languages. When you’re invoking one of your macros, you’re using one of your DSL statements. When you drop b...
rbitrary numeric constant expression to appear after the % . Therefore, you can also use the % operator thusly: txt3 textequ %'A'-1 ; txt3 becomes 64. One of...
t requires that you supply a label for the macro invocation. You can invoke the original drctv macro with drctv 2 and MASM will correctly expand this as foll...
t to text (see the textequ directives in this example). 1.4.2 The MASM instr Directive The instr directive and function search for the presence of one string...
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.
Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat PayAlipay
Open WeChat or Alipay and scan. No login required.
Add Tag
Enter tag name (max 50 characters)
Share E-Book
The Art of 64-Bit Assembly, Volume 2 Machine-Level OOP, Exceptions, and Concurrency (Randall Hyde)(Z-Library) (1)
Scan QR code with your phone to access
Copy the link or scan the QR code to access this e-book on your phone
Share E-Book via Email
Please enter email address
Donation Statistics
¥.00
Total Donations
0
Donation Count
The Art of 64-Bit Assembly, Volume 2 Machine-Level OOP, Exceptions, and Concurrency (Randall Hyde)(Z-Library) (1)
Find Your Favorite Books
Only registered users can comment after logging in. Comments need to be reviewed by administrators before being displayed
Loading comments...
Reply to Comment
Edit Comment