La bifurcación retrasada puede ayudar en el manejo de los riesgos de control.
El siguiente código debe ejecutarse en un
procesador canalizado con una ranura de demora de bifurcación:
I1: ADD R2R7+R8 I2 : SUB R4 R5-R6 I3 : ADD R1 R2+R3 I4 : STORE Memory [R4][R1] BRANCH to Label if R1== 0
¿Cuál de las instrucciones I1, I2, I3 o I4 puede ocupar legítimamente la ranura de retardo
sin ninguna otra modificación del programa?
(A) I1
(B) I2
(C) I3
(D) I4
Respuesta: (D)
Explicación: No puede ser l1 ni l3 , porque directa o indirectamente están participando en la decisión de sucursal.
Ahora podemos tener tanto l2 como l4 después de la declaración de decisión de bifurcación y el orden de I2 e I4 es importante porque en I2 obtenemos el valor final en el registro R4 y en la instrucción guardamos el contenido de R1 en la memoria cuya dirección se almacena en el Registrarse.
Entonces, si hacemos que I2 sea la instrucción después de la bifurcación, entonces el valor en el primer ciclo en sí mismo, el valor almacenado en la ubicación de la memoria cuya dirección está almacenada en R4, sería incorrecto porque en realidad debería haber sido actualizado primero por R5-R6. Entonces I4 es correcto.
Entonces (D) es la opción correcta.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA