next up previous
Next: Examen intra-trimestrielÉté 1995, Up: No Title Previous: Examen intra-trimestrielAutomne 1995,

Examen intra-trimestriel, Automne 1995

Inf 2170
Examen intra-trimestriel
25 points
Automne 1995
Toute documentation permise
Durée de 2 heures

5 points No 1) a) Donnez deux nombres de 16 bits, en hexadécimal, tels que leur somme positionne le bit V à 0 et le bit C à 1. b) De même, donnez deux nombres tels que leur somme positionne le bit V à 1 et le bit C à 0.

points No 2) Existe-t-il des nombres tels que leur représentation IEEE 32 bits donne une perte de précision de plus de 1000 ? Si oui, donnez un exemple et expliquez pourquoi il y a perte de précision de plus de 1000. Si non, justifiez votre réponse.

points No 3) Soient les définitions suivantes.

          data
somme:    dc.l   12
car:      ds.b   1
carre:    dc.w   10
          end

a) Donnez une description, octet par octet, du contenu de la mémoire centrale pour la section data à partir de l'étiquette somme.

b) Donnez le contenu du registre d0.l, en décimal, après l'exécution de chacune des instructions suivantes: (si le contenu est inconnu indiquez-le par le symbole --)

       move.l   #1,d0
       move.b   #'a',d0
       move.b   car,d0
       move.w   carre,d0

5 points No 4) Traduire le pseudo-code suivant en assembleur M680xx. Le vecteur V est formé d'entiers de 32 bits, x et y sont des étiquettes.

    Pour i de 1 à 1000 Faire
      Début
      Si V[i] < x Alors V[i] <- 1
      Si V[i+1] > y Alors V[i+1] <- 2
      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 16 bits.

Fonction f(x: cardinal, y:integer): integer;
Var u, b: integer;
Début
Si x > 10 Alors Retourner(0)
Sinon 
  Début
  u <- 1; b <- x;
  Tantque b > 10 Faire Début u <- u * y;  b <- b - u; Fin
  Fin
Finsi
Retourner( u )
Fin f;



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