¿Qué par de instrucciones add / addi implementa f = b + c + 9?
Para la siguiente declaración en C f = b + c + 9
, ¿cuál es el código de ensamblador MIPS correspondiente? Suponga que las variables a, b y f están dadas y se pueden considerar enteros de 32 bits como se declaran en un programa en C. Utilice un número mínimo de instrucciones de ensamblador MIPS (sin instrucciones de resta).
- A.
add f, a, b
;addi f, f, -9
- B.
add f, b, c
;addi f, f, 9
- C.
addi f, a, b
;addi f, f, -9
- D.
addi F, b, c
;addi, f, f, 9
Estoy buscando la respuesta correcta. Intenté resolverlo pero no puedo. Creo que la respuesta es B.
davy.ai
La respuesta correcta es B.
Explicación:
El código ensamblador MIPS que corresponde a la instrucción de C
f = b + c + 9
debe sumar los valores deb
yc
y luego sumarle9
al resultado, almacenándolo enf
.La instrucción MIPS
add
puede sumar dos registros y almacenar el resultado en un tercer registro.La instrucción MIPS
addi
puede sumar un registro y un valor inmediato, y almacenar el resultado en un registro.Utilizando estas instrucciones, el código ensamblador MIPS correcto para la instrucción C
f = b + c + 9
sería:Este código primero suma los valores de
b
yc
y almacena el resultado enf
, y luego suma9
al valor ya almacenado enf
, lo que resulta en el valor final def
siendob + c + 9
.