Architecture des ordinateurs TD6

publicité
L1 MIASHS - UFR Mathématiques et Informatique
2014 - 2015
Architecture des ordinateurs
TD6 - Processeur HACK et assembleur
Le processeur Hack possède :
•
une zone mémoire ROM dans laquelle est chargée le programme à exécuter
•
une zone mémoire RAM pour stocker et lire des données
•
une ALU qui décode et exécute les instructions de la ROM
•
3 registres principaux :
PC qui comporte l’adresse de la prochaine instruction à exécuter dans la ROM (compteur
ordinal)
A destiné à contenir une adresse à laquelle accéder dans la RAM
D pour stocker les résultats temporaires des calculs de l’ALU.
On considère deux types d’instruction :
• les A-instructions (adresses),
• les C-instructions (commandes).
1) Les A-instructions
Notation @value
Exemple @17
Permet de charger la valeur 17 dans le registre A (registre d’adresse)
1
L1 MIASHS - UFR Mathématiques et Informatique
2014 - 2015
2) Les C-instructions
Les C-instructions agissent sur les registres D et A et la mémoire M pointée par A.
Notation dest = comp ; jump
Exemples
D = D+1 : Ajoute 1 au registre D
M = D : Copie la valeur de D dans la mémoire à l’adresse contenue en A
D;JGT : Copie la valeur de A dans PC si D est supérieur à 0
D=D+1;JGT : Met D+1 dans D et copie A dans PC si D+1>0
dest peut valoir : M, D, A, MD, AM, AD, AMD ou être vide.
comp peut valoir : 0, 1, -1, A, D, M, !A, !D, !M, -A, -D, -M, A+1, D+1, M+1, A-1, D-1,
M-1, D+A, D-A, A-D, D+M, D-M, M-D, D|A, D|M, D&A, D&M-D.
jump peut valoir : JGT, JEQ, JGE, JLT, JNE, JLE, JMP ou être vide.
1) Les A-instructions en binaire
Format :
0
a1
a2
a3
a4
a5
a6
a7
a8 a9
value
a10
a11
a12
a13
a14
a15
2) Les C-instructions en binaire
Format :
c1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
c2
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
c3
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
a
c4
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
c5
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
c6
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
d1
0
0
0
0
1
1
1
1
c1
c2
c3 c4
comp
Avec a = 0
0
1
-1
D
A
!D
!A
-D
-A
D+1
A+1
D-1
A-1
D+A
D-A
A-D
D&A
D|A
d2
0
0
1
1
0
0
1
1
d3
0
1
0
1
0
1
0
1
c5
c6
d1
d2 d3
dest
j1
j2 j3
jump
Avec a = 1
M
D
MD
A
AM
AD
AMD
j1
0
0
0
0
1
1
1
1
M
!M
-M
M+1
M-1
D+M
D-M
M-D
D&M
D|M
j2
0
0
1
1
0
0
1
1
j3
0
1
0
1
0
1
0
1
JGT
JEQ
JGE
JLT
JNE
JLE
JMP
PC = A si ...
Jamais
... comp > 0
... comp = 0
... comp ≥ 0
... comp < 0
... comp 6= 0
... comp ≤ 0
Toujours
Le résultat de comp est stocké dans...
nulle part
la mémoire (en M[A])
le registre D
la mémoire ET le registre D
le registre A
le registre A PUIS la mémoire
les registres A ET D
les registres A et D PUIS la mémoire
2
Téléchargement