¿Debo usar la función 'agregar' en mips para almacenar en una variable o puedo almacenar en una variable con palabra de carga?

0

Los siguientes problemas tienen que ver con la traducción de C a MIPS. Supongamos que las variables f, g, h, i y j están asignadas a los registros $ s0, $ s1, $ s2, $ s3 y $ s4, respectivamente. Supongamos que la dirección base de las matrices A y B son los registros $ s6 y $ s7, respectivamente. Escriba el código MIPS para las siguientes líneas de código C: Estoy intentando imitar el siguiente fragmento de código de un programa C y escribirlo en MIPS.

if(g != h){
      f = A[3];
   } else{
      f = B[4];
   }

A continuación se muestran los MIPS que tengo hasta ahora

bne $s1, $s2, Tru        
lw  $s0, 16($s7)         
j Done                   
Tru: lw  $t0, 12($s6)   
     add $s0, $t0, $zero
Done:

Si no estaba claro, por favor comente a continuación.

    
pregunta Brandon Woodard

1 respuesta

1

Has usado lw $s0, 16($s7) para tu línea f=B[4]; .

Mientras esa línea funcione, ¿por qué estás complicando f=A[3]; con la línea ASM adicional add $s0, $t0, $zero ?
Sólo lw $s0, 12($s6) & Terminar con esto.

    
respondido por el Robherc KV5ROB

Lea otras preguntas en las etiquetas