Examen intra-trimestriel
Inf2170, Groupe 20
Automne 1996
À livres fermés
25 points
Répondre sur le questionnaire
Durée: 3 heures
2 points No 1) Quel est le contenu de d0.l
à la fin
de l'exécution du bout de code suivant ? (c'est-à-dire à l'étiquette
y
). Justifiez votre réponse.
x: dbra d0,x y:
2 points No 2) Donnez deux instructions pour copier le mot
de 16 bits à l'adresse contenu dans le registre a4
vers le mot qui est à l'adresse contenu à l'étiquette adr
.
adr ds.l 1 ; ici est stockée l'adresse du mot à modifier
2 points No 3) Expliquez comment fonctionne l'instruction
bne x
.
2 points No 4) Donnez une séquence d'instructions pour évaluer
l'expression x*y+z
où x
et y
sont des mots de 16
bits et y
est un octet. Le résultat doit être dans le registre
d0.l
. (Le code ne détecte pas de débordement.)
2 points No 5) Que fait le code suivant ? (V
est une
étiquette dans la partie data
.)
lea V,a0 iter: and.w #$ffff,(a0)+ bne iter
4 points No 6) Supposons le registre d0.l
contenant la
valeur hexadécimale
00ff00ff00
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 #$ffffffff,d0 ii) eor.w #$ffff,d0 iii) add.l #2,d0 iv) and.l #$ffff,d0 v) add.w #$ff00,d0
4 points No 7) Donnez le contenu de la mémoire centrale, octet par octet et en décimale, à partir de l'étiquette x, après l'exécution de la séquence d'instructions suivante. Votre réponse a 10 octets.
move.l #1,x move.w #259,y add.w #1,x move.b z,y data x ds.l 1 y ds.w 1 z dc.w 25
7 points No 8) Écrivez une sous-routine qui accepte un vecteur de 200 nombres de 32 bits et qui retourne le nombre de nombres positifs apparaissant dans ce vecteur. Votre sous-routine a au plus 15 instructions. Indiquez le protocole d'appel (l'entrée/sortie).