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

Enunciado: Problema 1 · Fonaments d'Informàtica UAB 2018

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 ›

Más ejercicios de Programació en llenguatge màquina i traducció des de C