Examen Final
Inf 2170, Groupe 11
Hiver 1996, 25 points
Durée: 1h30
À livres fermés
6 pts No 1) Répondre à chacune des questions suivantes.
s a) Est-ce que la représentation en point-flottant IEEE 32 bits permet une plus grande précision qu'une représentation en point-fixe [14,18]? Justifiez votre réponse.
s b) Donnez une raison majeure justifiant l'emploi de la représentation en point-flottant plutôt que la représentation en point-fixe par les processeurs numériques.
s c) Est-ce qu'on peut espérer obtenir dans le futur des processeurs numériques capables de calculer sans perte de précision à l'aide de la représentation IEEE-754 ? (Utilisant un nombre approprié de bits, pas nécessairement la forme 32 bits.) Justifiez votre réponse.
6pts No 2) Soit un ensemble représenté par une
chaîne de 32 bits stockée dans le registre d0.l
(Représentation
telle que vue en classe où l'univers ensembliste est les entiers de 0
à 31). Donnez une séquence d'au plus 9 instructions pour faire la somme
des éléments appartenant à cet ensemble plaçant le résultat
dans le registre d3.w
.
Solution
move.w #31,d1 move.w #0,d3 boucle: lsl.l #1,d0 bcc passe add.w d1,d3 passe: dbra d1,boucle
6pts No 3) Voici une fonction récursive en pseudocode. Implantez celle-ci sous la forme d'une sous-routine en assembleur en indiquant clairement en commentaire l'entrée et la sortie de votre sous-routine.
Fonction f(a, b: Cardinal): Cardinal; Début Si (a-b) < 100 Alors retourner(1) Sinon retourner( f(b, 2*a) + f(a, 2*b) ); Fin f;
7pts No 4) Le registre a0
pointe une matrice de 100
lignes et 40 colonnes de nombre entiers de 32 bits. Écrire une
fonction d'au plus 18 instructions qui calcule la valeur
et place le résultat dans le registre d0.l
.
Solution
; Entrée: a0 pointe une matrice de 100 lignes et 40 colonnes ; Sortie: d0.l contient la valeur Somme de (i+j)*M[i,j] ; movem.l d1-d4/a0,-(sp) move.l #0,d0 ; somme à zéro au départ. move.l #99,d1 move.l #0,d4 ; (i+j) <- 0 ligne: move.l #39,d2 col: move.l d4,d3 muls.l (a0)+,d3 add.l d3,d0 add.l #1,d4 dbra d2,col sub.l #39,d4 dbra d1,ligne movem.l (a0)+,d1-d4/a0 rts