Professional Documents
Culture Documents
2.
3.
4.
5.
LE CODAGE DE LINFORMATION.............................................................................. 17
Conversion : Binaire -> Dcimal .............................................................................................................................. 17
Conversion : Dcimal -> Binaire .............................................................................................................................. 18
Conversion : Binaire -> Hexadcimal ...................................................................................................................... 19
Conversion : Hexadcimal -> Binaire ...................................................................................................................... 19
Conversion : Hexadcimal -> Dcimal ..................................................................................................................... 19
Conversion : Dcimal -> Hexadcimal ..................................................................................................................... 19
La reprsentation de linformation .......................................................................................................................... 20
Larithmtique relle ................................................................................................................................................. 20
ARITHMTIQUE EN COMPLMENT........................................................................... 27
ADRESSAGE DES OPRANDES................................................................................ 28
Gnralit ................................................................................................................................................................... 28
Adressage immdiat .................................................................................................................................................. 28
Adressage direct ......................................................................................................................................................... 28
Adressage base (non-utilis)...................................................................................................................................... 29
Adressage index........................................................................................................................................................ 29
Adressage indirect ..................................................................................................................................................... 30
Adressage direct sur la pile ....................................................................................................................................... 30
Adressage index sur la pile ...................................................................................................................................... 31
Adressage indirect sur la pile.................................................................................................................................... 31
Adressage indirect index sur la pile........................................................................................................................ 32
Entre
(Clavier, souris, etc.)
5 Mmoire
Sortie
(cran, imprimante, etc.)
Unit de contrle
Bus
3 Unit arithmtique et
Registres
logique
1. Mdium dentre
2. Mdium de sortie
3. Unit de calcul (arithmtique et logique)
-
Dfinition : Lunit de calcul, souvent appele UAL pour Unit Arithmtique et Logique, sert
excuter les oprations logiques et arithmtiques sur des oprandes fournis par lunit de
contrle.
4. Unit de contrle
-
Dfinition : Partie de lUCT (Unit Centrale de Traitement) qui interprte les instructions et
choisit des actions en consquence.
Fonctionnement
o Lit les instructions en mmoire, les dcode et envoie les signaux aux autres lments de
lordinateur pour quune instruction soit excute.
o Elle reoit aussi des rsultats de lunit de calcul pour complter lexcution des
instructions qui permettent des choix.
5. Unit de mmoire
-
Dfinition : Lunit de mmoire est une unit spare de lUCT qui doit, entre autre, contenir les
instructions, les oprandes et les rsultats.
Fonctionnement
o Au cours de lexcution dun programme, les instructions, les oprandes et les rsultats rsident
en mmoire
o
Mot de mmoire
mot de 8 bits, 1 cellule de 8 bits
mot de 16 bits, 2 cellules de 8 bits
mot de 32 bits, 4 cellules de 8 bits
mot de 32 bits, 4 cellules de 8 bits
mot de 36 bits, 1 cellule de 36 bits
mot de 60 bits, 10 cellules de 60 bits
mot de 64 bits, 8 cellules de 8 bits
Les cellules ne peuvent contenir que des valeurs binaires. Ainsi, toute linformation
traite par lordinateur doit tre code sous forme binaire.
Accs aux cellules : Trs rapide. Se calcule en nanosecondes (un milliardime de
seconde)
cot
Petite
-
Autres caractristiques
Lhorloge
-
Fonctionnement
o Un cycle dhorloge : Intervalle de temps entre chaque signal.
o La frquence dhorloge : Nombre de signaux dhorloge engendrs par unit de temps.
o Lhertz est lunit de mesure pour les activits de lUCT.
1 million dhertz : 1 Megahertz (MHz)
1 milliard dhertz : 1 Gigahertz (GHz)
o Exemple de calcul : Si un UCT volue 1.5GHz, le nombre de cycles dhorloge est de 1 milliard
500 millions (1 500 000 000) cycles par seconde. Si une opration requiert 10 cycles dhorloge,
-9
elle sera excute en un temps de : 10(1/1 500 000 000) = 6,66ns (6,66 x 10 )
chelles de temps
o Nanoseconde : 1 milliardime de seconde
o Microseconde : 1 millionime de seconde
Les bus
-
Dfinition : Le bus est un ensemble de lignes de communication qui permet lUCT de communiquer avec
la mmoire et les dispositifs priphriques. Elle permet le transfert dadresses, de donnes et de signaux
qui reprsentent de linformation entre les divers composants du systme.
Fonctionnement
Le nombre de lignes du bus dadresses dtermine le domaine des adresses
possibles.
16
Exemple : Bus de 16 bits. Nombre dadresses possible : 2 = 65536
Si ladresse dpasse le nombre dadresses possible, il se produit une erreur de
bus ( bus error ).
Quantities of bytes
SI prefixes
Binary prefixes
10
Name
(Symbol)
12
15
18
21
24
10
megabyte (MB)
10
gigabyte (GB)
10
terabyte (TB)
10
petabyte (PB)
10
exabyte (EB)
10
zettabyte (ZB)
10
yottabyte (YB)
10
Name
(Symbol)
Value
10
kibibyte (KiB)
10
20
mebibyte (MiB)
30
gibibyte (GiB)
40
tebibyte (TiB)
50
pebibyte (PiB)
60
exbibyte (EiB)
70
zebibyte (ZiB)
80
yobibyte (YiB)
20
30
40
50
60
70
80
LUCT place une adresse sur le bus dadresse en spcifiant le type dopration
(lecture ou criture)
Bus de donnes
Dfinition : Le bus de donnes permet lUCT et aux priphriques de schanger des
donnes.
kilobyte (kB)
Standard Alternate
SI
Use
Fonctionnement
La quantit de donnes transfre en un cycle mmoire est dtermine par le
nombre de lignes du bus de donnes.
Exemple
o Bus de donnes de 8 lignes
o Peut transfrer 8 bits la fois
o Si le mot mmoire est de 2 octets, a prend 2 cycles pour le transfert
Bus de contrle
Dfinition : Lignes de transmission des signaux pour contrler les diffrents vnements
qui se produisent dans les diffrentes parties du systme.
Les registres
-
Dfinition : Cellule de taille fixe contenue dans lUCT dont laccs est plus rapide que la mmoire vive.
But : Utilis pour le contrle de lordinateur et pour ranger les rsultats intermdiaires des calculs.
Fonctionnement
11
o
o
o
Les instructions utilisent gnralement linformation qui se trouve dans les registres du
processeur
De faon gnrale, un ordinateur est quip de 16 ou 32 registres de 32 bits
Types de registres
Registres dindex
Registres de calcul
Sous PEP/8, il nexiste que deux registres. Le registre X peut tre utilis comme registre
dindex ou de calcul tandis que le registre A ne peut tre utilis que comme registre de
calcul.
Numrots de 0 15, de droite gauche
Bit le moins significatif : 0
Bit le plus significatif : 15
15
Les registres
-
Fonctionnement
La taille du registre dpend de la taille de lespace mmoire utilis
Sous PEP/8, la taille du compteur ordinal est de 2 octets (16 bits)
Mis jour pendant lexcution de chaque instruction.
12
Fonctionnement
Ngatif (N) : Vaut 1 si le rsultat est infrieur 0
Zro (Z) : Vaut 1 si le rsultat est gal 0
Dbordement (V pour overflow ) : Vaut 1 lorsquil y a un dbordement
Retenue (C pour carry ) : Mis 1 si retenue, zro autrement
Diffrence entre V et C
Loverflow et carry servent tous les deux indiquer un dbordement. Cependant,
overflow indique un dbordement en supposant que le nombre est sign et carry
suppose que le nombre nest pas sign.
Un dbordement survient lorsque lopration effectue fait sortir le nombre des bornes.
Par exemple, sur 16 bits, un nombre doit tre compris entre -32768 (0x8000) et 32767
(0x7FFF). Un nombre non-sign sur 16 bits doit tre compris entre 0 (0x0000) et 65535
(0xFFFF)
-32768
32767
Reprsentation interne
Carry
Overflow
32767
65535
-32768
-1
Overflow
Carry
13
LUCT ne sarrte jamais. Elle excute continuellement des instructions contenues dans la mmoire
centrale.
LDA valeur,d
Compteur ordinal
0x0F60
0x0F63
4
Registre adresse
du bus dadresse
0x0F60
0xF5B
0xF5C
0xF5D
0xF5E
0xF5F
0xF60
0xF61
0xF62
0xF63
0xF64
0xF65
0xF66
0xF67
0xF68
0x0F61
Registre du bus de
donnes
0x0F66
0xC9
0x0F
0x66
0xC9
0x0F66
0xD2F5
3
0xC9 0x0F66
5
2
Registre dinstruction
1.
0xD2
0xF5
0xD2F5
Registre X
N:0
Z:0
V:0
C:0
b.
Un accs mmoire est effectu et rcupre 0xC9 dans le registre du bus de donnes
c.
2.
Dcoder linstruction (Instruction, type de registre, type dadressage Voir Une instruction en langage
assembleur ). C9 (1100 1001) indique un chargement dans le registre X en mode direct.
3.
Puisque notre instruction nest pas unaire (Dtermine lors du dcodage), on obtient la partie oprande
de linstruction
14
a.
Placer ladresse du premier octet de loprande (From where ?) dans le registre adresse du bus
dadresse
b.
Un accs mmoire est effectu et rcupre 0x0F66 dans le registre du bus de donnes
c.
Le contenu du registre du bus de donnes est transfr dans les deux derniers octets du registre
dinstruction
4.
5.
Excuter linstruction qui se trouve dans le registre dinstruction. Puisque le mode dadresse est direct, la
partie oprande est une adresse mmoire o se trouve la valeur de loprande. Il faut donc aller la
chercher en mmoire.
a.
Placer le contenu des deux derniers octets du registre dinstruction dans le registre adresse du
bus dadresse
b.
Un accs mmoire est effectu et rcupre 0xD2F5 dans le registre du bus de donnes
c.
6.
7.
Revenir ltape 1
15
Instructions et donnes
-
La sparation des donnes et des instructions est cruciale parce que lunit centrale de traitement ne
peut pas distinguer les instructions des donnes
Cest au programmeur de sparer les instructions des donnes et de positionner le compteur ordinal la
premire instruction excuter.
16
Dfinition : Possde une grande varit dinstructions conus pour des traitements spcifiques
Dfinition : Petit ensemble dinstructions qui sexcutent en un cycle dhorloge. Il utilise un grand nombre
de registres internes pour crer du code simple et trs efficace.
17
Le codage de linformation
Note : Les chiffres utiliss pour reprsenter un nombre dans un systme de numration donn doivent tre compris entre zro et la base 1.
Base
2 (binaire)
8 (octale)
10 (dcimale)
16 (hexadcimale)
Chiffres possibles
0, 1
0, 1, 2, 3, 4, 5, 6, 7
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Tableau dquivalences
2
16
10
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
00
01
02
03
04
05
06
07
10
11
12
13
14
15
16
17
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
18
0
1
1
0
0
0
0
1
1
0
1
0
1
Virgule flottante : Conversion de la partie entire comme mentionn ci-haut et conversion de la partie
fractionnaire par une srie de multiplications par deux en conservant la partie entire de chaque rsultat.
o
0
1
0
0
1
1
0
0
1
1
0
0
1
Note : Des nombres qui possdent une reprsentation finie dans un systme de numration donn peuvent avoir une reprsentation infinie (ou
cyclique) dans un autre systme de numration.
19
Grouper les chiffres binaires (bits) par 4 en partant de la droite et remplacer chaque groupe par son
quivalent hexadcimal.
Exemple : 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 devient 13AC6B
Remplacer chaque chiffre hexadcimal par son quivalent binaire sur quatre bits
Exemple : F332A devient 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0
Expansion polynomiale
0
1
2
3
Exemple : D52C devient C(12) X 16 + 2 X 16 + 5 X 16 + D(13) X 16 = 54572
4
6
15(F)
20
La reprsentation de linformation
-
Les bits dun octet sont numrots de droite gauche de la position 0 la position 7.
Ladresse du mot est toujours ladresse du premier octet de la zone considre
Adresse
5FC
Moiti 1
5FD
Moiti 2
5FE
5FF
Le bit de gauche peut tre utilis pour indiquer le signe du nombre : 0 pour positif, 1 pour ngatif.
Le contenu dune case mmoire peut reprsenter nimporte quoi. Ainsi, rien ne diffrencie le contenu
alphanumrique des octets du contenu numrique des mots
Tout dpend de linterprtation qui en est faite !
Larithmtique relle
-
Dfinition : Les ordinateurs peuvent traiter plusieurs types de valeurs numriques, contrairement au
processeur virtuel PEP/8 qui ne traite que des valeurs entires, dites valeurs en point fixe . Ainsi, un
processeur standard comprend trois types darithmtique :
o Arithmtique entire
o Arithmtique relle
o Arithmtique dcimale
Fonctionnement
o Larithmtique relle traite des valeurs numriques en point flottant . Le mot point
identifie le point dcimal ou la virgule qui spare la partie entire de la partie fractionnaire dune
valeur numrique relle.
o Larithmtique relle en point fixe indique que le point dcimal a une position fixe,
gnralement droite de la valeur, qui ne comprend alors quun seul chiffre dans sa partie
entire.
o Larithmtique relle en point flottant indique que le point dcimal est situ nimporte o
dans le nombre
o La forme normalise indique que la partie entire des nombres est toujours nulle et que le
premier chiffre de la partie fractionnaire est toujours diffrent de zro. Cette forme comprend
trois champs :
Le signe
La partie fractionnaire, aussi appele mantisse
Lexposant
o La forme normalise, applique linformatique et donc sous sa forme binaire, fut standardise
e
par lorganisme IEEE en 1985 sous le sigle IEEE 754. Cette forme est toujours 1.f x 2 .
21
En point flottant :
En point fixe :
- 323,443
- 3,23443 x 10-2
Partie
fractionnaire
La puissance
1.f x 2e
23 22
Exposant
0
Mantisse
52 51
Exposant
0
Mantisse
22
Contexte : La droite des nombres rels est continue et infinie en mathmatiques. De plus, entre
deux nombres rels, il existe une infinit de valeurs. Lorsquon applique le principe des nombres
rels en informatique avec la reprsentation IEEE 754, on sait que linfini nexiste plus et que la
droite des rels nest ni infinie, ni continue.
Nombre rel ngatif
Dbordement
Dbordement
OK
OK
Dbordement
par le bas
Dbordement
par le bas
Il existe 4 types de nombres dont une reprsentation interne spciale simpose tant donn leurs
caractristiques. La solution adopte par la norme IEEE 754 dans cette matire est de rserver
des valeurs spciales qui reprsentent les 4 types particuliers de nombres.
Notes : Toutes les plages rserves ci-dessous utilisent la simple prcision mais le principe est le mme pour la double
prcision.
Valeur zro
e
La norme IEEE 754 prescrit quun rel doit toujours tre sous la forme 1.f x 2 .
Le problme avec zro cest quil ne possde aucun bit 1 dans sa reprsentation
binaire. Ainsi, le bit 1 cach par la norme lui serait automatiquement ajout.
Valeurs rserves
o Zro positif : 0x00000000
o Zro ngatif : 0x80000000
Consquence : Cette rservation de valeurs force la plus petite valeur positive
-127
0x00000001 (1.00000000000000000000001 x 2 ) et la plus grande valeur
-127
ngative 0x80000001 (1.00000000000000000000001 x 2 )
Infini
La valeur est dite infinie lorsque celle-ci se trouve dans une zone dbordement.
o Lorsque le dbordement est positif, linfini est positif.
o Lorsque le dbordement est ngatif, linfini est ngatif
Valeurs rserves
o Dbordement positif : 0x7F800000
o Dbordement ngatif : 0xFF800000
Consquence : Cette rservation de valeurs force la grande puissance positive
127 au lieu de 128 et la plus grande puissance ngative 126 au lieu de 127
23
La norme IEEE 754 rserve un certain nombre de bits afin de reprsenter des
codes derreurs concernant des oprations arithmtiques interdites sur les
rels. Par exemple :
o La racine carre dun nombre ngatif
o Une division par zro
Valeurs rserves
o 0x7F suivi dun reste non nul
o 0xFF suivi dun reste non nul
Consquence : Tout comme linfini, NaN utilise la plus grande valeur de
lexposant, ce qui rduit lintervalle des valeurs que lon peut ranger.
Nombres dnormaliss
Une des restrictions de la norme IEEE 754 est dajout automatiquement la
partie entire du nombre rel, en loccurrence un bit 1. Il est possible
cependant de contourner cette rgle et dinsrer un bit 0 comme partie
entire. Cest ce quon appelle un nombre dnormalis.
But : Cette pratique a pour but datteindre des valeurs minimales encore plus
grandes et en mme temps de diminuer les zones de dbordement par le bas.
Valeurs rserves
o Normalis positif : 0x00 suivi dun reste non nul
o Normalis ngatif : 0x80 suivi dun reste non nul
Consquence : Le bit cach par la norme devient un 0
24
Le langage dassemblage
Gnralits
-
Fonctionnement
o Un programme appel assembleur traduit un programme crit en langage dassemblage en son
quivalent en langage machine qui peut alors tre excut par lordinateur.
o Le langage dassemblage possde une syntaxe qui doit tre respecte.
o De faon gnrale, une instruction dun programme en langage dassemblage correspond une
instruction du langage machine.
4 champs
tiquette
Fibo :
Boucle :
Opration
LDA
CPA
BRGE
LDA
STA
LDA
STA
ADDA
STA
BR
Oprandes
Commentaires
Somme,d
500,i
Affiche
dernier.d
avant,d
somme,d
dernier,d
avant,d
somme,d
Boucle
;
; while (somme < 500)
; {
;
;
avant = dernier;
;
;
dernier = somme;
;
;
somme = avant + dernier;
; } //while
25
Une instruction peut tre de longueur 1 (Instruction avec 1 oprande) ou de longueur 3 (Instruction avec
deux oprandes)
Chaque instruction comprend un code opration qui indique lopration que lordinateur doit excuter
Une instruction comprend aussi des indications permettant lordinateur de dterminer o se trouver le
ou les oprandes de linstruction
Code instruction
Oprande (facultatif)
C9D4F6
1100
1001
D4F6
Adresse mmoire
Registre (facultatif)
-
Types dinstructions
o Instructions arithmtiques
o Instructions logiques
o Instructions de transfert
o Instructions dentre-sortie
Modes dadressage sur aaa
000
Immdiat
Immdiat
001
Direct
Index
010
Indirect
011
Pile
100
Pile indirect
Accumulateur A
101
Index
Registre dindex X
110
Index pile
111
Registre R
26
Un programme en Assembleur
1 Programme
source
1 Assembleur
2 Bibliothque
de programmes
1 Programme
objet
Liste du
programme
Chargeur
diteur de liens
Donnes
3 Programme
objet charg
Rsultats
Premire phase
o Le programme source est traduit en langage machine
o Le programme objet ainsi obtenu est rang dans un fichier
Seconde phase
o Le programme objet est plac en mmoire centrale
o Les divers modules ncessaires son excution sont galement chargs en mmoire et les
liaisons entre les divers modules sont tablies
o Translation du programme objet : Chaque instruction du programme objet possde une adresse
relative qui lui a t attribue par lassembleur. Lors du chargement, toutes les adresses relatives
sont modifies par addition de ladresse de chargement et les adresses relatives deviennent des
adresses absolues.
Troisime phase
o Excution du programme
27
Arithmtique en complment
-
Fonctionnement
n
o Dans un systme de numration en base b, le complment dun nombre X est dfini par : b X.
o On divise arbitrairement le domaine de la base en deux parties plus ou moins gales et on dcide
quelle partie reprsente les nombres positifs et quelle partie reprsente les nombres ngatifs.
Exemples
En base 10, avec 4 chiffres :
o Nombres positifs : 0 4999
o Nombres ngatifs : 5000 9999
En base 2, sur un octet
o Nombres positifs : 00000000 01111111
o Nombres ngatifs : 10000000 11111111
o Le complment en base diminue : Truc pour trouver les complments
Fonctionnement : Soustraire chaque chiffre du plus grand chiffre dans le systme de
numration en base b
n
Formule : (b -1) X
Exemple :
Complment de 3992
en base 10 :
9999
- 3992
--------6007
+
1
---------6008
28
Adressage immdiat
-
Oprande
Adressage direct
-
Le champ oprande de linstruction contient ladresse effective de loprande et on doit faire un accs la
mmoire pour obtenir ce dernier.
LDA valeur,d
..
Code opration
Adresse oprande
Oprande
..
29
Mode dadressage relatif : Les oprandes sont reprs par des adresses relatives
Ladresse effective de loprande est calcule au moment de lexcution de linstruction par addition au
contenu du registre de base.
Formule : Adresse effective = Adresse de base + dplacement
Le registre de base reste constant
..
Code opration
Registre de base
Adresse oprande
Valeur
Valeur
Oprande
..
Adressage index
-
Ladresse effective de loprande est calcule en ajoutant le contenu dun registre dindex ladresse de
base.
Formule : Adresse effective = Adresse de base + Contenu du registre dindex
Le registre dindex peut prendre plusieurs valeurs
LDA valeur,x
..
Code opration
Registre de base
Adresse oprande
Valeur
Oprande
..
30
Adressage indirect
-
Mcanisme dindirection : Le champ adresse contient une position mmoire qui elle, contient ladresse de
loprande
LDA valeur,n
..
Code opration
Registre de base
Adresse oprande
Valeur
Addr. Oprande
Oprande
..
..
Code opration
Dplacement oprande
+ SP
Oprande
..
31
..
Code opration
Registre dindex
Dplacement oprande
Valeur
SP
Oprande
..
..
Oprande
Code opration
Adresse oprande
Valeur
Stack
Pointer
SP
Addr. Oprande
..
32
Utilis lorsquon passe ladresse dun vecteur un sous-programme qui doit travailler directement dans
celui-ci.
LDA valeur,sxf
..
Code opration
Adresse oprande
Registre
dindex
Oprande
Valeur
Stack
Pointer
SP
Addr. Oprande
..
33
Les sous-programmes
Gnralits
-
Dfinition : Un sous-programme, comme son nom lindique, est une partie dun programme, ou plus
prcisment une des tapes du problme rsoudre.
Programme
Sous-programme
appel
retour
appel
But : Un sous-programme permet dutiliser des solutions antrieurement programmes et facilite la mise
au point des programmes.
Fonctionnement
o Un sous-programme fait appel au
concept de pile
o Lappel dun sous-programme nest
quune rupture de lexcution
squentielle des instructions du
programme.
La pile
-
Dfinition : La pile est une zone mmoire rserve par le systme dexploitation et utilis par les sousprogrammes. Sur la pile on empile :
o Ladresse de retour
o Les variables locales
o La donne de retour
o Une sauvegarde des registres
34
Adresse 0
Programmes et sousprogrammes
Adresse FFF0
Espace de la pile
Sommet
de la pile
Buts
o
o
o
Adresse FFFF
Fonctionnement
o Le pointeur de pile (stack pointer ou SP) : Le stack pointer est un registre o est conserv
ladresse du sommet de la pile.
o Lorsque lexcution du programme dmarre sous le contrle du systme dexploitation, une zone
de mmoire est affecte la pile et le pointeur de pile est initialis. Ainsi, on :
DIMINUE SP pour EMPILER
AUGMENTE SP pour DPILER
o Il faut noter que le systme dexploitation nest pas oblig de rserv de lespace mmoire pour
la pile. Dans ce cas, cest au programmeur de le faire.
Instructions
o Voir ADDSP : Augmente le registre du pointeur de pile (Dpile)
o Voir SUBSP : Diminue le registre du pointeur de pile (Empile)
o Voir CALL : Appel dun sous-programme et empile ladresse de la prochaine instruction (Valeur
du compteur ordinal)
o Voir RETn : Retourne au programme appelant et dpile de n octets.
Les paramtres
-
Dfinition : Un paramtre est une information qui est transmise du programme appelant au sousprogramme et du sous-programme au programme appelant.
Fonctionnement
35
Gsaisie:
GvieuxX:
GvieuxA:
Gretour:
Gmaximum:
Gchaine:
Gtaille:
Fonctionnement
Si ces variables sont modifies au cours de lexcution du sous-programme,
cela naffecte en rien la valeur originale.
Pour passer des paramtres valeurs en assembleur, on peut placer les valeurs
dans les registres. Dans le mme sens, on peut transmettre le rsultat dune
fonction en plaant la valeur dans le registre A.
Downside : Acceptable que si le nombre de paramtres est trs restreint
.EQUATE
.EQUATE
.EQUATE
.EQUATE
.EQUATE
.EQUATE
.EQUATE
GetChain: SUBSP
variables locales
STA
STX
LDA
LDX
LDA
STA
LDA
LDX
RET7
Fonctionnement
Une modification du paramtre dans le sous-programme modifie le paramtre
effectif
Mthode peu utilise en assembleur : Placer les adresses de tous les
paramtres effectifs dans une table et transmettre au sous-programme
ladresse de la table dans un registre
Mthode utilise : Utiliser la pile
0
1
3
5
7
9
11
;
;
;
;
;
;
;
Saisie de l'utilisateur
Sauvegarde du registre X
Sauvegarde du registre A
Adresse de retour
Taille maximale
Adresse du tableau
Longueur de la chane
5,i
GvieuxA,s
GvieuxX,s
0,i
0,i
...
Gretour,s
Gmaximum,s
GvieuxA,s
GvieuxX,s
;
;
;
;
Sauvegarde
Sauvegarde
Initialise
Initialise
;
;
;
;
;
Adresse de retour...
...mise en bas de pile
Restaure le registre A
Restaure le registre X
Nettoyer la pile + retour
Espace
rserv
au dbut
du sousprog.
Empil
lappel
du registre A
du registre X
A
X
Gsaisie
GVieuxX
GVieuxA
Gretour
Gmaximum
Gchaine
Gtaille
SP
Empil
avant
lappel
SP
0
1
3
5
7
9
11
Gsaisie
GVieuxX
GVieuxA
Gretour
Gmaximum
Gchaine
Gtaille
FFF4
FFF5
FFF7
FFF9
FFFB
FFFD
FFFF
36
Identificateurs
-
Maximum 8 caractres
Caractres alphanumriques
Termin par :
Constantes
-
Instructions et directives
-
Instruction
o Excutable
o Traduit lalgorithme
o Est finalement traduit en langage machine
o Effet au cours de la phase dexcution
Directive
o Non-excutable
o Destin au programme effectuant la traduction
o Nest pas traduit en langage machine
o Effet au cours de la phase dassemblage
o Nengendre pas dinstruction machine
o Fournit des indications dassemblage
Champ tiquette
o Facultatif
o Sert donner un nom linstruction et qui pourra servir de repre
o Mme rgles que les identificateurs
Champ opration
o Indique lopration raliser
o Peut contenir une instruction ou une directive
Champ oprande
o Un ou deux champs spars par des virgules
37
Champ commentaire
o Facultatif
o Permet dinclure des commentaires explicatifs dans chaque instruction
o Dbute avec un point-virgule
o Tout ce qui suit un point virgule est un commentaire
Liste dassemblage
-
Dfinition : Liste de la traduction du code source en langage machine produit par lassembleur et
accompagne de la liste des instructions du programme source.
Fonctionnement
o La valeur du compteur ordinal de lassembleur indique une adresse relative
o Contient linstruction traduite en code machine hexadcimal
o Code objet des directives
Peut tre absent dans le cas de .EQUATE, .WORD, .END
Peut correspondre des constantes qui ne sont pas dcoupes en tranches de 1 ou 3
octets comme les instructions.
38
Assembleur : Directives
Directives qui engendrent une rservation de mmoire
-
.BLOCK
o
o
o
o
.BLOCK
nombre doctets
.WORD
o Rserve un mot mmoire (2 blocs)
o Initialise le mot mmoire Valeur
.WORD
Valeur
.BYTE
o
o
.BYTE
valeur
.ASCII
o
o
o
o
o
.ASCII
"chaine"
Rserve un bloc mmoire de longueur variable (longueur de la chane)
Initialise le contenu partir dune chane de caractre
La chane doit se terminer par \x00
Possibilit dinsrer des caractres spciaux avec la barre oblique inverse (\)
On peut inclure tout code ASCII en utilisant son code de deux chiffres prcds de \x
.ADDRSS
.ADDRSS
table
o Rserve lespace dun mot de mmoire (2 blocs) et y place ladresse du symbole oprande.
o Dans lexemple, place ladresse correspondant au symbole table dans les deux octets
rservs.
.EQUATE
.EQUATE
o Dfini un symbole en le rendant quivalent une valeur numrique
o Souvent jumele une tiquette
.BURN
.BURN
o Initialise une nouvelle dfinition de la mmoire morte (ROM)
o Utilis dans le cas de modification du systme dexploitation
.END
o
o
o
.END
Signale la fin de lassemblage
Doit tre la dernire ligne du programme
Toute ligne qui suit la directive est un commentaire
valeur
39
Assembleur : Instructions
Instructions unaires simples
-
LDA
valeur,s
STBYTEr (1111 RAAA)
i, d, x, n, s, sf, sx, sxf
o Place un octet en mmoire partir de la moiti droite du registre spcifi
valeur,d
NZVC
NZVC
Instructions arithmtiques
-
valeur,sf
NZVC
valeur,sx
NZVC
NEGA
NZVC
40
o
o
NZVC
NZVC
Instructions dentre-sortie
-
valeur,d
NZVC
valeur,x
NZVC
valeur,n
NZVC
valeur,s
NZVC
CHARO
NZVC
41
Instructions logiques
-
NZVC
NZVC
NZVC
NZVC
NZVC
Instructions de branchement
-
BR (0000 010A)
i, d, x, n, s, sf, sx, sxf
BR
etiquette,i
NZVC
o Branchement inconditionnel
o Place ladresse qui se trouve dans sa partie oprande dans le compteur ordinal, forant ainsi la
prochaine instruction tre celle dont ladresse se trouve dans linstruction de branchement.
42
BRLE
etiquette,x
NZVC
BRLT
etiquette,i
NZVC
BREQ
etiquette,x
NZVC
BRNE
etiquette,i
NZVC
etiquette,x
NZVC
BRGT
etiquette,i
NZVC
BRV
etiquette,x
NZVC
BRC
etiquette,i
NZVC
NZVC
NZVC
43
Donne au compteur ordinal la valeur du nouveau sommet de pile qui est alors dpile.
Instructions non-ralises
-
44
Efficacit versus Clart : Autrefois, les programmes taient cris avec un souci defficacit. Aujourdhui,
tant donne la taille de certaines programmes, les soucis premiers sont la simplicit, la clart et la
fiabilit.
Rgle #2 : Un programme est clair sil est bien structur et si sa structure correspond bien la solution
logique du problme.
Structures de base
-
Boucle WHILE
WHILEnn:
CPA
BRLT
BR
ENDWHInn:
UNTILnn:
ADDX
CPA
BRLT
#CODE#
4,i
Table,x
REPEATnn
; do {
;
commentaires dcals
;
; } while (Table[i] > Elt);
#CODE#
pas,d
ENDLPnn
#CODE#
LOOPnn
#CODE#
; while(true) { [1 sortie]
;
;
:> if (A > B) break;
;
commentaires dcals
; }
;
Boucle GNRALISE
LOOPnn:
SUBX
BRGT
BR
ENDLPnn:
Boucle REPEAT
REPEATnn:
N2,d
ENDWHInn
#CODE#
WHILEnn
#CODE#
Boucle FOR
45
FORnn:
FTESTnn:
LDX
CPX
BRGT
Ctr,d
Sup,d
ENDFORnn
#CODE#
2,i
FTESTnn
#CODE#
ADDX
BR
ENDFORnn:
Instruction conditionnelle IF
o Simple
IFnn:
CPr
BR--
oprande
ENDIFnn
#CODE#
#CODE#
CPr
BR--
THENnn:
ENDIFnn:
Complte
IFnn:
THENnn:
BR
ELSEnn:
ENDIFnn:
oprande
OTHERnn
1,i
CASnn_1
CASnn_2
CASnn_3
CASnn_4
#CODE#
ENDCASnn
#CODE#
ENDCASnn
#CODE#
ENDCASnn
#CODE#
ENDCASnn
#CODE#
#CODE#
; switch (oprande) {
;
;
Format rel dans la mmoire (Dbute 0)
;
Format en PEP/8 : 1 mot mmoire = 2 octets
;
;
;
;
;
case 1:
;
break;
;
case 2:
;
break;
;
case 3:
;
break;
;
case 4:
;
break;
;
default:
; }
Guide dutilisation
-
46
Fonctionnement
Le guide doit comprendre une description du format dentre des donnes du programme et des
rsultats produits
La documentation externe
-
Dfinition : La documentation externe dcrit chaque module principal ainsi que la faon dont ceux-ci
communiquent pour former un systme complet.
La documentation interne
-
Fonctionnement
o
o
En assembleur, il est trs utile de mettre un commentaire pratiquement chaque ligne de code
Les commentaires doivent indiquer le but de linstruction dans le contexte et non pas seulement
rpter le code
o
o
Espacements
Dcalages
Sauts de page
En-ttes dans des botes
tiquettes et identificateurs qui ont un sens
47
o
o
o
o
o
48
Outils
-
Les traces
Les logiciels de mise au point : Communment appel debugger , le logiciel de mise au point permet
de placer des points darrt dans le code source, dexcuter le code pas pas, instruction par instruction,
dexaminer la valeur des registres et des variables, et darrter lexcution du programme en cas de
besoin.
49
Dfinition : PEP/8 peut adresser 65536 octets de mmoire (16 bits), ce qui veut dire que lorsquon ouvre
lmulateur PEP/8, son terrain de jeu est de 65536 octets dans la mmoire principale de lordinateur.
Parmi tous ces octets, 1073 (dpendamment de la version) sont rservs en permanence au systme
dexploitation de PEP/8.
Le systme dexploitation de PEP/8 en mmoire
0000
Application
Octets restants
Pile usager
FBCF
Pile du systme
128 octets
FC4F
FC57
FC9B
FFF8
FFFA
FFFC
FFFE
Tampon I/O
8 octets
Chargeur
68 octets
Traitement des
interruptions
861 octets
FBCF
FC4F
FC57
FC9B
2 octets
2 octets
2 octets
2 octets
Fonctionnement
o La rservation de mmoire pour le systme dexploitation seffectue dans la mmoire haute des
65536 octets disponibles ; cest--dire partir de FBCF jusqu FFFF.
o Une fonction importante du systme dexploitation est de grer les jobs que lutilisateur lui
soumet. Lorsque plusieurs jobs lui sont soumises, le systme dexploitation dcide laquelle
doit tre excute en priorit et charge le programme appropri dans la mmoire principale en
passant par la suite le contrle au CPU pour lexcution.
Elle dbute par la rservation de mmoire de la pile systme ainsi que du tampon dentre-sortie partir
des directives suivantes :
50
Les deux premires directives sont les constantes reprsentant les deux valeurs boolennes vrai/faux.
La directive osRAM rserve 128 octets de mmoire pour la pile du systme.
Les 6 directives suivantes rservent lespace mmoire du tampon dentre/sortie. Elles comprennent :
o Le tampon de saisie dun mot ainsi quun pointeur sur sa partie la moins significative
o Lespace de stockage temporaire de la saisie ainsi quun pointeur sur sa partie la moins
significative
o Le masque dadressage de linstruction. Elle permet de signaler les modes dadressages permis
pour linstruction excute.
La dernire directive, .BURN, signale que le code et les lignes suivantes sont assembls de telle manire
que la dernire instruction se terminer ladresse FFFF, cest--dire la plus haute adresse de mmoire.
Le chargeur (Loader)
-
Dfinition : Un loader a pour but de charger le code objet du programme dans la mmoire principale
Fonctionnement
o Le loader en PEP/8 est invoqu lorsque lon choisi loption Load into memory . Il se produit
alors :
SP Mem[FFFA] (Le pointeur de pile est initialis sur le haut de la pile systme)
PC Mem[FFFC] (Le program counter est initialis au dbut du chargeur)
o Le chargeur traduit le fichier du code objet pour le mettre en mmoire. Le code objet en PEP/8
est en hexadcimal, ce qui nest pas le cas des vrais codes objets qui eux sont dj sous forme
binaire et prts tre chargs.
Note : De faon gnrale, 90% du systme dexploitation est crit en langage de haut niveau tandis que
10% est crit en langage dassemblage parce que :
o Certaines parties du systme ne peuvent pas tre programmes avec les outils de haut niveau
o Un souci de performance est requis l o mme des compilateurs performants nexcellent pas
51
Chargeur
Job 1
Chargeur
Job 2
Chargeur
Temps
52
Dfinition : Linterruption est un mcanisme semblable un saut de sous-programme qui a pour but de
traiter des instructions dfinies par lutilisateur. Sous PEP/8, les interruptions sont utilises, entre autre,
pour effectuer les oprations dentre-sortie complexes (Donc pas CHARI et CHARO) tel :
o STRO (Affichage dune chane de caractres)
o DECI (Saisie dun nombre dcimal)
o DECO (Affichage dun nombre dcimal)
o NOPn (Opration non-ralise unaire)
o NOP (Opration non-ralise unaire)
Fonctionnement
o
o
o
o
o
Aprs lexcution de chaque instruction, une vrification est lance pour dterminer si une
condition dinterruption voulue sest produite. Cette vrification a lieu au cours du cycle de
lecture de la prochaine instruction.
Il existe un registre dinterruptions dans le processeur qui comprend autant de bits quil
y a de conditions dinterruptions possibles. Ainsi, chaque condition externe ou interne
pouvant causer une interruption est relie un bit particulier du registre dinterruption.
Lorsquune interruption se produit, le bit correspondant est positionn dans le registre
dinterruption et reste positionn tant quil nest pas modifi par le programme
utilisateur ou par le systme.
Le contrle des interruptions se fait par programme au moyen du registre de masque
dinterruptions qui est rempli, soit par le programme utilisateur, soit par le systme.
Un bit est positionn dans le masque pour chaque interruption que lon veut
reconnatre.
Un registre auxiliaire reoit le produit logique du registre dinterruption et du masque
dinterruption.
On balaye le registre auxiliaire de droite gauche, de gauche droite ou en suivant un
ordre de priorit donn
Ainsi, lorsque le CPU sous PEP/8 reoit les codes dopration de 001100 01000, il excute une
interruption.
Lorsquon trouve une interruption voulue, on transfre le contrle une adresse spciale
rserve par le systme dexploitation, indiquant ladresse du programme de traitement de
linterruption. Le code qui est alors excut sappelle la routine dinterruption (trap handler).
Le systme dexploitation retourne le contrle lapplication en excutant une instruction de
retour dinterruption (RETTR).
Pour quune interruption soit reconnue il faut en gnral que :
Le registre de masque dinterruption indique bien linterruption
Le systme dinterruption est activ
Il existe des sous-programmes pour traiter linterruption
53
Interruption simples
o Une interruption simple na pas de temps requis pour tre traite
o Le systme dinterruptions simples conserve divers donnes sur la pile systme avant de passer
le contrle au sous-programme de traitement de linterruption. Le systme dinterruption est
alors dsactiv jusqu ce que le programme reprend o il a t interrompu.
o Lorsque le sous-programme de traitement de linterruption est en cours dexcution, le systme
dinterruption nest donc pas actif ; une interruption se produisant alors doit attendre que le
systme soit de nouveau actif.
Dfinition : Le processeur Motorola MC68000 possde des instructions qui interrompent lexcution
normale des instructions dun programme appels exceptions . Lunit centrale de traitement peut
galement interrompre lexcution du programme pour signaler des erreurs systme. Les priphriques
peuvent eux aussi interrompre lunit centrale de traitement en activant des lignes de contrle.
Le registre dtat
54
Registre de 16 bits dont loctet le moins significatif comprend les codes de condition X, N, Z, V et
C. Loctet le plus significatif utilise 5 bits pour dfinir le mode dexcutions des instructions, le
niveau dinterruption du systme ainsi que le mode de fonctionnement du processeur.
Mode dexcution
des instructions
o
o
-
15 14 13 12 11 10
I1
I0
Mode de
fonctionnement
du processeur
I2
Niveau
dinterruption
Le registre dtat peut tre modifi par 4 instructions de rangement privilgies (en mode
superviseur).
Le registre dtat peut aussi tre lu par dautres instructions.
55
Le mcanisme
-
Lorsquune interruption survient, le CPU sauvegarde le contenu de tous les registres sur la pile systme :
o
o
o
o
o
o
o
o
o
Temp
Mem[Temp 1]
Mem[Temp 3]
Mem[Temp 5]
Mem[Temp 7]
Mem[Temp 9]
Mem[Temp 10]<47>
SP
PC
Mem[7FFA] ;
IR0..7 ;
SP ;
PC ;
X;
A;
NZVC ;
Temp 10 ;
Mem[FFFE] ;
Cette sauvegarde se trouve dans un bloc de la pile systme que lon nomme Process Control Block (PCB)
Conditions NZVC
Registre A
Registre A
Registre X
Registre X
Compteur PC
Compteur PC
SP utilisateur
SP utilisateur
Registre instruction
Stack Pointer de la
pile systme
56
CPU
PCB
CPU
PCB
NZVC
FC43
????
NZVC
FC43
????
FE22
FC45
??
FE22
FC45
?8
0000
FC46
????
0000
FC46
FE22
PC
002C
FC48
????
PC
FC9B
FC48
0000
SP
FBCF
FC4A
????
SP
FC45
FC4A
002C
IR
39 0003
FC4C
????
IR
39 0003
FC4C
FBCF
FC4E
??
FC4E
39
FC4F
????
FC4F
????
Avant linterruption
Aprs linterruption
Linstruction RETTR
-
Fonctionnement
o Le systme dexploitation redonne le contrle au processus en excutant linstruction RETTR
(Return from trap). Il sensuite les oprations suivantes :
o
o
NZVC
A
X
PC
SP
Mem[SSP]<4..7> ;
Mem[SP + 1] ;
Mem[SP + 3] ;
Mem[SP + 5] ;
Mem[SP + 7]
Le registre dinstruction nest pas sorti du PCB parce que la prochaine instruction excuter est
celle spcifie par la nouvelle valeur du compteur ordinal.
Ainsi, tout changement que le sous-programme de gestion des interruptions effectue sur le PCB
est reflt dans les registres du processus une fois que celui-ci est repris.
57
58
Comme diffrentes instructions ont des modes dadressage diffrents, le systme PEP 8 peut
automatiquement dtecter un mode dadressage interdit et une erreur dadressage.
Il faut noter que pour les instructions non implmentes, le systme de traitement des interruptions ne
fait quexcuter le code de traitement et il est ncessaire que ce code vrifie les modes dadressage qui
sont utiliss dans les nouvelles instructions.
La premire directive du code fait rfrence au registre dinstruction qui est empil sur la pile systme.
Cependant, 4 octets lui sont ajouts parce que deux appels des sous-programmes sont effectus avant
lappel de asserAd, ce qui a pour consquence daugmenter la pile de 2 octets chaque fois.
o Premier appel : Le sous-programme de traitement des interruptions
o Deuxime appel : Le sous-programme qui traite linterruption concern (opcodenn).
Les instructions suivantes ont deux buts :
o Dterminer le mode dadressage de loprande
Le mode dadressage est contenu dans le registre X
Un compteur est initialis 1 dans le registre A
Le bit de A est dcal vers la gauche dautant de bits contenus dans X
59
0
Immdiat (i)
Direct (d)
Indirect (n)
Direct sur la pile (s)
Indirect sur la pile (sf)
Index (x)
Index sur la pile (sx)
60
Le code qui suit la vrification du mode dadressage est celui du calcul de ladresse de loprande dune
instruction non-unaire. Celui-ci dbute avec 3 directives qui ont pour but de pointer sur le registre X, le
compteur ordinal et le pointeur de pile contenus dans la pile systme en y ajoutant bien sr 4 octets
puisque deux appels de sous-programmes sont effectus avant lexcution de ce code.
Les instructions qui suivent ont pour but de dterminer le mode dadressage de loprande en plaant le
registre dinstruction dans le registre X, en masquant les trois premiers bits qui correspondent au mode
dadressage et en multipliant le tout par 2 pour obtenir une adresse mmoire relative utilise dans le bloc
addrJT. Le mcanisme correspond donc un genre de SWITCH.
Ensuite chaque mode dadressage est calcul en obtenant la partie oprande du code dopration.
Puisque le compteur ordinal pointe sur la prochaine instruction excuter, il suffit de lui soustraire 2 afin
dobtenir ladresse de loprande de linstruction excute. Le rsultat final est ensuite rang dans la
variable globale opAddr
61
62
Les sous-programmes de traitement spcifiques des interruptions unaires NOPn ne font rien ; ils peuvent
cependant permettre qui en a besoin de dfinir de nouvelles oprations. Cependant, comme ces 4
instructions nont pas doprandes, le traitement rel quelles peuvent faire est limit ; elles donnent
cependant la possibilit de dfinir 4 nouvelles instructions unaires.
Linstruction NOP nest quant elle pas unaire et a un oprande en mode dadressage immdiat. Le
traitement du systme dexploitation sassure que le mode dadressage est conforme la dfinition de
linstruction.
63
64
case sign:
if (asciiCh is a digit) {
total = Valeur de asciiCh;
state = digit;
} else {
Exit with DECI error
}
break;
case digit:
if (asciiCh is a digit) {
total = (10 * total) + Valeur de asciiCh;
if (overflow) {
isOvfl = true;
}
} else {
Exit normally;
}
break;
}
}
} while (not exit);
65
66
67
68
69
Le sous-programme de traitement spcifique de linstruction STRO nest pas compliqu. Comme les autres
sous-programmes de traitements spcifiques, il dbute par identifier les modes dadressages permis
(addrMask), obtenir une confirmation que le mode dadressage de loprande fait bel et bien parti des
choix permis (assertAd) puis calcul ladresse effective de loprande (setAddr).
Une fois ladresse rcupre dans le registre A, il est mis sur la pile systme pour appeler le sousprogramme prntMsg.
Le sous-programme prntMsg a donc comme seul paramtre ladresse de la chane de caractres
afficher. Une boucle envoi ensuite chaque caractre sur lorgane de sortie jusqu temps que le caractre
NULL est rencontr.
70
350048
DECI
vecteur,x
1.
Lors du dcodage de linstruction, le processeur place le premier octet de linstruction dans le registre
dinstruction. Cet octet vaut 0x35, soit 00110101.
2.
00110 quivaut linstruction DECI, ce qui implique que son dcodage provoque une interruption.
3.
Le systme utilise le pointeur de pile systme dont la valeur se trouve ladresse 0xFFFA pour empiler 10
octets, comprenant les codes de conditions actuels (1 octet), les valeurs des registres A et X (4 octets), le
compteur ordinal (2 octets), le pointeur de pile utilisateur (2 octets) ainsi que la partie code dopration
du registre dinstruction (1 octet).
4.
Le systme place le contenu de ladresse 0xFFFE dans le compteur ordinal et poursuit lexcution. Cette
adresse pointe vers le sous-programme de traitement des interruptions (trap) situe ladresse FC9B et
qui a pour mandat de dterminer quel traitement spcifique excuter. Pour ce faire, le registre X est
initialis 0 et on y place ensuite le premier octet empile sur la pile systme, soit le registre dinstruction.
5.
Le registre X prend donc la valeur de 0x35, ce qui est suprieur 0x28, provoquant un branchement
nonUnary. On enlve ensuite de 0x35 les trois bits dadressage afin dobtenir que le code dopration qui
une fois multipli par 2 est utilis comme indice dans une table dadresses.
6.
En enlevant les trois bits dadressage par dcalages vers la droite, on obtient la valeur 0x06. On soustrait 5
de ce rsultat afin que la premire opration non-unaire ait la valeur 0 (instruction NOP). Le tout multipli
par deux pour obtenir un indice dadresse donne 0x02. En parcourant la table dadresses NonUnJT
lindice 0x02, on excute alors les instructions de ladresse opcode30.
7.
opcode30 est une tiquette qui pointe vers le sous-programme de traitement de linstruction DECI. A
partir de l, les instructions se droulent comme mentionns plus haut.
71
But : Lalgbre de Boole permet de modliser les circuits logiques des dispositifs lectroniques.
Fonctionnement
o Les variables dans une algbre de Boole peuvent prendre deux valeurs, soit 0 et 1, ce qui
n
implique que n variables peuvent avoir 2 permutations.
o Dans lalgbre de Boole, il nexiste que trois oprations
OU logique (+)
ET logique (* ou concatnation)
NON logique (')
Identits de base
Identit
Domination
Idempotence
Loi de la double ngation
Complment
Commutativit
Associativit
Distributivit
Lois de DeMorgan
Thormes de base
A*1=A
A+0=A
A*0=0
A+1=1
A*A=A
A+A=A
(A')' = A
A * A' = 0
A + A' = 1
A*B=B*A
A+B=B+A
(A * B) * C = A * (B * C)
A * (B + C) = (A * B) + (A * C)
A + (B * C) = (A + B) * (A + C)1
(A * B)' = A' + B'
(A + B)' = A' * B'
72
Thorme 1
Thorme 2
Thorme 3
Thorme 4
Thorme 5
Thorme 6
A + AB = A
A(A' + B) = AB
A(A + B) = A
(A + B)(A + B') + A
AB + A'C + BC = AB + A'C
(A + B)(A' + C)(B + C) = (A + B)(A' + C)
* Note : Toutes les variables dans un thorme peuvent tre remplaces par
dautres variables ou expressions. Exemple : A + AB = A X' + X'Z = X'
-
La fonction NOR
o Dfinition : Donne un rsultat vrai si et seulement si les deux oprandes sont fausses.
o Oprateur : NOR
o Caractristique : Plus rapide et moins coteuse que la porte OR parce quelle peut tre fabrique
avec un nombre rduit de composants.
o quivalence
(A + B)'
A' * B'
73
La fonction NAND
o Dfinition : Donne un rsultat vrai si les deux oprandes ne sont pas tous les deux vrais et faux
dans le cas chant.
o Oprateur : NAND
o Caractristique : Plus rapide et moins coteuse que la porte AND parce quelle peut tre
fabrique avec un nombre rduit de composants.
o quivalence
(AB)'
A' + B'
ET
OU
NON(A)
XOR
NOR
NAND
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
Dfinition : Les portes logiques sont les lments de base des circuits lectroniques. Chaque type de
porte ralise une opration boolenne particulire.
Types de portes
74
Portes seules
NAND
NOR
Dfinition : Les circuits combinatoires sont des circuits dont la sortie ne dpend que de lentre ; ils nont
donc pas de mmoire. Ces circuits permettent de raliser les fonctions essentielles de lordinateur.
75
Le multiplexeur
o Dfinition : Un multiplexeur est un dispositif qui slectionne une donne dentre parmi toutes
les donnes quil reoit en parallle.
o
Reprsentation conceptuelle :
D0
D1
8 entres
D2
D3
Sortie
D4
D5
D6
D7
S0 S1 S2
3 bits de slection
Fonctionnement : Les trois bits de slection dterminent laquelle des entres est passe la
sortie du multiplexer
Le dmultiplexeur
o Dfinition : Un dmultiplexeur effectue la fonction inverse du multiplexeur ; cest--dire quil
n
effectue la conversion dun code binaire de n bits en lune des 2 sorties possibles.
o
Reprsentation conceptuelle :
D0
D1
S0
D2
S1
D3
S2
D4
D5
D6
D7
Blocage
76
Le dcodeur
o Dfinition : Un dcodeur est un dispositif qui accepte en entre un code binaire et qui produit
une sortie gale 1 sur une des lignes de sortie et 0 sur les autres. Un dcodeur est donc un
dmultiplexeur.
o
Table de vrit
S0
S1
S2
D0
D1
D2
D3
D4
D5
D6
D7
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
Demi-additionneur
o Dfinition : Un demi-additionneur est un circuit qui permet dadditionner deux variables de 1 bit.
La sortie est compose de 2 bits : un pour la somme et un pour la retenue.
o
Table de vrit
A
Somme
Reste
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
Formules
Somme = A'B + AB' ou A XOR B
Reste = AB
Circuits
Reprsentation conceptuelle
77
Entre A
Somme
Entre B
CO
Retenue
Additionneur complet
o Dfinition : Un additionneur complet est un circuit qui additionne deux bits et une retenue
dentre pour obtenir, comme dans le cas du demi-additionneur, deux bits en sortie, la somme et
la retenue.
o
Table de vrit
A
Retenue dentre
Somme
Retenue
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
Reprsentation conceptuelle
Retenue
prcdente
Entre A
Entre B
Somme
Retenue
Lhorloge
-
Dfinition : Dans un ordinateur, il existe de nombreux dispositifs qui changent dtats constamment. Afin
de les contrler pour permettre un fonctionnement ordonn, lordinateur comprend une horloge ; ce qui
oblige les dispositifs changer dtat en mme temps. Ils deviennent donc synchroniser aux pulsions de
lhorloge.
78
Dfinition : Les circuits combinatoires sont des circuits dont la sortie courante dpend non seulement de
lentre courante mais aussi de lhistorique des entres passes. On dit gnralement que la sortie
courante dun circuit squentiel dpend de lentre courante et de ltat courant de ce circuit.
La bascule S-R
o
Dfinition : La bascule (flip flop) S-R est un dispositif bistable qui sapparente un bit de mmoire
et qui possde eux sorties qui sont toujours le complment de lautre.
Fonctionnement
Ltat du circuit reste stable tant que S et R restent nuls
Fonctionne comme une mmoire de 1 bit, cest--dire que la sortie Q est la valeur du bit
et que les entres servent crire la valeur en mmoire.
Si lentre Set (S) est mise 1, la porte NOR infrieure reoit les valeurs 0 et 1, ce qui
donne une sortie Q' de 0. Reset (R) tant 0, la porte NOR suprieure reoit les valeurs
0 et 0, ce qui donne une sortie Q de 1. A partir de cet instant, les deux portes NOR
reoivent toujours les mmes valeurs, ce qui assure la stabilit du systme. Mme si Set
(S) change de valeur, la stabilit du systme est maintenue.
Si lentre Reset (R) est mise 1, elle effectue la fonction inverse de Set (S), cest--dire
quelle force Q 0 et Q' 1, quel que soit ltat prcdent.
Caractristiques
La bascule S-R est ralise au moyen de deux portes NOR avec feedback
Lopration de la bascule est asynchrone, cest--dire que la sortie ne change que
lorsque lentre change.
Lentre S(1) et R(1) donne un rsultat indfini pour nimporte quelle valeur de Q
Table caractristique
Set(t)
Reset(t)
Q(t)
Q(t + 1)
Condition
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
-
Stable
Stable
Reset
Reset
Set
Set
Non-dfini
Non-dfini
Circuits
Les circuits squentiels nont pas une table de vrit comme les circuits combinatoires ; la place ils ont une table de caractristique qui
spcifie ltat du dispositif aprs une pulsion dhorloge. La table peut se lire Si Set est x, que Reset est y et que Q est z, Q(t+ 1) sera
79
Non-synchronis
Synchronis
Diagramme temporel
Bascule D
o Dfinition : Puisque lentre S(1) et R(1) donne un rsultat indfini pour nimporte quelle valeur
de Q, il faut lvite. Pour se faire, on rduit les entres une seule et on obtient de ce fait une
Bascule D pour data ou delay.
o
Fonctionnement
La bascule D fournit la mmoire pour un bit de donnes (data)
La bascule retarde lapplication de lentre la prochaine pulsion dhorloge (delay)
La sortie de la bascule D est toujours gale la plus rcente valeur envoye en entre.
Table caractristique
D(t)
Horloge(t)
Q(t)
Q(t + 1)
Condition
0
0
0
0
0
1
0
1
Stable
Stable
80
0
0
1
1
1
1
o
1
1
0
0
1
1
0
1
0
1
0
1
Reset
Reset
Stable
Stable
Set
Set
Circuit
Bascule J-K
o Dfinition : La bascule J-K possde aussi deux entres mais na pas de combinaison dentres
invalides.
o
Table caractristique
J
0
0
1
1
o
0
0
0
1
1
1
K
0
1
0
1
Q(t + 1)
Q(t)
0
1
(t)'
Circuit
Registres
o Dfinition : Un registre est un circuit numrique de lunit centrale de traitement qui
emmagasine un certain nombre de bits.
81
Le registre parallle
Dfinition : Le registre parallle est un ensemble de mmoires de 1 bit que lon peut
accder en lecture ou en criture simultanment.
Fonctionnement
Le registre parallle est ralis laide de diffrentes bascules
Le registre de dcalage
Dfinition : Le registre de dcalage accepte ou transfert de linformation de faon
srielle.
But : Les registres de dcalage peuvent servir dinterface vers les dispositifs dentresortie sriels et galement pour effectuer les dcalages logiques, arithmtiques ou
cycliques des registres. Les registres de dcalages sont aussi utiliss pour convertir un
mot parallle de n bits en un mot srie de n bits conscutifs.
Fonctionnement
Le registre de dcalage est ralis au moyen de bascules D
Les donnes entrent gauche et, chaque pulsion dhorloge, sont dcales
dune position vers la droite, le dernier bit droite tant transfr lextrieur.
La table de Karnaugh
-
Dfinition : La table de Karnaugh est une mthode dveloppe par Maurice Karnaugh (1924),
mathmaticien amricain, pour simplifier des expressions boolennes.
But : La table de Karnaugh permet de simplifier des expressions boolennes plusieurs variables. Ainsi,
cest un moyen commode de reprsenter une fonction boolenne de 3, 4, 5 ou 6 variables.
Fonctionnement
n
o La table est un tableau de 2 carrs qui reprsentent les combinaisons possibles des valeurs de n
variables.
o Les combinaisons disposes dans la table ont cependant une contrainte : Ils doivent diffrs dun
seul bit avec leurs voisines.
82
2 variables
a'b + ab
3 variables
a'b'c + ab'c + abc
01
11
10
00
a a'
00
0
1
01
11
1
1
1
c
10
a
b
4 variables
a'bc'd + a'bcd + abc'c'd' + ab'cd'
00
01
11
1
1
10
00
01
11
10
b
a
c
o
o
o
o
On reporte tous les termes dans une table de Karnaugh en plaant des 1 dans les cases
correspondant aux lments, comme montr plus haut.
On essai ensuite de regrouper les valeurs 1 voisines puisquils ne diffrent que de 1 bit. Lorsque
lon fait des groupements, on tente de :
Faire les plus grands groupements possibles
Faire le moins de groupements possible
Faire des groupements qui peuvent avoir la taille 1, 2, 4, 8 ou 16.
On limine ensuite de ces groupements les variables qui diffrent.
Puisque toute valeur dans la table de Karnaugh ne diffre que dun bit, les cases extrmes de la
table sont voisines
La premire range est voisine de la dernire range
La premire colonne est voisine de la dernire colonne
83
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
-
1
1
1
1
1
1
1
1
1
1
b
a
1
1
1
1
1
1
d
F = (c'd' + b'c + a'd')' = (c + d)(b + c')(a + d)
Les conditions neutres : Dans certains circuits, il existe certaines combinaisons de valeurs dentres qui ne
peuvent se produire. Dans ces cas, la sortie peut tre vrai ou fausse puisque sa valeur ne nous intresse
pas. Cependant, en groupe les termines dune table avec ces conditions neutres, il est possible dobtenir
des plus grands groupements.
La mthode Quine-McCluskey
-
Dfinition : Quine-McCluskey est une procdure pour simplifier les sommes de produits.
http://en.wikipedia.org/wiki/Quine-McCluskey_algorithm
84
But : Contrairement la table de Karnaugh, la mthode Quine-McCluskey peut traiter aisment plusieurs
4
variables et elle a le grand avantage de pouvoir tre programme .
Fonctionnement
o Exemple : f = abcd' + ab'cd + ab'cd' + a'bcd + a'bc'd + a'b'cd + a'b'c'd
o
Partie 1 : Dterminer quels termes sont candidats tre inclus dans une somme de produits
minimale.
Termes
Chanes binaires
abcd'
ab'cd
ab'cd'
a'bcd
a'bc'd
a'b'cd
a'b'c'd
1110
1011
1010
0111
0101
0011
0001
1
2
3
4
5
6
7
7
3
5
6
1
2
4
Termes
Chanes binaires
# de bits 1
a'b'c'd
ab'cd'
a'bc'd
a'b'cd
abcd'
ab'cd
a'bcd
0001
1010
0101
0011
1110
1011
0111
1
2
2
2
3
3
3
C. Dterminer tous les produits en n-1 variables que lon peut former en effectuant la
somme boolenne des termes de lexpansion. Les termes que lon peut combiner ont
des chanes de bits qui diffrent exactement en une position. Les bits diffrents sont
remplacs par un tiret dans le nouveau terme.
http://cheeseshop.python.org/pypi/qm/0.1
85
Combinaison
Produits
Rsultat
Chane binaire
1 et 3
2 et 3
2 et 6
4 et 5
4 et 6
5 et 7
6 et 7
(abcd')( ab'cd')
(ab'cd)( ab'cd')
(ab'cd)( a'b'cd)
(a'bcd)( a'bc'd)
(a'bcd)( a'b'cd)
(a'bc'd)(a'b'c'd)
(a'b'cd)( a'b'c'd)
acd'
ab'c
b'cd
a'bd
a'cd
a'c'd
a'b'd
1-10
101-011
01-1
0-11
0-01
00-1
C. Dterminer tous les produits en n-2 variables que lon peut former en effectuant la
somme boolenne des produits de n-1 variables obtenus ltape prcdente. Les
produits que lon peut combiner possdent un tiret dans la mme position et diffrent
exactement en une position.
Nouvelle combinaison
Produits
Rsultat
Chane binaire
(4, 5, 6 et 7)
(a'cd)(a'c'd)
a'd
0--1
On rpte cette tape, qui est similaire la prcdente, tant de fois que possible.
o
A. Trouver tous les produits boolens forms qui nont pas t utiliss pour former un
nouveau produit boolen.
Combinaison
Produits
Rsultat
Chane binaire
1 et 3
2 et 3
2 et 6
(4, 5, 6 et 7)
(abcd')( ab'cd')
(ab'cd)( ab'cd')
(ab'cd)( a'b'cd)
(a'cd)(a'c'd)
acd'
ab'c
b'cd
a'd
1-10
101-011
0--1
B. Trouver le plus petit ensemble de ces produits boolens, de sorte que la somme de
ces produits reprsente la fonction boolenne. On y arrive en formant une table qui
montre quels termes sont couverts par quels produits ; tous les termes doivent tre
couverts par un produit.
abcd'
acd'
ab'c
b'cd
a'd
o
Solutions
ab'cd
X
X
X
ab'cd'
a'bcd
a'bc'd
a'b'cd
a'b'c'd
X
X
X
X
86
87
Annexe A : Glossaire
1.
Axiome : Un axiome est une rgle fondamentale que lon doit tenir pour acquis.
2.
3.
Dbordement : Action qui se produit lorsque le rsultat est plus grand que la valeur maximum que peut
contenir loprande.
4.
Interruption : Demande de service lUCT venant dun priphrique. Passe par le bus de contrle.
5.
Mot de mmoire : Unit fondamentale dinformation que peut traiter un ordinateur et unit de base des
zones de longueur fixe. Sous PEP/8, un mot regroupe 2 octets.
6.
Pile : Bloc de mmoire allou spcifiquement par le systme dexploitation et utilis par les logiciels. Au
niveau de la programmation en assembleur, la pile est utilise essentiellement pour grer les appels des
sous-programmes et aussi pour lallocation de mmoire aux sous-programmes.
7.
Process Control Block (PCB) : Le bloc mmoire qui contient une copie des registres dun processus
interrompu.
8.
88
80
0xA
;+---------------------------------------------------------------+
;| ::: Programme principal
|
;+---------------------------------------------------------------+
Boucle1:
STRO
LDA
STA
LDA
STA
SUBSP
CALL
ADDSP
LDA
STA
CHARO
LDX
CPX
BREQ
LDBYTEA
STBYTEA
LDA
STA
SUBSP
CALL
LDA
STA
LDBYTEA
STBYTEA
msgSaisi,d
chaine,i
-4,s
CHAINMAX,i
-6,s
6,i
GetChain
2,i
0,s
nbChars,d
RCFL,i
0,i
nbChars,d
FinBouc1
chaine,x
-4,s
maj,i
-6,s
6,i
GetIndex
0,s
-2,s
chaine,x
-3,s
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
89
SUBSP
CALL
CHARO
ADDX
BR
FinBouc1: STRO
STOP
3,i
AffGros
RCFL,i
1,i
Boucle1
msgFin,d
;
;
>>> Afficher un gros caractre
;
Saut de ligne entre chaque caractre
;
indice++;
; }
;
; cout >> "Fin du programme."
;+-------------------------------------------------------+
;| ::: Variables
|
;+-------------------------------------------------------+
chaine:
nbChars:
.BLOCK
.WORD
msgSaisi: .ASCII
msgEssai: .ASCII
msgFin:
.ASCII
81
0
;+-------------------------------------------------------+
;| ::: Matrice de caractres
|
;+-------------------------------------------------------+
maj:
vide:
.BYTE
(etc)
.BLOCK
0x18
; majuscules A
10
; espace
90
;|
129-130 des notes de cours de Philippe Gabrini
|
;+---------------------------------------------------------------+
Gsaisie:
GvieuxX:
GvieuxA:
Gretour:
Gmaximum:
Gchaine:
Gtaille:
.EQUATE
.EQUATE
.EQUATE
.EQUATE
.EQUATE
.EQUATE
.EQUATE
0
1
3
5
7
9
11
;
;
;
;
;
;
;
GetChain: SUBSP
STA
STX
LDA
LDX
5,i
GvieuxA,s
GvieuxX,s
0,i
0,i
;
;
;
;
;
Boucle2:
Gsaisie,s
Gsaisie,s
0xA,i
FinBouc2
Gchaine,sxf
1,i
Gmaximum,s
Boucle2
Gtaille,s
Gretour,s
Gmaximum,s
GvieuxA,s
GvieuxX,s
;
;
;
;
;
;
CHARI
LDBYTEA
CPA
BREQ
STBYTEA
ADDX
CPX
BRLT
FinBouc2: STX
LDA
STA
LDA
LDX
RET7
.EQUATE
.EQUATE
.EQUATE
.EQUATE
.EQUATE
.EQUATE
0
2
4
6
8
9
;
;
;
;
;
;
91
AffGros:
SUBSP
STA
STX
LDX
STX
6,i
AvieuxA,s
AvieuxX,s
0,i
Aligne,s
;
;
;
;
;
LDX
CPX
BREQ
LDA
ADDX
STX
LDX
Boucle4: CPX
BREQ
ADDX
ASLA
BRC
CHARO
BR
affChar: CHARO
BR
FinBouc4: CHARO
BR
Aligne,s
10,i
FinBouc3
Amatrice,sxf
1,i
Aligne,s
0,i
8,i
FinBouc4
1,i
FinBouc3: LDA
STA
LDA
LDX
ADDSP
RET0
Aretour,s
Amatrice,s
AvieuxA,s
AvieuxX,s
9,i
Boucle3:
affChar
32,i
Boucle4
Achar,s
Boucle4
10,i
Boucle3
;
;
;
;
;
;
.EQUATE
.EQUATE
0
2
; Sauvegarde du registre X
; Sauvegarde du registre A
92
retour:
matrice:
char:
resultat:
4
6
8
10
;
;
;
;
Adresse de retour
Adresse de la matrice de caractres
Un caractre
Emplacement du caractre dans la matrice
GetIndex: SUBSP
STA
STX
LDX
LDBYTEX
CPX
BRGT
CPX
BRGT
CPX
BRGT
CPX
BRGE
4,i
vieuxA,s
vieuxX,s
0,i
char,s
122,i
autre
96,i
minus
90,i
autre
65,i
majus
;
;
;
;
;
;
;
;
;
;
;
;
;
autre:
LDX
BR
SUBX
BR
SUBX
52,i
mulDix
71,i
mulDix
65,i
; }
;
; Ajuste l'index en consquence du type de caractre
;
;
STX
ASLX
ASLX
ADDX
ASLX
ADDX
resultat,s
STX
LDA
STA
LDA
LDX
ADDSP
RET0
resultat,s
retour,s
char,s
vieuxA,s
vieuxX,s
8,i
minus:
majus:
mulDix:
.EQUATE
.EQUATE
.EQUATE
.EQUATE
.END
resultat,s
matrice,s
;
;
;
;
;
;
;
;
93
94
chargement et de lexcution des programmes (premiers apparus sur lIBM 704). Les travaux taient placs en lot,
les uns la suite des autres, puis chargs et excuts dans lordre, tel quillustr ci-aprs.
Sur une machine lente qui nexcute quun programme la fois, la transition dune tche lautre est un
problme important. Aprs lexcution dune tche, loprateur doit prparer lordinateur pour la tche suivante :
chargement des cartes du compilateur, du programme, des donnes dans le lecteur de cartes, chargement du
papier dsir dans limprimante, chargement des bandes et des dispacks, etc. Durant ce temps, la machine est en
attente.
Dans le cas dun ordinateur lent (disons 1 000 instructions/seconde), ceci nest pas un gros problme; cinq
minutes de prparation peuvent tre suivies de plusieurs heures de traitement. Considrons lutilisation suivante
du temps :
Avec un ordinateur plus rapide, le temps de traitement diminue mais pas le temps de prparation. Le ratio
dinactivit de la machine devient alors problmatique. Une partie substantielle de la disponibilit de lordinateur
est perdue et on ne peut comprimer la dure de la prparation.
Une solution partielle trs longtemps utilise dans lindustrie t de regrouper (Scheduling) lexcution des
tches qui ncessitent le mme genre de prparation. Voici un exemple de tches non regroupes pour lesquelles
lexcution en squence ncessite quatre changements de papier limprimante:
Tche
Papier
A
B
8,5 x 11
8,5 x 14
8,5 x 11
8,5 x 14
95
Le regroupement tait souvent effectu laide dune classification quelconque. Par exemple les tches
dessais et de compilation peuvent se voir assigner la classification A, qui nutilisera que le lecteur de cartes et
limprimante. Dautres tches peuvent se voir assigner une classification B pour lusage dun ruban, C pour lusage
de plusieurs rubans et D pour lusage dun dispack. En prcdant chaque tche dune carte didentification
permettant loprateur didentifier le type de tche dont il sagit (A, B, C ou D), ce dernier est en mesure de
regrouper lexcution des tches ncessitant la mme prparation. Ainsi, la disponibilit des ressources
dentre/sortie peut tre utilise pour le regroupement des tches : une tche ncessitant lusage de plusieurs
rubans peut tre prpare pendant lexcution dune tche qui ne ncessite aucun ruban.
Lenchanement automatique des travaux tait possible grce un moniteur denchanement qui lisait les
cartes et effectuait les actions correspondantes sans interruption (ex : IBSYS de IBM). Ces moniteurs taient en
mesure dinterprter les commandes et informations situes sur les cartes de contrle. Lhabitude de placer sur
une carte le type de travail et les ressources requises a donn lieu aux langages contemporains de contrle des
travaux (Job Control Language ou JCL sur MVS et TSO) qui ont ventuellement t ports sur terminal.
En cas derreur dans lexcution, ces moniteurs taient galement capables dabandonner un programme
et de passer au suivant.
Les moniteurs denchanement ont donn naissance ce que nous appelons le traitement par lots. Ceci a
permis le dveloppement des Service Bureau, socits qui vendent du temps machine des clients dont les
travaux ne justifient pas lachat dun ordinateur.
96
Pourquoi ne pas garder le compilateur COBOL sur disque et le remplacer par une carte dappel indiquant
au programme de chargement o le trouver?
Pourquoi ne pas placer le programme de tri sur disque galement et le remplacer lui aussi par une carte
dappel suivie dune autre indiquant simplement sur quels champs doit seffectuer le tri?
Pourquoi ne pas conserver galement la version excutable du programme sur disque?
Le compilateur et le programme de tri sont conservs dans des librairies. Quelques programmes spciaux
doivent tre utiliss pour entretenir les librairies (ajout et retrait) et pour charger les programmes en mmoire
principale (loader). En plus de rduire le nombre de cartes lire et de remplacer linput lent par cartes par un
input plus rapide sur disque, ltape de compilation a t limine. Lutilisation de librairies rduit
substantiellement le temps dexcution des programmes laissant ainsi plus de temps pour dautres tches,
augmentant par consquent le dbit. On doit bien sr payer un prix pour cette efficacit additionnelle. Tous ces
programmes (compilateurs, chargeurs, diteurs de liens et gestionnaires de librairie) prennent de lespace disque
et du temps dexcution UCT. Tous ces programmes et ces cartes dinstruction neffectuent aucun travail direct. Ils
ne font que supporter les programmes dapplication. Quoique dispendieux, les bnfices obtenus de lutilisation
de logiciels systme (System Software) dpassent largement les cots.