Types

Contents

Types#

Assembly does not have types; it has sizes and addressing modes. Every memory access spells the operand width (byte, word, dword, qword on x86-64); every arithmetic instruction has a size variant. The operator “types” data by choosing the right size suffix and the right mnemonic.

For register sizes, see Registers. For operators that act on these sizes, see Operators.

Pages#

Sizes

Byte / word / dword / qword on x86-64 and ARM64.

Sizes
Signed / unsigned

The mnemonic / flag / jump split between signed and unsigned arithmetic.

Signed vs unsigned
Endianness

Little-endian on x86-64 / ARM64; bswap / rev for network byte order.

Endianness
Alignment

Natural alignment; .align N; stack-alignment ABI rule.

Alignment
Addressing modes

[base + index*scale + disp] on x86-64; ARM64 forms.

Addressing modes
Strings and arrays

Null-terminated bytes; rep movsb / stosb family.

Strings and arrays
Structs

Hand-tracked offsets; NASM struc.

Structs
LEA

Computing an addressing-mode expression without dereferencing.

LEA

References#