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

Examen intra-trimestriel, Été 1995, Groupe 50

Inf 2170 Groupe 50
Examen intra-trimestriel
25 points
Été 1995
Toute documentation permise
Durée de 2 heures

5 points No 1) L'instruction move.w x,d0 référence une étiquette x qui est définie dans la partie data. Toutefois l'adresse réelle de x est inconnue à l'assemblage. Expliquez comment l'assembleur résout ce problème. points No 2) On peut multiplier par en utilisant un décalage à gauche de n bits. Écrire des instructions assembleur pour multiplier par la valeur 7 le registre d0.w en utilisant seulement asr add et move? Suggestion: tout nombre se décompose en binaire, donc en additions de puissances de deux.

points No 3) Implantez l'instruction suivante en assembleur. (Les variables sont des étiquettes représentant des nombres de 16 bits codé en complément à deux).

Si (x < 0) et (u + 1 > z) et (w > z) alors
   x := x + 1
sinon
   y := y -1
FinSi

5 points No 4) Donnez les contenus des registres a1, d1 et d2 après l'exécution de chaque instruction suivante. Si le contenu ne peut être spécifié, indiquez-le par le signe inconnu, si le contenu ne peut-être spécifié que symboliquement, indiquez-le aussi. (L'exécution d'une instruction dépend des instructions la précédant.)

          move.w  #2,d1
          lea     x,a1
          move.w  (a1)+,d2
          add.w   d2,d1
          ext.l   d1
          add.w   d1,d2
          move.w  (a1),d1
          move.w  (4,a1),d2
          data
      x   dc.w    6
      y   dc.w    10
      w   dc.w    100

6 points No 5) Donnez une séquence d'au plus 20 instructions assembleur pour déterminer si le vecteur V DS.w 200 contient plus d'entiers positifs que d'entiers négatifs. Votre séquence branche à plus_positif s'il y a plus de positif sinon à pas_plus_positif.



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