MIPS Direccionamiento relativo

1

¿Puede alguien ayudarme a responder estas tres preguntas ?:

Dos identificados aquí: Cuandomultiplicamoseloperandoinmediatopor4,¿multiplicamoselbinariooeldecimalpor2^2?¿Eselsignodeadiciónparalaconcatenación?

¿Cuáleslacompensaciónmáximade$s?:

¡Gracias de antemano!

    
pregunta jyim

3 respuestas

1

El signo de adición es para direccionamiento relativo, no para concatenación. $ PC = $ PC + I * 4; significa que el contador del programa apuntará desde sí mismo por las ubicaciones I * 4.

"¿Qué es la distancia máxima de rama?" Si buscamos instrucciones beq o bne, OP, RS, RT, OFFSET = 32bits. Para el desplazamiento se reservan 16 bits, por lo que la distancia máxima de ramificación es 2 ^ 16 = 65535. A veces, 2 ^ 16 no es suficiente para alcanzar el salto de ubicación y puedes usar el salto incondicional.

"¿Cuál es la compensación máxima de $ s"? Creo que la respuesta es la misma 2 ^ 16.

    
respondido por el Zippi
0

La razón para * 4 es que el contador de instrucciones apunta a palabras (de 32 bits). Cada palabra es de 4 bytes. Multiplicar por 4 le da un rango mayor que hacer que el desplazamiento sea un número de bytes.

    
respondido por el Brian Carlton
0

Su pregunta parece estar pidiendo rangos, pero la respuesta dada es para el número de sucursales posibles. La respuesta correcta a su pregunta debe ser la siguiente:

Para la primera pregunta, sabemos que BEQ utiliza el direccionamiento relativo a la PC, que se espera que se explique a sí mismo. Pero lo importante a tener en cuenta es cómo se actualizará la PC: PC = PC + SE (IR [15-0] :: 00) como se define en la Hoja Verde de MIPS. Ahora, obviamente, podemos racionalizar que, AL MENOS, debemos ser capaces de derivar a la ubicación 2 ^ 15 (Debido a Sign-Extending) en relación con nuestra PC actual, pero la pregunta es la distancia máxima que se puede alcanzar. Y como nos movemos a la izquierda por 2 (multiplica por 4 para alinear las palabras), en realidad tenemos 2 bits adicionales para jugar. Sin embargo, los dos bits siempre son 00 y no se pueden cambiar, por lo que la distancia máxima de rama que puede alcanzar es PC + (2 ^ 17-4).

Para la segunda pregunta, se solicita la distancia máxima desde $ s. Para LW, sabemos que la dirección se calcula como Addr = R [rs] + SE (desplazamiento), también definida en la Hoja Verde MIPS. En este caso, no cambiamos a 2 porque hay operaciones que cargan / almacenan otras cosas además de las palabras, como LH, LB o SH y SB. Pero ahora, si el 'desplazamiento' tiene una firma de 16 bits, automáticamente sabemos que puede tomar el rango de - (2 ^ 15) - > (2 ^ 15) -1 y como será la distancia relativa de $ s, podemos tomar la mayor de las magnitudes. Por lo tanto, la mayor compensación con respecto a $ s será 2 ^ 15.

    
respondido por el InterestingGuy

Lea otras preguntas en las etiquetas