Sistemi di Calcolo

Corso di Laurea in Ingegneria Informatica e Automatica

Home | Avvisi | Diario Lezioni | Esercitazioni | Esami | Materiale Didattico | Valutazioni Studenti | Lezioni di Camil Demetrescu |

Palestra P2: preparazione per l’esercitazione T2

Esercizio 1: costrutto while: azzeramento di un array

Si traduca in Assembly IA32 la seguente funzione C, scrivendo un modulo clear.s:

void clear(char* v, unsigned n) { // v è un array, n è la lunghezza dell'array
    unsigned i=0;
    while (i<n) v[i++]=0;

Si suggerisce di riscrivere dapprima il programma in una forma C equivalente in cui il while viene rimpiazzato da un if (…) goto.

Esercizio 2: costrutto while: azzeramento di un array - variante

Si traduca in Assembly IA32 la seguente funzione C, scrivendo un modulo clear2.s:

void clear2(char* v, unsigned n) { // v è un array, n è la lunghezza dell'array
    char* p=v+n;
    while (v<p) *v++=0;
}

Si suggerisce di riscrivere dapprima il programma in una forma C equivalente in cui il while viene rimpiazzato da un if (…) goto.

Codice e soluzioni