Vous êtes sur la page 1sur 3

IFT249 - Programmation systme

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 numrique 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 mmoire principale l'adresse 100016. Quelle sera la
valeur de l'adresse correspondant celle de A lors de l'xcution du programme si la
longueur des instructions est d'un mot de quatre octets, les mots devant tre aligns.
a) adresse_numrique(A) dans le code objet = 6A4016
b) adresse_numrique(A) dans le module chargeable = 451 + 6A40 16 , mais le
programme doit tre align sur une frontire de mot (4 octets) ==> 452 + 6A4016 =
1C4 16 + 6A40 16 = 6C04 16
c) adresse_numrique(A) dans le processus = 1000 16 + 6C04 16 = 7C04 16

IFT249

Page 1

Hiver 2006

Exercice 2
En utilisant la figure ci-aprs, donnez le contenu du registre r3 aprs l'xcution de chacune
des instructions ou squences d'instructions suivantes, prises individuellement. Le format
gnrique de l'instruction ADD sera:
add

src1,scr2,dst

! dst = scr1 + scr2

Le mode d'adressage s'applique au second oprande.


a) add
b) add
c) add
d) add

r1,r2,r3
r1,r2(r1),r3
r1,@r2,r3
r1,@#adr,r3

! mode registre
! mode index
! mode registre diffr
! mode direct avec adr = 1000 16

e) add
f) add
g) add
add

r1,#10,r3
r1,@adr,r3
r1,(r0)+,r3
r3,(r0)+,r3

! mode immdiat
! mode indirect avec adr = 101416
! mode auto-incrment

h) add
add
i) add
j) add

r3,-(r2),r3
r3,-(r2),r3
r1,@r2(12),r3
r1,@(r0)+,r3

! mode auto-dcrment

add

r3,@(r0)+,r3

! mode index diffr


! mode auto-incrment diffr

Les valeurs ci-aprs sont exprimes en hexadcimal.

IFT249

Page 2

Hiver 2006

r0 1014
r1
4
r2 1008
r3
C
r4

Registres

1000
1004
1008
100C
1010
1014
1018

100C
60
3F3
80
20
1004
1018
Mmoire

Les instructions n'ont pas d'effet entre elles.


Toutes les valeurs sont exprimes en hexadcimal.
a) r3 = 4 + 1008 = 100C
b) r3 = 4 + 80 = 84

[100C] = 80

c) r3 = 4 + 3F3 = 3F7
d) r3 = 4 + 100C = 1010
e) r3 = 4 + A = E
f) r3 = 4 + 60 = 64

r2 = 1008 et [1008] = 3F3


car [1000] = 100C

g) r3 = 4 + 1004 = 1008

car r0 = 1014 et [1014] = 1004,


puis r0 = 1014 + 4 = 1018
car r0 = 1018 et [1018] = 1018,
puis r0 = 1018 + 4 = 101C

r3 = 1008 + 1018 = 2020


h) r3 = C + 60 = 6C
r3 = 6C + 100C = 1078
i) r3 = 4 + 60 = 64
j) r3 = 4 + 60 = 64
r3 = 64 + 1018 = 107C

IFT249

r2+r1 = 100C et

car [1014] = 1004

et

[1004] = 60

car r2 = 1008 - 4 = 1004 et [1004] = 60


car r2 = 1004 - 4 = 1000 et [1000] = 100C
car r2 = 1008, 1008 + C =1014, [1014] = 1004
et [1004] = 60
car r0 = 1014 , [1014] = 1004 et [1004] = 60
puis r0 = 1014 + 4 = 1018
car r0 = 1018, [1018] = 1018 et [1018] = 1018,
puis r0 = 1018 + 4 = 101C

Page 3

Hiver 2006

Vous aimerez peut-être aussi