A+2 - Index of

publicité
Exécution d’une instruction
3
Phases sont nécessaires :
 Lecture instruction (LI) : recherche le code opération de
la prochaine instruction du programme (phase 1)
 Décodage instruction (DI) :
» Décomposition en micro opérations et recherche des opérandes
constante (phase 2)
» Recherche opérande mémoire (phase 2’)
 Exécution instruction (EX) :
» Exécution dans l’UAL (phase 3)
» Écriture du résultat en mémoire (phase 3’)
» Modification CP lors du branchement (phase 3’’)
Signal d’horloge
Phase 1 - Lecture instruction
Accumulateur
Bus contrôle Instructions
UAL
1
Bus données
Indicateur
Compteur Programme
Bus adresses
Registre Instructions
Unité Commande
3
Code op
MEMOIRE
Données
2
Phase 2 - Décodage - Recherche
opérande
Accumulateur
Bus contrôle
UAL
1
Instructions
Code op
Bus données Opérandes
Indicateur
Compteur Programme
Registre Instructions
Unité Commande
MEMOIRE
Données
Bus adresses
3
2
Phase 2’ - Décodage - Recherche
Donnée
Accumulateur
Bus contrôle
UAL
3
Bus données
MEMOIRE
Indicateur
Compteur Programme
Registre Instructions
Unité Commande
Instructions
Code op
Données
Bus adresses
1
Opérandes
2
Phase 3 - Exécution
3
Accumulateur
Bus contrôle
UAL
2
Bus données
MEMOIRE
Indicateur
Compteur Programme
Registre Instructions
Unité Commande
Instructions
Code op
Données
Bus adresses
1
Opérandes
Phase 3’ - Exécution - Écriture
2
Accumulateur
Bus contrôle
UAL
Bus données
MEMOIRE
Indicateur
Compteur Programme
Registre Instructions
Unité Commande
Instructions
Code op
Données
Bus adresses
1
Opérandes
3
Exemple de programme
A ← Contenu de la mémoire | code : 45 - Adresse mémoire
Contenu de la mémoire ← A | code : 46 - Adresse mémoire
A ← A + Valeur Constante | code : 61 - Valeur Constante
Exemple : [200] ← [200] + 2
o La mémoire d'instruction contiendra donc :
o 100
45
A ← Contenu de la mémoire 200
o 101
200
o 102
61
A ← A+2
o 103
02
o 104
46
Contenu de la mémoire 200 ← A
o 105
200
Instruction 1 : LI Phase 1
3
Accumulateur
Lecture
4
UAL
Indicateur
Donnée 45
1
CP 100
RI ?
Unité Commande
Adresse 100
Contenu Adresse
45
100
200
101
61
102
2
103
46
104
2
200
105
20
200
Instruction 1 : LI Phase 2
Accumulateur
UAL
7
5
Indicateur
6
CP 101
RI 45
Unité Commande
Contenu Adresse
Donnée Prête 45
100
200
101
61
102
103
Donnée 45 2
46
104
200
105
Adresse 100
20
200
Instruction 1 : DI Phase 1
Accumulateur
Lecture
10
UAL
11
données 200
Indicateur
Contenu
45
200
61
2
46
200
Adresse
100
101
102
103
104
105
9
Adresse 101
CP 101
RI 200
Unité Commande
8
20
200
Instruction 1 : DI Phase 2
Accumulateur
Lecture
13
UAL
données 20
Indicateur
Contenu
45
200
61
2
46
200
Adresse
100
101
102
103
104
105
12
CP 102
RI 20
Unité Commande
Adresse 200
20
200
Instruction 1 : EX
16
Accu 20
15
UAL
données
Indicateur
14
CP 102
RI 20
Unité Commande
Adresse
Contenu Adresse
45
100
200
101
61
102
2
103
46
104
200
105
20
200
Instruction 2 : LI
Accu 20
Lecture
UAL
3
2
Indicateur
CP 102
RI 61
Unité Commande
Données 61
Adresse 102
1
Contenu
45
200
61
2
46
200
20
Adresse
100
101
102
103
104
105
200
Instruction 2 : DI
Accu 20
Lecture
6
UAL
7
données 2
Indicateur
Adresse 103
CP 103
RI 2
Unité Commande
5
4
Contenu
45
200
61
2
46
200
20
Adresse
100
101
102
103
104
105
200
Instruction 2 : EX
Accu 22
10
9
UAL
8
Indicateur
CP 104
RI 2
Unité Commande
Contenu Adresse
45
100
200
101
61
102
2
103
46
104
200
105
20
200
Instruction 3 : LI
Accu 22
Lecture
UAL
3
2
Données 46
Indicateur
CP 104
RI 46
Unité Commande
Adresse 104
1
Contenu
45
200
61
2
46
200
20
Adresse
100
101
102
103
104
105
200
Instruction 3 : DI
Accu 22
Lecture
6
UAL
7
données 200
Indicateur
Adresse 105
CP 105
RI 200
Unité Commande
5
4
Contenu Adresse
45
100
200
101
61
102
2
103
46
104
200
105
20
200
Instruction 3 : EX
Accu 22
Ecriture
9
UAL
données 22
Indicateur
CP 106
RI 200
Unité Commande
Adresse 200
8
Contenu Adresse
45
100
200
101
61
102
2
103
46
104
200
105
22
200
Représentation d’une instruction
Exemple : ADDI.B
#$55, D2
A partir du jeu d’instruction, on peut lire :
Opération :
Syntaxe :
Attributs :
Codes Condition :
format Instruction :
Immediate Data+DestinationDestination
ADDI #<data>,<EA>
Size = (Byte, Word, Long)
Operation set all flags in CCR.
15
14
13
12
11
10
9
8
0
0
0
0
0
1
1
0
7
6
size
Word data (16 bits)
5
4
3
2
Effective address
mode
Byte data (8 bits)
Long data (32 bits)
1
register
0
Représentation d’une instruction
Soit :
 code instruction sur 16 bits :
0000 0110 0000 0010  $0602
 La valeur :
0000 0000 0101 0101  $0055
 Le code de l’instruction complet :
$06 $02 $00 $55  sur 4 octets
Bien que l’opération se fasse sur un octet, la donnée
est codée en mémoire sur 1 mot (16 bits).
Modes d’adressages du 68000








Adressage immédiat
Adressage direct et absolu
Adressage indirect par registre
Adressage indirect par registre avec auto
incrémentation
Adressage indirect par mémoire
Adressage relatif par registre
Adressage indexé
Adressage indexé avec déplacement
Modes d’adressages du 68000
Le mode d'adressage est la façon dont le
processeur va chercher ou placer un opérande.
 Il y a un mode d'adressage pour chaque
opérande.
 Les modes d'adressage possibles sont spécifiques à
chaque opérande de chaque instruction.
 On distingue deux types d'opérande

 source
le microprocesseur va chercher l'opérande
 destination
le microprocesseur va placer l'opérande éventuellement après avoir
été le chercher.
Adressage : octets et mots
L'unité d'adressage sur le 68000 est l'octet ; c'est
la plus petite quantité d'information que l'on peut
lire ou écrire dans la mémoire.
 Les octets sont placés en mémoire les uns après les
autres selon des adresses croissantes.
 Un mot correspond à deux octets successifs ;
l'adresse du mot est celle du premier octet qui
correspond aux bits de poids forts du mot (bits 8 à
15).
 Un mot est toujours à une adresse paire 2p ; les
octets qui le constituent sont aux adresses 2p pour
les bits de poids 8 à 15, et 2p+1 pour les bits de
poids 0 à 7.

Adressage : long mot
Un long mot correspond à quatre octets successifs ;
l'adresse du long mot est celle du premier octet qui
correspond aux bits de poids 24 à 31 du long mot ;
c'est également l'adresse du mot qui contient les
bits de poids 16 à 31 du même long mot.
 Un long mot est toujours à une adresse paire (odd)
2p; les octets qui le constituent sont aux adresses
2p pour les bits de poids 24 à 31, 2p+1 pour les
poids 16 à 23, 2p+2 pour les poids 8 à 15 et 2p+3
pour les poids 0 à 7
 Toutes les adresses sont exprimées sur 32 bits
même s'il n'y a que 24 bits d'adresse sur le 68000.

Adressage : exemples
Modes d’adressages du 68000
Adressage Immédiat
L'opérande est placé dans un ou deux mots
complémentaires
 Ce mode d'adressage n'est utilisable qu'en lecture et
la référence mémoire est dans l'espace programme
 Selon sa taille l'opérande est :

 dans l'octet de poids faible du mot complémentaire si c'est
un octet.
 dans le mot complémentaire si c'est un mot.
 dans deux mots complémentaires si c'est un long mot (le
mot de poids fort dans le premier mot complémentaire).
Adressage Immédiat
31
Code op.
15
16
00
Code op.
8
Octet0
Mot
Code op.
47
32
7
Long Mot
31
0
Adressage Immédiat
Adressage Direct avec Registre de
Donnée
L'opérande est dans un des 8 registres de donnée.
 La taille de l'opérande peut être un octet (.B), un
mot (.W) ou un long mot (.L).
 L'opérande peut être source ou destination.
 Ce mode ne peut pas être utilisé pour spécifier une
adresse de destination dans la mémoire.
 Syntaxe : AE = Dn

AE
Effective
:
Adresse
Adressage Direct avec Registre de
Donnée
Adressage Direct avec Registre
d’Adresse
L'opérande est dans un des 8 registres d'adresse.
 La taille de l'opérande peut être un mot (.W) ou un
long mot (.L) ; dans le cas d'un mot il y a extension
du bit de signe.
 L'opérande peut être source ou destination.
 Ce mode ne peut pas être utilisé pour spécifier une
adresse de destination dans la mémoire.
 AE = An

Adressage Direct avec Registre
d’Adresse
Adressage Direct et Absolu
Adresse de la donnée
Code Opération Valeur
Valeur
basse
haute
Mémoire
Cellule adressée
Opérande
Adressage Absolu Court



L'opérande est en mémoire et son adresse est contenue
dans « le » mot complémentaire de l’instruction (16 bits).
Une extension à 32 bits du bit de signe de cette adresse
est réalisée.
Ce mode d'adressage permet de rejoindre les 32 premiers
Koctets et les 32 derniers Koctets de la mémoire
(adresses $00000000-$00007FFF et $FFFF8000$FFFFFFFF).
Adressage Absolu Court
Adressage Absolu Long
L'opérande est en mémoire et son adresse est
contenue dans «deux» mots complémentaires.
 Ce mode d'adressage permet d’accéder à
l’ensemble de la mémoire.

Adressage Absolu Long
Adressage Indirect par Registre
Instruction
Code Opération Registre
Mémoire
Registre désigné Adresse de l’opérande
Opérande
Adressage Indirect par Registre
L'opérande est en mémoire et son adresse est
dans un des 8 registres d'adresse.
 L'opérande peut être source ou destination et sa
taille peut être un octet, un mot ou un long mot.
 Syntaxe : AE = (An)

Adressage Indirect par Registre
Adressage Indirect par Registre
Post-incrémenté / Pré-décrémenté
Instruction : lecture d’un mot en mémoire avec post-incrémentation
Code Opération
Registre d’adresse
Registre
26
Mémoire
2B
2A
29
28
27
Opérande1 26
25
Instruction
Code Opération Registre
Mémoire
Registre d’adresse
28
2B
2A
29
Opérande2 28
27
26
25
Adressage Indirect avec Post-incrémentation
L'opérande est en mémoire et son adresse est
dans un des 8 registres d'adresse ;
 Après utilisation, le contenu du registre
d'adresse est incrémenté de la taille de
l'opérande (1, 2 ou 4).
 Syntaxe : AE = (An)+

Adressage Indirect avec Post-incrémentation
Adressage Indirect avec Pré-décrémentation
L'opérande est en mémoire et son adresse est dans
un des 8 registres d'adresse ;
 Avant utilisation le contenu du registre d'adresse est
décrémenté de la taille de l'opérande (1, 2 ou 4).
 Syntaxe : AE = -(An)

Adressage Indirect avec Pré-décrémentation
Adressage Indirect avec Déplacement
L'opérande est en mémoire et son adresse est calculée
par addition au contenu d'un des 8 registres d'adresse
d'un déplacement signé sur 16 bits.
 Le contenu du registre d'adresse reste inchangé.
 Le déplacement est placé dans un mot complémentaire
qui suit l'instruction.
 Une extension à 32 bits du bit de signe du
déplacement est réalisée ; le déplacement est donc
considéré comme une valeur signée comprise entre
-32768 et +32767.

Adressage Indirect avec Déplacement
Syntaxe d16(An)
Adressage Indirect avec Déplacement
Adressage Indirect par Mémoire
Instruction
Code Opération Adresse mémoire
Mémoire
Cellule relais
Syntaxe AE = (Adr)
Adresse
Mémoire
Opérande
Adressage Indexé
Instruction
Code Opération Index
Mémoire
Registre d’index Adresse de l’opérande
Opérande
Adressage Indexé avec Déplacement :
simplifié
Instruction
Code Opération Index Déplacement
Mémoire
Registre d’index Adresse
Adresse
effective
+
Opérande
Adressage Indirect avec Index et
Déplacement
Adressage Indirect avec Index et
Déplacement




L'opérande est en mémoire et son adresse est calculée par
addition du contenu d'un des 8 registres d'adresse, d'un
déplacement signé sur 8 bits et du contenu d'un registre
d'index multiplié par un facteur d'échelle.
Le registre d'index peut être un des 8 registres de donnée
ou un des 8 registres d'adresse ; il peut être utilisé comme
un mot ou un long mot ; dans le cas d'un mot il y
extension à 32 bits de son bit de signe.
Le facteur d'échelle utilisé pour multiplier le registre
d'index est fonction de la taille de l'opérande: 1 pour les
octets, 2 pour les mots et 4 pour les longs mots.
Les contenus du registre d'adresse de base et du registre
d'index restent inchangés.
Adressage Indirect avec Index et
Déplacement
Téléchargement