PUERTA | PUERTA-CS-2003 | Pregunta 48

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 :

(A) el número de 0 bits en A0
(B) el número de 1 bits en A0
(C) A0
(D) 8

Respuesta: (B)
Explicación: Respuesta: (B)

Explicación:

Explicación: Aquí el valor de B se incrementa en 1 solo si la bandera de acarreo es 1 y el acarreo se llena siempre usando la rotación a la derecha. Entonces B almacenará el no. de 1s en A0. La instrucción RRC es (  Cada bit binario del acumulador gira una posición hacia la derecha. 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=A0, y después de la ejecución RRC A,#1, se establece la bandera de acarreo, va a Y, que es B=B+1, que se convierte en B=0+1=1 Entonces (B) 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *