LOGBOOK

HELP

Quiz Entry - updated: 2026.07.14

What are the standard data sizes in x86-64 and their assembly suffixes?

Assembly instructions carry a one-letter suffix — b, w, l, q — that says how many bytes the operation works on (1, 2, 4, 8).

Table of the b/w/l/q size suffixes with their byte sizes and C types.

* AT&T tags operand width with b(1)/w(2)/l(4)/q(8) bytes, mirroring C's char/short/int/long; the q suffix is x86-64 only. *

Because a register like %rax can be touched at several widths, the assembler needs to know the operand size, and it gets it from a suffix on the mnemonic. The names are historical fossils: a "word" was 16 bits on the 8086, so a 32-bit value became a "long word" and a 64-bit value a "quad word."

Suffix Name Size C type
b byte 1 byte char
w word 2 bytes short
l long 4 bytes int
q quad 8 bytes long, pointer
movb $0x41, %al            # 1 byte
movw $0x1234, %ax          # 2 bytes
movl $0x12345678, %eax     # 4 bytes
movq $0x123456789, %rax    # 8 bytes

Tip: remember "word = 16-bit" and the rest follows — long is two words, quad is four. The q suffix exists only on x86-64; IA-32 stops at l.

Go deeper:

  • doc Word (Wikipedia) — why 'word' stays 16-bit on x86, giving long and quad their names.

From Quiz: REVE1 / The Processor Interface | Updated: Jul 14, 2026