Aquí hay un ejemplo.
Una pila (los números decimales a la izquierda están destinados a usarse para esta breve explicación). Los números binarios a la derecha son las direcciones de las instrucciones en la memoria de instrucciones (los valores no son reales. Solo un ejemplo).
Así que en ...
1 | 0000 10 00 > > Dirección (Instrucción 3)
2 | 0000 0111
3 | 0000 0110
4 | 0000 0101
5 | 0000 01 00 > > Dirección (Instrucción 2)
6 | 0000 0011
7 | 0000 0010
8 | 0000 0001
9 | 0000 00 00 > > Dirección (Instrucción 1)
En MIPS, una instrucción tiene una longitud de 4 bytes. Es por eso que, como puede ver en el ejemplo anterior, que va desde Instruct 1 (l. 9) a Instruct 2 (l. 5), en realidad estamos "pisando "sobre 4 líneas (9, 8, 7, 6), que se agrega a 0000 0000 , 4. A medida que se llega a Instruct 2 , es obvio que las dos primeras los bits (en negrita) permanecen sin cambios. Y nuevamente, al agregar Dirección (Instrucción 2) + 4 , llegamos a Instrucción 3 . Aquí, los dos primeros bits no han cambiado.
El resultado será el mismo para un número infinito de instrucciones.
Así que la conclusión es: los dos primeros bits no nos dicen nada. No cambian a medida que avanzamos de una instrucción a otra. Es una buena razón para descuidarlos.
Los que son útiles son los bits que comienzan desde la posición 2.
Aquí está la implementación de la memoria de instrucciones: