Instrucciones para las preguntas 63 a 64:
Considere el siguiente segmento de programa para una CPU hipotética que tiene tres registros de usuario R1, R2 y R3.
Instruction Operation Instruction Size(in words) MOV R1,5000; R1 ¬ Memory[5000] 2 MOV R2, (R1); R2 ¬ Memory[(R1)] 1 ADD R2, R3; R2 ¬ R2 + R3 1 MOV 6000, R2; Memory [6000] ¬ R2 2 HALT Machine halts 1
Considere que la memoria es direccionable por bytes con un tamaño de 32 bits y que el programa se cargó a partir de la ubicación de memoria 1000 (decimal). Si ocurre una interrupción mientras la CPU se ha detenido después de ejecutar la instrucción HALT, la dirección de retorno (en decimal) guardada en la pila será
(A) 1007
(B) 1020
(C) 1024
(D) 1028
Respuesta: (D)
Explicación:El tamaño de las instrucciones se da en palabras. Entonces, la primera instrucción tomará 2 palabras, es decir, 8 bytes (como byte de 32 bits direccionable, el tamaño de la palabra será de 32 bits) y así sucesivamente para la segunda instrucción 4 bytes, para la tercera 4 bytes, la cuarta 8 bytes… la quinta 4 bytes. Como la primera instrucción comienza desde 1000 y el tamaño es de 8 bytes, la dirección de la segunda instrucción será 1008, del mismo modo, la dirección de la tercera instrucción será 1012, la dirección de la cuarta instrucción 1016, la dirección de la quinta instrucción 1024 y la dirección de la instrucción de detención será 1028. Cuando se produce una interrupción al ejecutar la instrucción HALT, la dirección de retorno (en decimal) guardada en la pila será la dirección de la instrucción de detención… por lo que la respuesta es 1028.
Nota: si se produce una interrupción, el valor de PC será la dirección de retorno de esa instrucción después de HALT.
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