next up previous
Next: Examen finalGroupe 50, Up: No Title Previous: Examen finalGroupe 40,

Examen final, Groupe 10, Automne 1995, version 2

Examen Final
Inf 2170, Groupe 10
Automne 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 la somme des bits impairs (1,3,5,...,31) du registre D1. Le tout doit prendre moins de 10 instructions.

6 pts No 2) Écrire une sous-routine qui convertit toutes les lettres, d'une chaîne de caractères se terminant par un octet à zéro, de minuscule à majuscule sans affecter ni les autres caractères ni les majuscules déjà présentes dans cette chaîne. Bien commenter l'entrée et la sortie de votre sous-routine. Celle-ci doit avoir au maximum 20 instructions.

6 pts No 3) Donnez un exemple d'un nombre réel compris entre 14.5 et 14.7 qui ne peut-être stocké sans perte de précision sous la forme IEEE 32 bits. Montrez bien vos calculs.

7 pts No 4) Écrire une sous-routine récursive, en assembleur M68xxx, qui retourne le nombre de paires de parenthèses, d'une expression arithmétique, qui ne sont pas imbriquées dans d'autres paires de parenthèses. Par exemple, dans l'expression suivante

(2 + 4*(8+9) ) * (1+2) * ( (2)+(8+(7)) )

il y a trois paires de parenthèses qui ne sont pas imbriquées dans d'autres paires. Votre solution doit être récursive et employée au maximum 20 instructions. L'entrée de votre sous-routine est le registre A0 qui pointe l'expression arithmétique (qui est une chaîne de caractères se terminant par un octet à zéro) et la sortie est le registre D0 qui contient le nombre voulu et le registre A0 qui pointe sur l'octet à zéro. (L'expression est bien formée, donc il ne manque pas de parenthèses, tout est bien balancé, etc.) Remarque: il n'est pas nécessaire ni utile de vérifier les opérateurs, les espaces ou les nombres. Il suffit de s'occuper des caractères `()' et de l'octet à zéro.


next up previous
Next: Examen finalGroupe 50, Up: No Title Previous: Examen finalGroupe 40,

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