Considere la siguiente secuencia de microoperaciones.
MBR ← PC MAR ← X PC ← Y Memory ← MBR
¿Cuál de las siguientes es una posible operación realizada por esta secuencia?
(A) Obtención de instrucciones
(B) Obtención de operandos
(C) Rama condicional
(D) Inicio del servicio de interrupción
Respuesta: (D)
Explicación: MBR: registro de búfer de memoria (que almacena los datos que se transfieren hacia y desde el almacenamiento de acceso inmediato)
MAR: registro de direcciones de memoria (que contiene la ubicación de memoria de los datos a los que se debe acceder).
PC – Contador de programa (Contiene la dirección de la instrucción que se está ejecutando en el momento actual)
La primera instrucción coloca el valor de PC en MBR
La segunda instrucción coloca una dirección X en MAR.
La tercera instrucción coloca una dirección Y en PC.
La cuarta instrucción coloca el valor de MBR (que era el antiguo valor de la PC) en la memoria.
Ahora se puede ver a partir de las instrucciones 1 y 4, que el flujo de control no fue secuencial y el valor de PC se almacenó en la memoria, por lo que el control puede regresar nuevamente a la dirección donde dejó la ejecución.
Este comportamiento se ve en el caso del manejo de interrupciones. Y aquí X puede ser la dirección de la ubicación en la memoria que contiene la dirección inicial de la rutina del servicio de interrupción.
Y Y puede ser la dirección inicial de la rutina de servicio de interrupción.
En el caso de una bifurcación condicional (como en la opción C), solo la PC se actualiza con la dirección de destino y no es necesario almacenar el valor de la PC anterior en la memoria.
Y en el caso de la obtención de instrucciones y la obtención de operandos (como para las opciones A y B), el valor de PC no se almacena en ningún otro lugar.
De ahí la opción D.
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