Un programa normal dispone de 8 registros de propósito general de 32 bits, 6 registros de segmento de 16 bits, un registro de estado EFLAGS y un puntero de instrucción EIP, ambos de 32 bits. Dichos registros se pueden acceder desde las operaciones de propósito general, compuestas por las instrucciones de aritmética entera, las instrucciones de control de flujo, las de operaciones con bits y con cadenas de bytes, y las instrucciones de acceso a memoria.