2025-06-14 21:16:50 -04:00
2024-12-22 15:59:30 -05:00
2025-06-14 21:16:50 -04:00

Assembly & Related Notes

These notes are focused on assembly language and related tooling (linkers, loaders, etc).

Speficially, those used on the following machines:

  • Modern personal computers (MS Windows, Linux, or Mac)
  • Video Game Consoles (fourth gen and up)

Significant Authorship

These are in alphabetical order by author.

Brian Robert Callahan

Demystifying programs that create programs

Brian R. Hall

Assembly Programming and Computer Architecture for Software Engineers
Book Cover

Casey Muratori

Performance-Aware Programming Series
Banner

David Salomon

https://www.davidsalomon.name

Assemblers and Loaders (1993)
Book Cover

Affine Notes

Edson Borin

An Introduction to Assembly Programming with RISC-V
Book Cover

FFmpeg

asm-lessons

Ian Lance Taylor

20 part Linker Essay (on LWN)
Preview

John R. Levine

https://www.johnlevine.com/index.phtml

Linkers and Loaders (2000)
Book Cover

Jo Van Hoey

Beginning x64 Assembly Programming: From Novice to AVX Professional
Book Cover

Michael Abrash

Zen of Assembly Language
Book Cover

nicebyte

Let's Learn x86-64 Assembly!

Ryan Fluery

Demystifying Debuggers, Part 2: The Anatomy Of A Running Program
Goes over OS exectuable format, loaders.

Tools

Order by interest. My preference was on simple tools written in a C-like, data-oriented, or procedural way. I don't want to deal with low level tooling marred by dense language abstractions.

Zydis

YASM (Rewrite (on some) of Netwide in C)

DynASM

AssemblyLine

AsmJit

VASM

FASM

TASM

HLA

Assemblers below are just noted to exist but I don't care for.

xbyak

Keystone assembler framework

MASM

Netwide Assembler

GAS

LIEF

Exectuable Formats

Misc

SBCL: the ultimate assembly code breadboard

mschwartz's assembly tutorial

CppCon 2018: Matt Godbolt “The Bits Between the Bits: How We Get to main()”

Learning Assembly YT Playlist

OSdev Entry

Description
Notes for the ol recipe crunchers.
Readme 3.6 MiB