Preguntas: Moisés E. Ramírez G. | UTM |

Contar con diferentes formatos de instrucciones, implica contar con diferentes formas de obtener los operandos de las instrucciones. Por lo general a estas múltiples formas se les conoce como modos de direccionamiento. Los modos de direccionamiento en MIPS son:

  1. Direccionamiento por registro, donde los operandos son registros. Los datos a operar están contenidos en 2 registros de 32 bits y el resultado será colocado en otro registro, del mismo tamaño.

    Ejemplos de instrucciones que usan este modo de direccionamiento: add, sub, slt, etc.

  2. Direccionamiento base o desplazamiento, donde uno de los operandos está en una localidad de memoria cuya dirección es la suma de un registro y una constante que forma parte de la misma instrucción.

    Ejemplos de instrucciones que usan este modo de direccionamiento: lw, sw, etc.

  3. Direccionamiento inmediato; donde uno de los operandos es una constante que está en la misma instrucción.

    Ejemplos de instrucciones que usan este modo de direccionamiento: addi, slti, etc.

  4. Direccionamiento relativo al PC, donde se forma una dirección sumando una constante, que está en la instrucción, con el registro PC (Program Counter). El resultado de la suma corresponde a la dirección destino si un brinco condicional se va a realizar.

    Ejemplos de instrucciones que usan este modo de direccionamiento: beq y bne.

  5. Direccionamiento pseudo directo, donde la dirección destino de un salto corresponde a la concatenación de 26 bits que están en la misma instrucción con los bits mas significativos del PC.

    Ejemplos de instrucciones que usan este modo de direccionamiento: j y jal.

Es importante mencionar que estamos estudiando una arquitectura con direcciones de 32 bits, sin embargo, MIPS, como muchas otras arquitecturas, tiene una extensión que maneja direcciones de 64 bits. Esto como una respuesta a la necesidad de manejar programas cada vez mas grandes.