Vous êtes sur la page 1sur 13

LMC CHAPTER 6:

Niveau 5 Couche des langages d’application


The Little Man Computer
Traduction ((compilateur)
p )
Niveau 4 Couche du langage d’assemblage
Traduction (assembleur)
The Architecture of Computer Hardware
Niveau 3 Couche du système d’exploitation
and Systems Software:
Interprétation partielle (système d’exploitation)
An Information Technology Approach
Niveau 2 Couche architecture du jeu d’instructions 3rd Edition, Irv Englander
(couche ISA)
Interprétation (microprogramme)
John Wiley and Sons ©2003
ou exécution directe
Niveau 1 Couche microarchitecture Linda Senne, Bentley College
Matériel
Wilson Wong, Bentley College
Niveau 0 Couche logique numérique

Chapter 6 Little Man Computer 6-1

The Little Man Computer LMC


ƒ Little Man – Le chef, il sait ce
qu’il faut faire et il a autorité sur
tous les autres
ƒ La mémoire : une armoire à
tiroirs numérotés de 0 à 99.
Chaque tiroir peut contenir un
nombre de 0 à 999
ƒ Le compteur de programme
« Program Counter » : Il
indique le numéro du tiroir de la
prochaine instruction à réaliser
Chapter 6 Little Man Computer http://www.herts.ac.uk/ltdu/projects/mm5/ 6-3 Chapter 6 Little Man Computer 6-4

1
LMC LMC
ƒ L’unité de calcul. Elle est capable
de faire des additions et des
Armoire à
soustractions. Elle dispose d’une Unité de
tiroirs
calcul
mémoire interne qui garde
toujours le résultat de la dernière
opération.
ƒ Les entrées/sorties. Un Entrées/
Sorties
ordinateur ne sert à rien s’il est
incapable de communiquer avec
le monde extérieur. Le LMC est
capable de recevoir et d’envoyer Little
des nombre de 0 a 999 Man
Le compteur de
Chapter 6 Little Man Computer 6-5 Chapter 6 Little Man Computer 6-6
programme

Armoire à tiroirs: Adresse vs.


Armoire à tiroirs Contenu
ƒ 100 tiroirs numérotés de 0 à 99 pouvant ƒ Le langage machine du LMC est écrit en
contenir des nombres de 0 à 999. base 10
ƒ Un nombre de 0 à 999 est en fait 3 chiffres ƒ Adresses sont consécutives
de 0 à 9
ƒ Contenu peut être
ƒ On peut donc voir la mémoire comme 100 tiroirs
contenant chacun trois compartiments. Dans ƒ Données ou
chaque compartiment, on peut mettre un chiffre de ƒ Instructions Adresse Contenu
0à99. № du
d ti
tiroir
i
3 1 7
ƒ En fonction du contexte, ces chiffres peuvent
avoir différentes significations
Chapter 6 Little Man Computer 6-7 Chapter 6 Little Man Computer 6-8

2
Instructions machines Instructions machines
ƒ Les instructions et les données sont ƒ L’instruction machine est une chaîne
codées sur des mots mémoires (un ou binaire de p bits composée principalement
plusieurs mots mémoires selon la nature de deux parties
de l’ordinateur) ‡ Un code opération
ƒ Les instructions machines sont propres à ‡ Indique au processeur le type de traitement à
réaliser
chaque microprocesseur ‡ Un code opération de m bits permet de définir 2m
ƒ Une instruction désigne un ordre donné au opérations
p différentes p
pour la machine
Le nombre d’opérations différentes autorisées pour
processeur et qui permet à celui-ci de ‡

une machine définit le jeu d’instructions de la


réaliser un traitement élémentaire machine
Code Opération Champ opérandes

Chapter 6 Little Man Computer 6-9 Chapter 6 Little Man Computer 6-10

Instructions machines Instructions machines


ƒ Le champ opérandes ƒ Les différents types d’opérandes
‡ Composé de p-m bits ƒ11, 2 ou 3 opérandes
é d ((selonl ttype
‡ Indique la nature des données sur lesquelles d’instruction)
l’opération désignée par le code opération doit
être effectuée ƒ 3 natures différentes (mode d’adressage)
‡ Le façon de désigner un opérande dans une ‡ L’opérande – une valeur immédiate, par ex. 3
instruction peut prendre différentes formes
– Mode d’adressage
d adressage des opérandes
Code Opération Mode adressage immédiat Information complémentaire =
= opérande = valeur immédiate = 3
Code Opération Champ opérandes

Chapter 6 Little Man Computer 6-11 Chapter 6 Little Man Computer 6-12

3
Instructions machines Instructions machines
ƒ Les différents types d’opérandes ƒ Le format du champ opérande
ƒ 3 natures
t différentes
diffé t ƒLLe mode
d d’
d’adressage
d lié à l’l’opérande
é d
‡ L’opérande est un registre du processeur, ƒ Une information complémentaire qui
par.ex. R1 permet conjointement avec le mode
Code Opération Mode adressage registre Information complémentaire = d’adressage de trouver l’opérande
= numéro de registre = 1
Opérande = contenu de R1
‡ L’opérande est un mot mémoire
Code Opération Mode adressage direct Information complémentaire =
= adresse mémoire = 128
Opérande = contenu de la case
Chapter 6 Little Man Computer Mémoire 128 = 7 6-13 Chapter 6 Little Man Computer 6-14

Langage d’assemblage Langage d’assemblage


ƒ Spécifique au CPU ƒ Programmation en langage
ƒ Langage d’assemblage
d assemblage – une variante d’assemblage
d assemblage nécessite une étape de
symbolique du langage machine traduction
ƒ Mnémoniques (courte séquence de ƒ Les instruction en langage machine sont
caractères) représentent les instructions compréhensibles et exécutables par la
ƒ Requiert de connaître l’architecture du machine
processeur et de la machine ƒ Phase de traduction
ƒ Langage d’assemblage du processeur ƒ Un outil appelé l’assembleur
‡ Intel Pentium, Athlon AMD, LMC

Chapter 6 Little Man Computer 6-15 Chapter 6 Little Man Computer 6-16

4
Langage d’assemblage Langage d’assemblage
ƒ Format d’une instruction du langage ƒ Format d’une instruction du langage
d assemblage
d’assemblage d assemblage
d’assemblage
ƒ Une instruction du langage d’assemblage
est composée de champs, séparés par un Étiquette Code opération Opérandes Commentaires
ou plusieurs espaces
‡ Champ étiquette
‡ Champ code opération
‡ Champ opérandes
‡ Plusieurs opérandes séparés par des virgules
‡ Champ commentaires
Chapter 6 Little Man Computer 6-17 Chapter 6 Little Man Computer 6-18

Contenu: Instructions LMC Jeu d’Instructions LMC


ƒ Op code Arithmétiques 1xx ADD
ƒ Code opération
2
2xx SUB
ƒ Mnémonique arbitraire
ƒ Opérande Transfert de données 3xx STORE
ƒ Objet pour la manipulation 5xx LOAD
‡ Adresse de données
‡ Mode d’adressage direct Le premier chiffre représente le type
•Le
Adresse Contenu d’instruction
Op code Opérande •Les deuxième et troisième chiffres
représentent un numéro de tiroir (de 0 à 99).
Chapter 6 Little Man Computer 6-19 Chapter 6 Little Man Computer 6-20

5
Jeu d’Instructions LMC Jeu d’Instructions LMC
Entrées/Sorties 901 INPUT Contrôle de la machine 6xx BR
902 Output 7xx BRZ
8xx BRP
•Le premier chiffre représente le type
d’instruction d’entrées/sorties - 9 •Quand le premier chiffre est 6, 7, 8, il s’agit
•Les deuxième et troisième chiffres d’une instruction spéciale déterminée par les
représentent une entrée – 01, ou une sortie deux chiffres suivants.
- 02

Chapter 6 Little Man Computer 6-21 Chapter 6 Little Man Computer 6-22

Jeu d’Instructions LMC Entrée/Sortie


Contrôle de la machine 000 HALT ƒ Transfert de données depuis l’unité de
calcul vers les entrées/sorties et vice versa
Contenu
Op Code Opérande
(adresse)
IN (input) 9 01

OUT (output) 9 02

Chapter 6 Little Man Computer 6-23 Chapter 6 Little Man Computer 6-24

6
LMC Entrée/Sortie Transfert de données
ƒ Entre tiroirs et l’unité de calcul
Contenu
Op Code Opérande
IN (adresse)
OUT STO 3 xx
(store)

LDA (load) 5 xx

Chapter 6 Little Man Computer 6-25 Chapter 6 Little Man Computer 6-26

LMC Transfert de données Données


ƒ Identiques aux instructions
ƒ Ne
N ddoivent
i t pas êt
être placées
l é d dans lla
LDA séquence d’instructions
ƒ Identifiées par mnémonique DAT
STO ƒ Pseudo-instructions
ƒ Ordres destinés au traducteur assembleur

DAT 003

Chapter 6 Little Man Computer 6-27 Chapter 6 Little Man Computer 6-28

7
Les Instructions arithmétiques LMC Instructions arithmétiques
ƒ Lire le contenu du tiroir
ƒ Faire l’opération
l opération dans l’unité
l unité de calcul
ADD
SUB
Contenu
Op Code Opérande
(adresse)
ADD 1 xx
SUB 2 xx

Chapter 6 Little Man Computer 6-29 Chapter 6 Little Man Computer 6-30

Contrôle de la machine Contrôle de la machine


ƒ Branchement (les instructions de ƒ Branchement
rupture de séquence d’exécution)
d exécution) ƒ Instruction de sauts inconditionnels
Effectue toujours le débranchement de l’exécution à
ƒ Change l’adresse de l’instruction à ‡

l’adresse spécifiée
exécuter Contenu ‡ BR XX (XX – adresse de branchement)
ƒ Arrêt du Op Code Opérande ƒ Instructions de sauts conditionnels
Effectuent le débranchement de l’exécution si et
processeur (Halt) (adresse) ‡

seulement si une condition correspondante est vérifiée


BR (Jump)
(J mp) 6 xx
‡ BRZ XX (si le contenu de la calculatrice = 0, on fait le
BRZ (Branch on 0) 7 xx saut à l’adresse XX)
‡ BRP XX (si le contenu de la calculatrice > ou = 0, on fait
BRP (Branch on +) 8 xx le saut à l’adresse XX)
COB (stop) 0 (ignorée)
Chapter 6 Little Man Computer 6-31 Chapter 6 Little Man Computer 6-32

8
Jeu d’instructions LMC Langage d’assemblage LMC
Arithmétiques 1xx ADD ƒ Étiquette
2xx SUB
Éi
Étiquette C d opération
Code é i O é d
Opérandes C
Commentaires
i
Transfert de données 3xx STO
5xx LDA ƒ Une chaîne de caractères permettant de
Branchement 6xx BR nommer une instruction ou une variable
7xx BRZ
ƒ Correspond à une adresse dans le
8xx BRP
programme
Entrée/Sortie 901 IN
‡ Instruction (loop LDA var)
902 OUT
‡ Variable (var DAT 000)
Contrôle de la 000 HLT
machine

Chapter 6 Little Man Computer 6-33 Chapter 6 Little Man Computer 6-34

Langage d’assemblage LMC Langage d’assemblage LMC


ƒ Code opérations ƒ Les opérandes
Éi
Étiquette C d opération
Code é i O é d
Opérandes C
Commentaires
i Éi
Étiquette C d opération
Code é i O é d
Opérandes C
Commentaires
i

ƒ Une chaîne de caractères mnémonique du ƒ Adresse de l’opérande (mode d’adressage


code opération direct)
‡ LDA ‡ Étiquette
‡ STO
‡ IN ADD one ADD 99
‡ OUT … …
‡ ADD one DAT 001 99 DAT 001

Chapter 6 Little Man Computer 6-35 Chapter 6 Little Man Computer 6-36

9
Additionner deux nombres Additionner deux nombres
ƒ « Réalisez un programme qui prend ƒ Problèmes :
deux nombre en entrée et retourne la ƒ Input
I t écrit
é it lla valeur
l d
dans l’l’unité
ité d
de
somme en sortie » calcul et il n’y a qu’une place.
ƒ Lire la première entrée (Input) ƒ Add calcule la somme du contenu d’un
ƒ Lire la deuxième entrée (Input) tiroir avec le contenu courant de l’unité
ƒ Additionner les deux (Add) de calcul
ƒ Envoyer le résultat (Output)

Chapter 6 Little Man Computer 6-37 Chapter 6 Little Man Computer 6-38

Additionner deux nombres Additionner deux Nombres


ƒ Il faut donc mémoriser temporairement ƒ Quel tiroir utiliser pour Lire un #
la première donnée lue
sauvegarder
d lla d donnée
é ?
ƒ Le programme devient: ƒ Données sont stockées Sauvegarder le #
ƒ 1) Lire la première entrée (Input) dans les tiroirs
ƒ 2) Écrire cette donnée en mémoire avec les adresses >90 Saisir un #
ƒ 3) Lire la deuxième entrée (Input)
ƒ 4) Additionner le contenu de l’unité de Additionner
calcul avec le contenu du tiroir (Add)
ƒ 5) Envoyer le résultat (Output) Afficher le
nombre
Chapter 6 Little Man Computer 6-39 Chapter 6 Little Man Computer 6-40

10
Programme d’Addition de 2 Programme d’Addition de 2
Nombres: en mnémoniques Nombres
N° tiroir Contenu Description
N° tiroir Mnémonique Description
du tiroir
00 IN ;input 1st Number 00 901 ;input 1st Number
01 STO 99 ;store data 01 399 ;store data
02 IN ;input 2nd Number 02 901 ;input 2nd Number
03 ADD 99 ;add 1st # to 2nd # 03 199 ;add 1st # to 2nd #
04 OUT ;output result 04 902 ;output result
05 HLT ;stop 05 000 ;stop
99 DAT 00 ;data 99 000 ;data
Chapter 6 Little Man Computer 6-41 Chapter 6 Little Man Computer 6-42

Trouver un différence positif de 2 Trouver un différence positif de 2


nombres. Langage d’assemblage LMC nombres. Langage machine LMC
IN 00 901
STO D1 01 310
IN 02 901
STO D2 03 311
SUB D1 04 210
BRP AF ;test Mémoire 05 808
LDA D1 ;if negative, reverse order 06 510
SUB D2 07 211
AF OUT ;print result and 08 902
HLT ;stop 09 000
D1 DAT 00 ;used for data 10 000
D2 DAT 00 ;used for data 11 000
Chapter 6 Little Man Computer 6-43 Chapter 6 Little Man Computer 6-44

11
Cycle d’instruction Phase Fetch
ƒ Différentes phases de réalisation des 1. Lire le compteur de
instructions programme pour savoir
dans quel tiroir se
ƒ Fetch (recherche de l’instruction) Little Man trouvent les chiffrent qui
trouve l’instruction à exécuter codent
ƒ Execute: Little Man exécute l’instruction. l’instruction à exécuter.

2. Il va au tiroir

Chapter 6 Little Man Computer 6-45 Chapter 6 Little Man Computer 6-46

Fetch, cont. Phase “Execute”

3. Lire les chiffres qui


q 1. Little Man Regarde de
se trouvent dans le quelle instruction s’agit le
code (DECODE) et cherche
tiroir concerné. l’opérande
(FETCH)

2 Il lit ll’opérande
2. opérande.

Chapter 6 Little Man Computer 6-47 Chapter 6 Little Man Computer 6-48

12
L’Arithmétique signée en base
Execute, cont.
10 (LMC)
ƒ Nombres signés
3 Exécute
3. é l’opération
é et ƒCConvention
ti complément
lé t à 10
place le résultat dans
l’unité de calcul ƒ Avec 3 compartiments dans chaque tiroir
et un langage en base 10 => 000 - 999
‡ tous les nombres >=500 sont considérés
comme étant négatifs

4. Incrémenter (faire +1) le


500 - 999 0 + 499
compteur de programme.

Chapter 6 Little Man Computer 6-49 Chapter 6 Little Man Computer 6-50

L’Arithmétique signée en base L’Arithmétique signée en base


10 (LMC) 10 (LMC)
ƒ Nombres signés ƒ Nombres signés
ƒ Convention
C ti complément
lé t à 10 ƒNNombres
b négatif
é tif [[-1,
1 -500]
500]
‡ Nombres positif [0,499] ƒ Exemple: -347
‡ Nombres négatif [-1, -500] ‡ Complément à 9 de la valeur absolue
‡ Complément à 9 de la valeur absolue ‡ C–à-9 sur 3 chiffres de 347 = 652
Ajouter 1
‡
‡ Ajouter 1
‡ 653

500 - 999 0 + 499


500 - 999 0 + 499
-347

Chapter 6 Little Man Computer 6-51 Chapter 6 Little Man Computer 6-52

13