Upload
youssef
View
216
Download
0
Embed Size (px)
Citation preview
8/19/2019 exercice corrigée les modes d'adresse [ assembleur motorola 6809 ]
1/3
IFT249 Page 1 Hiver 2006
IFT249 - Programmation système
Hiver 2006
CHAPITRE 3
Solution des exercices
Exercice 1
Supposons que l'adresse symbolique translatable A d'un programme soit traduite par
l'assembleur en une adresse numérique dont la valeur est 6A4016. Supposons aussi que le
programme utilise une librairie dont la taille est 451 octets et que l'éditeur de liens place
cette librairie avant le programme dans le module chargeable. Enfin supposons que le
chargeur place le programme en mémoire principale à l'adresse 100016. Quelle sera la
valeur de l'adresse correspondant à celle de A lors de l'éxécution du programme si la
longueur des instructions est d'un mot de quatre octets, les mots devant être alignés.
a) adresse_numérique(A) dans le code objet = 6A4016
b) adresse_numérique(A) dans le module chargeable = 451 + 6A4016 , mais le
programme doit être aligné sur une frontière de mot (4 octets) ==> 452 + 6A4016 =
1C416 + 6A4016 = 6C0416
c) adresse_numérique(A) dans le processus = 100016 + 6C0416 = 7C0416
8/19/2019 exercice corrigée les modes d'adresse [ assembleur motorola 6809 ]
2/3
IFT249 Page 2 Hiver 2006
Exercice 2
En utilisant la figure ci-après, donnez le contenu du registre r3 après l'éxécution de chacune
des instructions ou séquences d'instructions suivantes, prises individuellement. Le format
générique de l'instruction ADD sera:
add src1,scr2,dst ! dst = scr1 + scr2
Le mode d'adressage s'applique au second opérande.
a) add r1,r2,r3 ! mode registre
b) add r1,r2(r1),r3 ! mode indexé
c) add r1,@r2,r3 ! mode registre différé
d) add r1,@#adr ,r3 ! mode direct avec adr = 100016
e) add r1,#10,r3 ! mode immédiat
f) add r1,@adr ,r3 ! mode indirect avec adr = 101416
g) add r1,(r0)+,r3 ! mode auto-incrément
add r3,(r0)+,r3
h) add r3,-(r2),r3 ! mode auto-décrément
add r3,-(r2),r3i) add r1,@r2(12),r3 ! mode indexé différé
j) add r1,@(r0)+,r3 ! mode auto-incrément différé
add r3,@(r0)+,r3
Les valeurs ci-après sont exprimées en hexadécimal.
8/19/2019 exercice corrigée les modes d'adresse [ assembleur motorola 6809 ]
3/3
IFT249 Page 3 Hiver 2006
r0 1014 1000 100Cr1 4 1004 60
r2 1008 1008 3F3
r3 C 100C 80r4 1010 20
1014
1004
1018 1018
Registres Mémoire
Les instructions n'ont pas d'effet entre elles.
Toutes les valeurs sont exprimées en hexadécimal.
a) r3 = 4 + 1008 = 100C
b) r3 = 4 + 80 = 84 r2+r1 = 100C et [100C] = 80
c) r3 = 4 + 3F3 = 3F7 r2 = 1008 et [1008] = 3F3
d) r3 = 4 + 100C = 1010 car [1000] = 100C
e) r3 = 4 + A = Ef) r3 = 4 + 60 = 64 car [1014] = 1004 et [1004] = 60
g) r3 = 4 + 1004 = 1008 car r0 = 1014 et [1014] = 1004,
puis r0 = 1014 + 4 = 1018
r3 = 1008 + 1018 = 2020 car r0 = 1018 et [1018] = 1018,
puis r0 = 1018 + 4 = 101C
h) r3 = C + 60 = 6C car r2 = 1008 - 4 = 1004 et [1004] = 60
r3 = 6C + 100C = 1078 car r2 = 1004 - 4 = 1000 et [1000] = 100C
i) r3 = 4 + 60 = 64 car r2 = 1008, 1008 + C =1014, [1014] = 1004
et [1004] = 60
j) r3 = 4 + 60 = 64 car r0 = 1014 , [1014] = 1004 et [1004] = 60
puis r0 = 1014 + 4 = 1018
r3 = 64 + 1018 = 107C car r0 = 1018, [1018] = 1018 et [1018] = 1018,
puis r0 = 1018 + 4 = 101C