Inf 2170
Examen intra-trimestriel
25 points
Été 1996
À livres fermés
Durée de 2 heures
5 points No 1)
a) Supposons que le registre d0.l
contient la valeur
hexadécimale FFFFE400
avant l'exécution de chaque
instruction. Donnez le contenu de ce registre en hexadécimale après
leur exécution.
Réponse (hexadécimale) i) and.l #$ff,d0 ii) or.l #$ff,d0 iii) add.l #2,d0 iv) and.w #$ffff,d0 v) swap d0
5 points No 2) Donnez une suite d'instructions pour implanter le
pseudo-code suivant. Toutes les étiquettes x, y, u sont définies dans la
section data
par un ds.l
et référencent des nombres
codés en complément à deux.
a) Si ((x < 0) et (y > u)) ou ((x = 10) et (u > 55)) Alors u <- u + 1 Sinon u <- 99
b) u <- 0; Tantque x > 0 Faire Début x <- x - 2 u <- 2*u Fin
5 points No 3) Écrivez une séquence d'instructions pour afficher un triangle formé de 26 lignes dont chaque ligne débute par la lettre `a' et se termine par la ième lettre où i est le numéro de la ligne. En d'autres mots, l'affichage donnera quelque chose comme suit. Votre séquence a au plus 15 instructions.
a ab abc abcd abcde .... abcdefghijklmnopqrstuvwxyz
5 points No 4) Écrivez une sous-routine qui accepte deux paramètres entiers de 16 bits, notés x et y, et qui retourne la somme des nombres x à y. (Si y<x alors le résultat est 0.) Votre sous-routine a au plus 15 instructions. Bien indiquer l'entrée et la sortie de votre sous-routine.
5 points No 5) Écrivez une sous-routine qui accepte un vecteur de 100 nombres de 16 bits et qui affiche tous les nombres positifs de ce vecteur. Votre sous-routine a au plus 20 instructions. Bien indiquer l'entrée et la sortie de votre sous-routine.