next up previous
Next: Examen intra-trimestrielAutomne 1995 Up: No Title Previous: Examen intra-trimestrielAutomne 1995,

Examen intra-trimestriel, Automne 1995, Groupe 40

Inf 2170, Groupe 40
Examen intra-trimestriel
25 points
Automne 1995
Toute documentation permise
Durée de 3 heures

points No 1) Supposons que le registre a0 pointe un vecteur de 200 entiers de 32 bits. Écrire une séquence d'au plus 15 instructions pour placer dans le registre d0 la plus grande différence V[i]-V[i+1].

points No 2) Donnez la représentation du nombre 322.122 en IEEE 32 bits. Donnez vos calculs ainsi que la perte de précision.

points No 3) Traduire l'expression suivante en assembleur. Le résultat de 32 bits doit se retrouver dans le registre d0. Les symboles x, y, z et u sont des étiquettes référant à des nombres codés en complément à deux sur 32 bits.

            (2 + x) * (y + z - u) * 10

5 points No 4) Traduire le code suivant en assembleur. Le vecteur V est formé d'entiers de 16 bits et l'étiquette x réfère à un entier de 16 bits. Les variables i et j ne sont que des symboles pour exprimer le code.

x <- 0;
Pour i de 1 à 100 Faire
  Début
  Pour j de 1 à 100 Faire
    Début
    Si V[i] > V[j] Alors x <- x + V[j] FinSi
    Fin
  Fin

6 points No 5) Traduire la fonction suivante en assembleur M680xx. Bien indiquer la façon de passer les paramètres et de retourner le résultat. Les entiers ont 32 bits. Donnez aussi un exemple d'appel de la fonction.

Fonction Calcul(x : entier, y : entier, z : entier) : entier;
Var w : entier;
Début
w <- 0;
Tantque w < z Faire
  Début
  Si y < 0 Alors  w <- w + x
           Sinon  w <- w - x
  FinSi
  Si (y > 100) et (y < 1000) Alors w <- w - 1 FinSi
  Fin
Retourner( w )
Fin Calcul;



Mario Latendresse
Wed Jan 15 17:39:58 EST 1997