Problema 1 · Fonaments d'Informàtica UAB 2018
Tema: Programació en llenguatge màquina i traducció des de C · Del examen Examen Final - Gener 2018 (2018)
Enunciado
Problema 1 (2 punts). Traducció d'assemblador a C
Donat el següent codi en llenguatge màquina/assemblador, escriviu el fragment equivalent en C utilitzant variables adients assignades a les adreces 1000, 1001 i 1002:
mov R0, 1000; R0 ← variable X (adreça 1000)
mov R1, 1001; R1 ← variable Y (adreça 1001)
mov R2, 1002; R2 ← variable Z (adreça 1002)
cmp R0, R1
jnn label1; Salta a label1 si R0 >= R1
label0: cmp R0, R1
joz label2; Salta a label2 si R0 == R1
add R2, R0; Z = Z + X
inc R0; X++
jmp label0
label1: mul R2, R0; Z = Z * X
label2: add R0, R1; X = X + Y
mov 1001, R1
mov 1002, R2

Solución
Según los criterios oficiales de corrección
Traducció del codi d'assemblador a C:
Solución: ```c int X; // adreça 1000 int Y; // adreça 1001 int Z; // adreça 1002 if (X < Y) { while (X != Y) { Z = Z + X; X++; } } else { Z = Z * X; } X = X + Y; ```
La explicación paso a paso, hecha con IA, es Premium. Premium
Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.
‹ Problema 2 · 2018 · Problema 2 · 2018 ›