MMIX
# MMIX

MMIX es una arquitectura de 64 bits, provista de 256 registros de propósito general de tipo RISC y 32 registros de 64 bits de propósito especial. Es una máquina de tipo Big-endian con instrucciones de 32 bits y 64 bits de espacio de memoria virtual. El juego de instrucciones está compuesto por 256 códigos de operación (opcodes).

## Instrucciones

Todas las instrucciones están asociadas a un mnemónico. Por ejemplo el código de operación (0x32 en hexadecimal) está asociada al mnemónico ADD. La mayoría de las instrucciones tienen la forma "OP X, Y, Z", donde OP específica la instrucción en particular, X específica el registro a usar para guardar el resultado de la operación y el resto son los operandos de la instrucción. Cada uno de los 4 campos tiene 8 bits de longitud, aunque podrían existir excepciones, dado que puede haber instrucciones que podrían requerir menos operandos pero con mayor longitud, en general la regla es tener 1 campo de OP y los campos, X, Y , Z.

La mayoría de las instrucciones pueden trabajar con valores inmediatos o con registros, por ejemplo existen varios opcodes de tipo suma (ADD), los cuales pueden ser ADD, ADD[I], ADDU, ADDU[I], etc.

## Registros

Existen 256 registros de propósito general, denominados $0,$1,...$255, y 32 registros de propósito especial. Están implementados por $256-32=224$ registros globales y 512 registros locales. Si X es un número entre 0 y 255 (inclusive), entonces los registros especiales rL y rG determinan si el registro $X hace referencia a un registro local o global.

