Assembleur
1Génie informatique et génie logiciel H2015
INF1600: Architecture des
micro-ordinateurs
Assembleur
Introduction à IA-32
Responsable du cours : Giovanni Beltrame
giovanni.beltrame@polymtl.ca
Local: M-4109
Chargée de cours: Luiza Gheorghe
luiza.gheorghe@polymlt.ca
Assembleur
2Génie informatique et génie logiciel H2015
eax:=R[0] : ebx:=R[1] :
ecx:=R[2] : edx:=R[3] :
esi:=R[4] : edi:=R[5] :
ebp:=R[6] : esp:=R[7]
L’UAL permet entre autres les opérations suivantes :
0X : 1Y : 2X + Y : 3X - Y : 4X << Y :
5X >> Y ; 6Y + 4 : 7Y - 4 : …
Exercice architecture
Q
Q
SET
CLR
D
IR
32
+
Q
Q
SET
CLR
D
EIP
mux
A4
Mémoire1
Donnée
Adresse
IR
UAL
Mémoire2
Donnée
Adresse
Registres
[0..7]
(soit eax,
ebx, …)
Q
QSET
CLR
D
T
IR
C
IR
mux
B
IR
IR
IR
D
E
F
0
1
2
0
1
Circuit de
contrôle IR
lecture
écriture
X Y
G
mux
H
0
1
Assembleur
3Génie informatique et génie logiciel H2015
Exercice architecture
Soit l’instruction IA-32 «JMP *16(%eax,%ebx,8) »
a) Donnez le RTN abstrait pour cette instruction
EIP<-Memoire2[16+R[0]+R[1]*8]
jmp *4(%eax) RTN: R[eip] M32[4 + R[eax]] (cours 5)
b) Indiquez comment pourrait être codée en langage machine
une instruction qui fait cette opération.
eax:=R[0] : ebx:=R[1] : ecx:=R[2] : edx:=R[3] : esi:=R[4] :
edi:=R[5] : ebp:=R[6] : esp:=R[7]
IR<23..21> = 0 : IR<20..18> = 1 : IR<17..15> = 0 :
IR<14..13> = 3 IR<12..0> = 16
Assembleur
4Génie informatique et génie logiciel H2015
Soit l’instruction IA-32 «JMP *16(%eax,%ebx,8)»
c) Donnez le RTN concret, en supposant que IR contient bien l’instruction
que vous avez spécifiée en b).
IR<23..21> = 0 : IR<20..18> = 1 : IR<17..15> = 0 : IR<14..13> = 3
IR<12..0> = 16
EIP<-Memoire2[16+R[0]+R[1]*8]
Cycle 1 : T <- R[IR<20..18>] ;
Cycle 2 : T <- T << IR<14..13> ;
Cycle 3 : T <- T+R[IR<23..21>] ;
Cycle 4 : T <- T+IR<12..0> ;
Cycle 5 : EIP <- M2[T] ;
Exercice architecture
lecture
écriture
Assembleur
5Génie informatique et génie logiciel H2015
EIP
EIP + 4 : IR
Mémoire1[EIP] : T
3 ;
T2
T << 2 ;
T
T - Mémoire2[T2] ;
ecx
T >> ebx ;
au départ IR=0x09876543,
après IR
12..0
=3 : IR
14..13
=2 : IR
17..15
=1 : IR
20..18
=3 : IR
23..21
=2
eax:=R[0] : ebx:=R[1] :
ecx:=R[2] : edx:=R[3] :
esi:=R[4] : edi:=R[5] :
ebp:=R[6] : esp:=R[7]
Opérations UAL:
0X : 1Y :
2X + Y : 3X - Y :
4X << Y : 5X >> Y :
6Y + 4 : 7Y - 4 : …
1 / 37 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !