next up previous
Next: À propos de Up: No Title Previous: Examen finalGroupe 10,

Examen final, Groupe 50, Été 1995

Examen Final
Inf 2170, Groupe 50
Été 1995
25 points
Durée: 2h
Toutes documentations permises

6 pts No 1) Donnez une séquence d'instructions du M68xxx pour placer dans le registre D0, du bit 0 au bit 31 dans cet ordre, les bits 14 à 21 du registre D1, les bits 0 à 10 du registre D2, les bits 21 à 31 du registre D3 et les bits 3 et 4 du registre D4. Votre séquence doit avoir au maximum 20 instructions.

6 pts No 2) Écrire une sous-routine pour multiplier par 4 un nombre réel IEEE 32 bits, sans utiliser aucune instruction à point-flottant. L'entrée et la sortie de votre sous-routine sont le registre D0. Votre sous-routine doit avoir au plus 15 instructions. (On ne se préoccupe pas de débordement et porter attention au zéro.)

6 pts No 3)

3 pts a) L'antémémoire présentée en classe a 32Ko, formée de huit plans identiques, dont chaque plan est de 4Ko. Expliquez pourquoi une antémémoire d'un seul plan à 32Ko, formée de 64*8 lignes de 64 octets, est moins bonne que cette antémémoire. (On suppose que le reste du mécanisme est modifié pour soutenir ces 256 lignes, entre autre, le mécanisme de décodage de l'adresse.)

pts b) Réordonnez les instructions Alpha suivantes pour éliminer toutes pertes de cycles machines.

      ldq    r0,0(r29)
      stq    r0,16(r29)
      ldq    r1,8(r29)
      subq   r2,r1,r0
      addq   r3,r4,r3
      lda    r7,16(r29)
      lda    r8,24(r29)
      addq   r6,r0,r8
      addq   r9,r0,r6

7 pts No 4) Écrire une sous-routine récursive pour traverser une expression arithmétique et compter le nombre total d'opérateurs + qui sont aux niveaux les plus profonds. Un opérateur + est au niveau le plus profond s'il appartient à une sous-expression qui n'a aucun terme contenant des parenthèses. Par exemple, pour
5+(6 + 9*7 + 5)*(7 + (8 +9) + 5) + (6 * ( 9 + (5))) il y a 3 opérateurs + aux niveaux les plus profonds. L'expression est une chaîne de caractères se terminant par le caractère <null>, l'adresse de celle-ci est passée par le registre A0 et le résultat de votre comptage est retournée dans le registre D0 (le registre A0 est aussi modifié à la sortie, il devrait pointer sur le caractère <null> lors du dernier retour). On suppose l'expression bien formée. Votre sous-routine a au plus 25 instructions. Suggestions: il n'est pas nécessaire de considérer les nombres, les espaces, etc., seulement les caractères +, (, ) et <null> sont à considérer.


next up previous
Next: À propos de Up: No Title Previous: Examen finalGroupe 10,

Mario Latendresse
Wed Jan 15 18:27:16 EST 1997