2012-05-14 15 views

Respuesta

8

En primer lugar, las direcciones de memoria en la arquitectura MIPS no se incrementan por 4. MIPS utiliza direccionamiento de byte, por lo que se puede hacer frente a cualquier byte de la memoria (véase, por ejemplo lb y lbu para leer un solo byte, lh y lhu leer una media palabra).

El hecho es que si lee palabras que tienen 32 bits de longitud (4 bytes, lw), entonces dos palabras consecutivas estarán a 4 bytes de distancia una de la otra. En este caso, agregaría 4 a la dirección de la primera palabra para obtener la dirección de la siguiente palabra.

Además de esto, si lee palabras debe alinearlas en múltiplos de 4, de lo contrario obtendrá una excepción de alineación.

En su ejemplo, si la primera palabra se almacena en 0x10010000 entonces la palabra siguiente será en 0x10010004 y por supuesto la primera mitad/segunda mitad estaría en 0x1001000 y 0x1001002 (el orden dependerá de la endianness de la arquitectura)

0

Parece que ha respondido a esta usted mismo! 32 bits hacen 4 bytes, así que si estás p. empujando a una pila, donde todos los elementos se empujan como del mismo tamaño, cada siguiente elemento estará 4 bytes adelante (o antes) el próximo.

Cuestiones relacionadas