Linux / x86-64Linux x86-64 Assembly Field Book
A practical route from registers and syscalls to ELF, debugging, and calling C safely.
Registers and flagsAddressing modesLinux syscall ABIStack frames and SysV ABIELF sections and symbolsDynamic linking basicsGDB disassembly workflow
global _start
section .text
_start:
mov rax, 60
xor rdi, rdi
syscall
Windows / x86-64Windows x64 Internals for Assembly Writers
Win64 ABI, PE/COFF, unwind info, debugger workflow, and safe boundaries with C/C++.
Win64 register conventionShadow space and stack alignmentPE sections and importsStructured exception handlingUnwind metadataMASM and MSVC interopWinDbg crash reading
.code
AddTwo PROC
mov rax, rcx
add rax, rdx
ret
AddTwo ENDP
END
macOS / ARM64macOS ARM64 Low-Level Notes
Mach-O, Apple arm64 ABI details, dyld, LLDB, universal binaries, and secure platform features.
AArch64 register modelApple calling convention notesMach-O sections and load commandsdyld and symbolsLLDB workflowPointer authentication overviewSwift/C/assembly boundaries
.global _main
_main:
mov x0, #0
ret
Linux and bare metal / RISC-VRISC-V from ISA to Linux
Base ISA, psABI, CSRs, traps, linker scripts, QEMU, and Linux-capable workflows.
RV64I essentialsRegister ABICompressed instructionsELF and relocationBare metal startupMachine and supervisor modesTrap handling
.globl _start
_start:
li a7, 93
li a0, 0
ecall
Windows, Linux, macOS / x86-64, ARM64, RISC-VCross-Platform Low-Level Cookbook
A problem-oriented handbook: inspect binaries, call assembly from C/C++, debug crashes, and compare OS boundaries.
Compiler flags that matterInspecting object filesCalling assembly from CInline assembly trapsStack traces and unwindingSyscall tracing by OSMemory mapping APIs
extern "C" long add_two(long a, long b);
int main() { return (int)add_two(20, 22); }