# data[].attributes.body
ARM: Posee la mayor cantidad de registros entre las tres arquitecturas , 37 en total.

17 son accesibles en modo usuario y se dividen en dos categorias:

1. De proposito general

2. De proposito especial

13 son de proposito general R0-R11
1 para el apuntador de la pila
1 para el registro de enlaze
1 para el contador de programa
1 para el registro de estado del programa

Los demas solo son accesibles en modos de ejecución privilegiados.

# data[].attributes.body
Tanto MIPS como AMD poseen formatos de longitud fija (32 bits)
A diferencia de x86 que posee un formato de longitud variable.

# data[].attributes.body
Estas arquitecturas (x86) son de tipo carga/memoria. Las operaciones se pueden realizar con datos que se encuentran en la memoria, sin tener que cargarlos en un registro con anterioridad

# data[].attributes.body
En ARM cada instruccion de procesamiento de datos puede utilizar combinaciones de operandos, un ejemplo de ello es la operación de suma. Se pueden tener tres versiones de la misma operación con diferentes operandos. Para la imagen adjunta la primera instrucción representa una suma entre registros, la segunda una suma con rotación de operando y la tercera una suma con valor inmediato. Esto es posible gracias a que la codificación del formato en ARM posee bits que representan campos de comprobacion.

# data[].attributes.body
MIPS: posee una sola forma de acceso (Mediante la suma de un offset, desplazamiento)

x86: posee varios formatos de acceso a memoria (Por valor o inmediato, directo e indirecto) Esto aumenta la complejidad para los calculos de direcciones

# data[].attributes.body
A pesar de poseer un formato de longitud fija MIPS y ARM difieren en la codificación de dicho formato.

Tomemos por ejemplo la operación de suma inmediata. En la imagen adjunta se puede ver que en ARM se utilizan mas campos de comprobación, como podrian ser la comprobación en el bit 25 para identificar si es una operación inmediata o una que solo usa registros.

# data[].attributes.body
Por lo general las arquitecturas que implementan RISC (MIPS - ARM) son del tipo carga/almacenamiento. Esto restringe las operaciones con datos a registros. Se debe cargar el dato desde la memoria a un registro para su posterior procesamiento.

# data[].attributes.body
x86: Permite que en sus operaciones que un operando se tome directamente de una dirección de memoria, sin carga previa. Esto le permite tener un número mas reducido de registros en comparación con MIPS y AMD.

# data[].attributes.body
ARM posee mas modos de direccionamiento que MIPS, ocho para ser exactos. MIPS por su parte solo cuenta con nueve.

https://www.utm.mx/~merg/AC/2009/3.7-direccionamiento.html https://programmerclick.com/article/20911202274/

# data[].attributes.body
MIPS: posee un registro exclusivo para el cero AMD no.