0% ont trouvé ce document utile (0 vote)
7 vues15 pages

Data Coding (Chapter 1)

Ce document présente la structure fondamentale d'un ordinateur, y compris ses composants principaux tels que l'unité de contrôle, l'unité arithmétique et logique, et la mémoire. Il aborde également la représentation de l'information, les types de mémoires, et les principes de programmation en assembleur, en se concentrant sur les instructions à 0, 1, 2 et 3 adresses. À la fin du cours, les étudiants doivent être capables de modéliser des problèmes et de les résoudre à l'aide de circuits logiques et de programmation en assembleur 8086.

Transféré par

ftnbyzry5c
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues15 pages

Data Coding (Chapter 1)

Ce document présente la structure fondamentale d'un ordinateur, y compris ses composants principaux tels que l'unité de contrôle, l'unité arithmétique et logique, et la mémoire. Il aborde également la représentation de l'information, les types de mémoires, et les principes de programmation en assembleur, en se concentrant sur les instructions à 0, 1, 2 et 3 adresses. À la fin du cours, les étudiants doivent être capables de modéliser des problèmes et de les résoudre à l'aide de circuits logiques et de programmation en assembleur 8086.

Transféré par

ftnbyzry5c
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

DATA CODING

DATA CODING

Objectifs:
Présenter la structure fondamentale d'un ordinateur, son rôle et le principe de
résolution de problème à l'aide de l'ordinateur. Introduire la notion de représentation
de l'information, la logique des circuits combinatoires et séquentiels. A la fin de ce
cours, l'étudiant doit être capable de définir les composants principaux de
l'ordinateur, il doit savoir écrire des codes pseudo assembleur à 0, 1, 2 et 3 adresses
et doit être capable de programme en assembleur 8086 dans l’environnement NASM
(Netwide Assembler). Il doit être également capable étant donné un problème
courant de le modéliser et le réaliser à l'aide de circuits logiques.

Bibliographie:
 Principles Of Computer Science, Carl Reynolds and Paul Tymann, Schaum’s
Outline Series Mcgraw-Hill
 Architecture de l’ordinateur : Cours et exercices, Andrew Tanenbaum,
JeanAlain Hernandez et René Joly ; 4e édition, Dunod.
 Systèmes numériques, 9e édition, Thomas L. Floyd, les éditions Reynald Goulet
Inc.
 Initiation au langage d’assemblage x86, Emmanuel Saracco, [Link]
 NASM — The Netwide Assembler, version 2.07, The NASM Development
Team

Page 1
DATA CODING

CHAPITRE I : Structure et fonctionnement d’un ordinateur

I. Schéma simplifié d’un ordinateur


Un ordinateur est un assemblage de composants logiques qui fonctionne de façon
logique ou combinatoire. Il comprend 5 parties:

(1) Unité de contrôle (CU : control unit)


(2) Unité arithmétique et logique (ALU : arithmetic and logical unit)
(3) Unité centrale (CPU : central processing unit)
(4) Mémoire
(5) Périphériques d’entrée/sortie

II. Mémoire centrale

C’est un ensemble d’emplacements ou cases qui ont la même taille. Une case est
généralement appelée un mot. La mémoire d’un ordinateur est réalisée à l’aide
d’éléments électronique appelés bascules. Une bascule peut se mettre dans deux états
: elle peut être sous tension ou hors tension. On représente l’état sous tension par 1 et
hors tension par 0. La représentation 1 et 0 est appelée représentation binaire et les
chiffres 1,0 sont encore appelés bit.

Page 2
DATA CODING

La technologie de circuit intégré permet d’assembler plusieurs millions de


bascules sur une petite surface.
Une case de la mémoire peut contenir soit une adresse, soit une donnée et dans
chaque cas la représentation est sous forme d’une chaîne de bits. Chaque case ou
chaque mot d’une mémoire est identifiée par une adresse qui est unique. Les
emplacements sont disposés de façon séquentielle et portent les numéros 0 à -1, n
étant le nombre de bits représentant une adresse mémoire.
Dans une mémoire de taille mots les adresses varient de 0 à -1. A chaque
mot de la mémoire on associe aussi 2 entités : son unique adresse et son contenu qui
peut varier. Généralement la mémoire d’un ordinateur est décrite par 2 paramètres :
la taille d’un mot et le nombre de mots que comporte la mémoire. Généralement, le
nombre de mot est une puissance de 2 et l’unité c’est = 1024 =1kilobit.
La taille d’un mot varie généralement en multiple de ou octet. Il ya 2
opérations fondamentales qui peuvent affecter une case : lecture et écriture.
Les 2 opérations sont représentées par :

Lecture Ecriture

Bus de données Bus d’adresses

On précise l’adresse du mot, on envoie le signal de contrôle, on précise la


donnée.
Quel que soit le type d’opération, la donnée écrite ou transmise est disponible
en quelques nano seconde.
Exemple :
=256 mots
Longueur d’une adresse 8 bits
On veut représenter 0110
Dans la zone mémoire d’adresse 175 = 10111001

Page 3
DATA CODING

Lecture Adresse

Ecriture 0
.
.
.
0 1 1 0 174
0110 10111001

Registre de Registre
données d’adresse

Les différents types de mémoires


Il existe plusieurs types de mémoires :
 Mémoire à accès direct ou aléatoire ou RAM (random acess memory) ici
le temps d’accès à un mot ne dépend pas de l’emplacement de ce mot dans la mémoire
 Mémoire à accès séquentielle ou SAM (séquential acess memory) le
Temps de lecture et d’écriture dépend de l’emplacement.

On perd le contenu de ces types de mémoire lorsque la machine est mise hors tension.
Les données à conserver doivent toujours résider dans la mémoire secondaire ou de masse
(disque dur, disquette, CD, DVD …). Les données manipulées par l’unité centrale résident
dans la mémoire vive ou centrale ou RAM.
 ROM (read only memory) fait pour contenir des logiciels, des
programmes particuliers comme le système d’exploitation. Le contenu d’un ROM ne
peut être modifié, c’est aussi une mémoire à accès aléatoire.
 RWM (read write memory) ou mémoire centrale.

III. Unité centrale


Elle comprend l’unité de contrôle et l’unité arithmétique et logique. Elle est
organisée au tour d’un bus.

Page 4
DATA CODING

UAL

Registres
Pointeur
Registre
Instruction Registre Registre
d’adresse tampon

Les registres sont des emplacements de mémoires qui ont un temps d’accès court,
leurs tailles varient selon l’usage.

a) Unité arithmétique et logique ou UAL

Elle effectue les opérations arithmétique et logique. Les opérandes de ces


opérations se trouvent généralement en mémoire centrale, mais pour certains
ordinateurs (très puissant) les opérandes résident dans des registres spécialisés. Pour
les PC, les registres de données ont généralement 8 bits alors que les registres d’adresse
ont 16 bits. Beaucoup d’ordinateurs ont un registre spécial appelé accumulateur. Il
contient à la fois l’un des opérandes et le résultat de l’opération arithmétique.
L’unité arithmétique et logique contient aussi un registre drapeau. Ce Registre
contient une information qui caractérise le résultat d’une opération arithmétique entre
autre : résultat nul, négatif, positif, dépassement de capacité (over flow ou Under flow)
ou s’il y a eu une retenue.

Entrée A Résultat

Entrée B UAL Drapeau

Signaux de contrôle
indiquant la fonction à

Composantes de l’UAL
 additionneur
 circuit des tests logiques
 Circuit de décalage des bits (permuter ou décaler d’une position)
Page 5
DATA CODING

 circuit de comparaison
 circuit des tests arithmétiques
 Circuit de multiplication ou de division

b) unités de contrôle

Elle supervise le fonctionnement de l’ordinateur en particulier, elle contrôle le décodage


et l’exécution des instructions. Elle contrôle donc les cycles de chargement et d’exécution qui
est résumé sur le schéma ci-dessous.

Bus d’adresse

Bus de donnée

Registre Buffer
d’adress

Pointer Registre Mémoire


d’instruction

UAL
UC

 Cycle de chargement

En générale les instructions sont lus une à une dans la mémoire, décodées puis
exécutées. Les étapes du cycle de chargement sont :
 Charger le contenu du pointeur dans le registre d’adresse mémoire.
 Demander à la mémoire de lire la donnée et de la placer sur le bus.
 Ranger la valeur lue dans le buffer de l’unité centrale.
 Transférer la donnée du buffer dans le registre d’instruction.
 Incrémenter le pointeur d’une unité.

Ces étapes sont exécutées par des signaux envoyés par l’unité de contrôle.

 cycle d’exécution

Page 6
DATA CODING

Les étapes de ce cycle varient avec les ordinateurs et la structure des


instructions.
Exemple : pour une machine disposant d’un accumulateur et effectuant une
addition. L’un des opérandes se trouve dans l’accumulateur et l’autre dans un registre
spécialisé ou en mémoire.
Les étapes du cycle d’exécution sont :
 Transférer le contenu de l’accumulateur dans l’UAL
 Transférer le contenu du registre indiqué dans l’UAL
 déclencher l’addition
 Transférer le résultat dans l’accumulateur.
Si par contre l’un des opérandes se trouve dans une adresse mémoire, le cycle
est plus long. En plus de ces 4 étapes,
 On transfert le contenu de la mémoire sur le bus de donnée,
 On transfert le contenu du bus de données dans le buffer,
 Puis dans le registre de données et on déclenche l’opération.

IV. Les éléments d’entrées et sorties


C’est par ces éléments que l’usager communique avec ordinateur. L’unité
d’entrée est utilisée par l’usager pour envoyer soit une commande (un programme)
soit une donnée à un programme pour son exécution. L’unité de sortie est utilisée par
la machine pour renvoyer le résultat relatif à la commande.
Comme unité d’entrée nous avons :
 le clavier
 la tablette optique
 le scanner
 la souris
Pour la sortie il y a l’imprimante, l’écran qui affiche le résultat et les commandes.

V. Comment résoudre un problème à l’aide d’un ordinateur


Pour résoudre un problème à l’aide d’un ordinateur, il faut d’abord trouver un
moyen de communication avec ce dernier. La communication se fait à l’aide d’un
programme (groupe de commande) ou à l’aide d’une commande.
Il existe en générale deux types de communication.

Page 7
DATA CODING

 Batch

Dans ce système le programmeur n’est pas relié directement à l’ordinateur. Les


commandes doivent être regroupées et renvoyées à la machine par l’intermédiaire
d’un système d’exploitation. Pendant l’exécution de ces commandes, la machine
interrompe toute communication avec l’extérieur.
 System interactif

L’usager est en communication direct avec la machine. Les commandes sont


saisies directement sur le clavier et renvoyées à la machine. On peut aussi écrire des
programmes qui pendant l’exécution génèrent une communication directe avec le
programmeur.
c) comment écrire et exécuter un programme

 Langage compilé

La machine ne manipule que des informations représentées en binaire. L’être humain


préfère manipuler les informations dans un langage qui lui est proche. Pour résoudre
le problème, on a créé un programme particulier qui accepte un programme écrit dans
un langage proche de l’être humain et le transforme en un programme équivalent en
binaire. La transformation suit un certain nombre de règles et une syntaxe qui sont
propre au système. Ces règles et la syntaxe définissent le langage, le système est appelé
compilateur.
Le premier compilateur (1955) fut le compilateur Fortran (formula translation)
traducteur de formules mathématiques
Les différentes transformations suivent le schéma ci-dessous.

Recompiler à modification des erreurs


Fichier Listing
Rejeté

NON

Programme Fichier
OK Code
dans un Système objet
langage de
Compilateur Objet
d’exploi
haut niveau tation

Programme
source Code
Editeur de lien
exécutable

Page 8
DATA CODING

L’éditeur des liens vérifie si le programme invoque des fonctions qui résident dans la
bibliothèque du système, retrouve ses codes et les adjoints aux codes objets. Lorsqu’on
demande d’exécuter le programme, le système d’exploitation charge le code
d’exécution en mémoire et déclenche le processus d’exécution. On peut demander au
compilateur de créer le fichier listing même s’il n’ya pas d’erreur.
Tout programme bien compilé ne donne nécessairement pas de bon résultat. Le
compilateur compile toutes les instructions même s’il y a des erreurs.
 Langage interprété exemple : BASIC
Dans ce langage l’interprète joue le rôle de compilateur et d’exécuteur, après
compilation de toute instruction, elle est exécutée tout de suite. S’il y a une erreur dans
une instruction, l’interpréteur s’arrête et rejette le reste du programme.

 Langage assembleur
Un langage assembleur est à cheval entre un langage de haut niveau et un langage
machine (binaire). On a la possibilité de faire usage d’emplacement de mémoire à cet
effet, on se sert d’adresse symbolique. Une instruction a la structure suivante :
[ad] CO OP
ad= adresse (on peut la préciser ou pas)
Co= code de l’opération à effectuer Op=opérande.
On peut avoir 0, 1, 2, 3 opérande. Dans cas de plus d’un opérande ils sont séparés par
des virgules.
Les opérandes sont généralement les adresses de mots ou d’instructions.
L’interprétation des mots dépend du code. On se sert en général des symboles comme
adresse de mot mémoire ou d’instructions.
L’adresse symbolique consiste à donner au choix un symbole à l’adresse mémoire

(1)

Page 9
DATA CODING

Algorithme de
résolution

(2)

Vérification non
(nous même) Modification

oui
(3)

Traduction en langage
de haut niveau

(4)

Programme
source

(5)

Vérification non
(nous même) Corriger

oui
(6)

Compiler non
(compilateur) Rejet et
modification
Ok
(7)

Fichier Objet

(8)

Editeur de lien Rejet, modifier


le fichier
source et
(9)

Fichier
exécutable
(10)

Résultat Exécuteur Résultat bon


mauvais

Page 10
DATA CODING

VI. Programme assembleur à 0,1, 2,3 adresses


Toute instruction a la structure suivante :[AD] Co OP

a) Instructions à 3 adresses

Sa structure est : [AD] CO OP1, OP2, OP3 ou OP1, OP2 et Op3 sont des adresses
symboliques des mots mémoires,
Interpretations: OP3 OP1 Co OP2
Example: CO: ADD= addition
MPY= multiplication
SUB= soustraction
DIV= division
Supposons qu’on a X=A+B
L’équivalent c’est ADD A, B, X
Y = C-D SUB C, D, Y
Z = A/B DIV A, B, Z
S=TU MPY T, U, S
Exemple : on veut A 0 SUB A, A, A
On aura alors A A–A
Ou on veut A B,
On aura SUB A, A, A
ADD A, B, A

b) Instructions à 2 adresses

Sa structure est [AD] C0 OP1,OP2


Interprétation : OP1 OP1 C0 OP2
Comment effectuer donc X= A+B
SUB X, X X 0
ADD X, A X A+0
ADD X, B X A+B

c) Instructions à une adresse

Sa structure: [AD] Co OP
Ici, on suppose que l’accumulateur dispose du 1er opérande et que le 2nd se
trouve dans le mot mémoire qui a pour adresse OP
Interprétation : AC AC Co OP
En plus des opérations arithmétiques, on dispose de deux instructions :
Chargement de l’accumulateur et déchargement

Page 11
DATA CODING

 Chargement : LOAD OP : AC OP
 Déchargement : STORE OP : OP AC
Comment effectuer X= A+B
On a LOAD A: AC A
ADD B : AC AC+B ou AC A+B
STORE X : X AC ou X A+B

d) Instruction à 0 adresse

La structure est la suivante : Co, l’adresse des opérandes n’est pas indiquée sauf pour
deux instructions particulières : chargement et déchargement. Cette structure suppose
que les opérandes sont disposés de façon séquentielle dans une pile, les résultats des
opérations arithmétiques sont aussi sauvegardés dans la pile. Une pile fonctionne sur
le principe LIFO (last in first out), "premier entré dernier servi". Interprétation des
opérations arithmétiques
On suppose qu’à tout moment, la pile contient toutes les données nécessaires, en
particulier, la pile contient deux entrées (mots) :
TL (tête de pile)
SL (entrée située juste en dessous de la tête de pile)
Instruction de chargement PUSH
PUSH X (mettre au-dessus de la pile le contenu de X)

A 4

-5
B PUSH B 3

3
-5
PUSH C C

Instruction de déchargement POP


POP X, cette instruction enlève le contenu du mot qui a pour adresse TL (1er
élément) et le transfert dans le mot qui a pour adresse X.

Ces deux instructions provoquent aussi la modification de TL et SL ainsi :


 Après PUSH TL devient TL+1 et SL devient TL on a donc

Page 12
DATA CODING

 Après POP
Interprétation des opérations arithmétiques
CO := (TL) CO (SL) SL, POP
Avec CO = ADD, SUB, DIV ou MPY
Exemples
ADD (SL) + (TL) SL, POP

4 4
TL 4
7
3 3 7

SL 3 -5
-5 -5
Pile après le pop
Pile avant l’addition Pile avant le pop

SUB : (SL) – (TL) SL ,POP


DIV :(SL) /(TL) SL ,POP
MPY : (SL) (TL)

Exemple : on a Z = A B + C/D
Ecrire des programmes assembleurs à 0,1 2 et 3 adresses qui permettent d’évaluer
l’expression ci-dessus.
e) Instruction de débranchement (pour les 4 types d’instructions)

Ces instructions permettent de rompre l’exécution séquentielle d’un programme, elles


font usage de l’adresse d’une instruction. Les instructions de débranchement sont :
BR X = débranchement inconditionnel à l’instruction que pour adresse X
BGT X= débranchement à l’instruction que porte l’adresse X si le résultat (tampon) est
positif ou > à 0
BGE X= débranchement à l’instruction que porte l’adresse X si le résultat de
l’opération arithmétique est 0 (positif ou nul)
BLT X débranchement à l’instruction que porte l’adresse X si le résultat est < à X
(négatif)
BLE X si le résultat est négatif ou nul
BEZ X si le résultat est nul

Page 13
DATA CODING

f) Instruction de lecture et d’écriture

 Lecture : READ X cette instruction nous permet de lire une valeur de


l’extérieur et de la ~ 16 ~transférer dans le mot qui pour adresse
symbolique X.
 Ecriture WRITE X nous permet d’envoyer à l’extérieur la valeur du mot
qui pour adresse symbolique X a une unité de sortie.

Page 14

Vous aimerez peut-être aussi