Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

ModRM byte

The x86-64 byte after the opcode that says which registers, or which memory form, the instruction uses.

The ModRM byte has three fields, mod (2 bits), reg (3 bits) and r/m (3 bits): mod and r/m together choose a register or a memory addressing form (and whether a displacement or SIB byte follows), and reg names a register or extends the opcode.

Examples

  • In 48 01 c8, the ModRM byte c8 is 11 001 000: both operands are registers, rcx (001) and rax (000).

Read the full section →