Considere el siguiente programa en lenguaje ensamblador para un procesador hipotético. A, B y C son registros de 8 bits. Los significados de varias instrucciones se muestran como comentarios.
MOV B, # 0 | ; | B ← 0 | |
MOV C, # 8 | ; | C ← 8 | |
Z : | CMP C, # 0 | ; | comparar C con 0 |
JZX | ; | saltar a X si se establece el indicador cero | |
SUB C, # 1 | ; | C ← C – 1 | |
RRC A, # 1 | ; | girar a la derecha A a través del acarreo un bit. De este modo: | |
; | si los valores iniciales de A y la bandera de acarreo son a 7 …a 0 y | ||
; | c 0 respectivamente, sus valores después de la ejecución de este | ||
; | la instrucción será c 0 a 7 …a 1 y a 0 respectivamente. | ||
JC Y | ; | salta a Y si la bandera de acarreo está establecida | |
JMPZ | ; | saltar a Z | |
Y: | AGREGAR B, # 1 | ; | segundo ← segundo + 1 |
JMPZ | ; | saltar a Z | |
X : |
¿Cuál de las siguientes instrucciones, cuando se inserta en la ubicación X, garantizará que el valor del registro A después de la ejecución del programa sea el mismo que su valor inicial?
(A) RRC A, #
(B) NOP; ninguna operación
(C) LRC A, # 1; girar a la izquierda A a través de la bandera de acarreo en un bit
(D) AGREGAR A, # 1
Respuesta: (A)
Explicación: Explicación
Al final de la ejecución del programa para verificar si el valor inicial y final del registro A es A0, necesitamos rotar a la derecha el registro A a través del acarreo un bit porque la instrucción RRC es ( Cada bit binario del acumulador se gira a la derecha una posición. El bit D0 se coloca en la posición de D7, así como en la bandera de acarreo. CY se modifica de acuerdo con el bit D0. Cualquier otro bit no se ve afectado).
Entonces (A) 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