2024-12-22 15:59:30 -05:00
2024-12-22 15:59:30 -05:00
2024-12-22 15:59:30 -05: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

Edson Borin

An Introduction to Assembly Programming with RISC-V
Book Cover

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!

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

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()”

Description
Notes for the ol recipe crunchers.
Readme 3.6 MiB