PUERTA | PUERTA CS 1999 | Pregunta 65

[Pregunta de 5 puntos]
Considere el siguiente fragmento de programa en lenguaje ensamblador de cierto procesador hipotético. El procesador tiene tres registros de propósito general R1, R2 y R3. Los significados de las instrucciones se muestran mediante comentarios (que comienzan con ; ) después de las instrucciones.

X:  CMP R1, 0   ;Compare R1 and 0, set flags appropriately in status register
    JZ  Z       ;Jump if zero to target Z
    MOV R2, R1  ;Copy contents of R1 to R2
    SHR R1      ;Shift right R1 by 1 bit
    SHL R1      ;Shift left R1 by 1 bit
    CMP R2, R1  ;Compare R2 and R1 and set flag in status register
    JZ  Y       ;Jump if zero to target Y
    INC R3      ;Increment R3 by 1;
Y:  SHR R1      ;Shift right R1 by 1 bit
    JMP X       ;Jump to target X
Z:...

una. Inicialmente R1, R2 y R3 contienen el valor 5, 0 y 0 respectivamente. ¿Cuáles son los valores finales de R1 y R3 cuando el control llega a Z?
b. En general, si R1, R2 y R3 contienen inicialmente los valores n, 0 y 0 respectivamente. ¿Cuál es el valor final de R3 cuando el control llega a Z?

Respuesta:
Explicación:
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 *