Problema 2 · 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 2 (2 punts). Traducció de C a assemblador

Traduïu a llenguatge màquina/assemblador el següent fragment de codi en C. Podeu assignar com a adreces base: V→1000V \rightarrow 1000, A→2000A \rightarrow 2000, B→3000B \rightarrow 3000 i utilitzar el registre SI com a índex i.

#define N 1000

int i, V[N], A[N], B[N];

...

for (i = 0; i < N; i++) {

if (A[i] <= B[i])

V[i] = A[i];

else

V[i] = B[i];

}

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

Solución

Según los criterios oficiales de corrección

Traduïu a llenguatge màquina/assemblador el següent fragment de codi en C. Podeu assignar com a adreces base: V -> 1000, A -> 2000, B -> 3000 i utilitzar el registre SI com a índex i.

Solución: ```c mov SI, #0 for: cmp SI, #1000 jnn fifor mov AX, 2000[SI] ; Carrega A[i] mov BX, 3000[SI] ; Carrega B[i] cmp AX, BX jg else_part ; Si AX > BX, salt a l'alternativa mov 1000[SI], AX ; V[i] = A[i] jmp fiif else_part: mov 1000[SI], BX ; V[i] = B[i] fiif: inc SI jmp for fifor: ... ```

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 1 · 2018 · Ejercicio Teoria 2 - Programació en assemblador · 2017 ›

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