Vous êtes sur la page 1sur 189

FORMATION

Initiale

ENITE
FILIERE : Ingnierie informatique

1re anne

Architecture des ordinateurs

ARCHITECTURE DES ORDINATEURS

3/19/13 ADIL RIZKI

11

Mars

Carte mre Abit KT7A


Architecture des ordinateurs

(1/3)
I/O s Connecteur s PCI

Support du processeur (AMD Athlon ou Duron)

Connecteur s ISA Ventilateu r du Chipset Slots mmoire (SDRAM) Connecteurs IDE

Connecteur AGP

3/19/13

22

Architecture des ordinateurs

Carte ABIT KT7A : Topologie

(2/3)

3/19/13

33

Architecture des ordinateurs

Carte ABIT KT7A :

Diagramme

(3/3)

3/19/13

44

Modle en couches
Architecture des ordinateurs

6 Programmes d'application

(Traitement de texte, PAO, Jeux, ) (Fortran, Cobol, C, C++, Java, ) (Langage natif symbolique de la machine) (Gestion des taches, des ressources : mmoire, I/Os,) (Langage natif du processeur)

5 Langages de programmation 4 Langage assembleur

3 Noyau du systme d'exploitation

2 Langage machine : jeu dinstructions 1 Langage de microprogrammation 0 Logique numrique


(Couche matrielle : circuits logiques, lectroniques) 55

3/19/13

Historique :

Architecture des ordinateurs

les thoriciens

Antiquit : Aristote fonde les bases de la Logique 1675 : 1854 : base Leibnitz invente le systme binaire moderne (0 et 1) Boole publie The Mathematical Analysis of Logic qui dcrit un systme de logique symbolique la des machines modernes: lalgbre de Boole.

1936 : Turing dfinit la machine qui porte son nom 1938 : Shannon fait la synthse entre lalgbre de Boole et les circuits lectriques. 1945 : Von Neumann dfinit larchitecture des ordinateurs modernes 1948 : Shannon pose les bases de la thorie de linformation. 66

3/19/13

Historique :

Architecture des ordinateurs

les ralisations

1623 : 1642: 1694: 1728 :

Schickard conoit la premire machine calculer Pascal ralise la Pascaline (addition, soustraction) Leibniz : ajoute la multiplication et la division Falcon : commande pour mtiers tisser

1805 : Jacquard : programmation par cartons perfores articuls 1840 : 1884 : Babbage : Machine analytique Hollerith : tabulatrice cartes perfores

1945 : Von Neumann dfinit larchitecture de lordinateur universel 1949 : Wilkes ralise Cambridge le premier ordinateur : l EDSAC (Electronic Delay Storage Automatic Calculator) 77

3/19/13

Historique :

Architecture des ordinateurs

les tapes technologiques

1890 : Carte perfore (Hermann Hollerith) 1904 : Tube vide : diode (John Fleming) triode 1947 : Transistors (Schockley, Brattain, Bardein) 1950 : Mmoires Tores (Papian) 1958 : Circuits intgrs (Killy)

3/19/13

88

Historique :

Architecture des ordinateurs

lvolution technologique
Gnration 0 Gnration 1 Gnration 2 Gnration 3

< 1900

: Calcul mcanique

1946-1957 : Tubes vide 1958-1964 : Transistors et circuits discrets 1965: SSI (Small Scale Integration) jusqu 100 circuits par puce

-1970 : MSI (Medium Scale Integration) de 100 3000 circuits par puce 1971-1977 : LSI (Large Scale Integration) de 3000 100 000 circuits par puce 1978-2002 : VLSI (Very Large Scale Integration) 4 de 105 108 circuits par puce Demain : ULSI (Ultra Large Scale Integration) > 108 circuits par puce 99 Gnration

3/19/13

Historique :

Loi de Moore
(1/2)

Architecture des ordinateurs

Loi de Gordon Moore

(Cofondateur dIntel)

Augmentation de la densit des composants :


Le nombre de transistors sur une puce double tous les 18 mois.

Le cot dune puce reste pratiquement constant. Laugmentation de la densit des circuits saccompagne:

dune augmentation de performance, dune rduction de la consommation lectrique, Dune augmentation de la fiabilit.

3/19/13

1010

Historique :

Loi de Moore
(2/2)

Architecture des ordinateurs

(source : http://www.intel.com/research/silicon/mooreslaw.htm )

3/19/13

1111

Historique :
Date 1971 1972 1974 1978 1982 1985 1989 1994 1995 1997 1999 2000 2002 Pentium IV Processeur 4004 8008 8080 8086 80286 80386 80486 Pentium Pentium Pro Pentium II Pentium III Nb Transistors 2 300 6 000 4,500 29 000 134 000 275 000 1 200 000 3 100 000 5 500 000 7 500 000 9 500 000 42 000 000 55 000 000 Srigraphie

volution des Processeurs


Largeur bus 4 bits 8 bits 8 bits 16 bits 16 bits 32 bits 32 bits 32 bits 64 bits 64 bits 64 bits 64 bits 64 bits Mmoire 640 octets 16 Ko 64 Ko 1 Mo 16 Mo 4 Go 4 Go 4 Go 64 Go 64 Go 64 Go 64 Go 64 Go Horloge 108 KHz 200 KHz 2 MHz 8 MHz 10 MHz 16 MHz 25 MHz 66 MHz 150 200 MHz 233 300 MHz 450 600 MHz 1,4 1,5 GHz Up to 2,8 GHZ 10,00 m 6,00 m 6,00 m 3,00m 1,50 m 1,50 m 1,00 m 0,80 m 0,35 m 0,35 m 0,25 m 0,18 m 0,13 m

(source : http://www.intel.com/research/silicon/mooreslaw.htm )

3/19/13

Architecture des

1212

Historique :

la premire machine
Additions et soustraction de nombres dcimaux

1642 La Pascaline invente par Blaise Pascal

Dta il Machine 8 chiffres

Machine ouverte

3/19/13

Architecture des

1313

Historique :

les premires machines


Architecture des ordinateurs
And Calculator)

1945

18000 Tubes 30 tonnes Multiplie 2 nombres de 10 chiffres en 3 millisecondes

lENIAC (Electronic Numerical Integrator

Changement dune lampe

Cblage du programme

3/19/13

1414

Historique :

quelques machines intermdiaires

1964 IBM lance la famille 360 des ordinateurs compatibles


Dbut de lre des Mainframes

1980 IBM sort le PC (Personal Computer)


Dbut de lre de linformatique individuelle

3/19/13

Architecture des

1515

Historique :

les machines en 2002


(1/2)

2002 Ordinateur de bureau (DeskTop)


Power PC G4 Processor 15inches flat pannel LCD Display

Apple iMac

2002 Ordinateurs Portable et Ultraportable

Latest Intel processors 1.20-GHz, Mobile Intel Pentium III ProcessorM


Integrated 802.11b wireless LAN technology

HP omnibook 510

3/19/13

Architecture des

1616

Historique :

les machines en 2002


(2/2)

2002 Station de Travail (Workstation)


Up to two 1.05-GHz UltraSPARC III Cu processors

64 bits Architecture up to 8 GB of main memory up to 146 GB disk storage.

Sun Blade[tm] 2000

2002 Serveurs / Mainframe


Main Memory Up to 64 Go

64 bits Architecture

IBM eServer zSERIES 900

3/19/13

Architecture des

1717

1.1 Prhistoire des ordinateurs

Architecture des ordinateurs

Les premires machines calculer taient purement mcaniques : bouliers, abaques, ... (antiquit). Premire vraie machine calculer : Pascal, 1642, machine additionner. Machine multiplier : Leibniz, 1694, 1818

3/19/13

1.2 Machines lectromcaniques

Architecture des ordinateurs

Machine calculer cartes perfores : Hermann Hollerith, 1885, facilite le recensement amricain. Machines industrielles pour la comptabilit et les statistiques. Ces machines sont base de relais lectromcaniques (Aiken et Stibitz, 1936-1939).

3/19/13

1919

1.3 Machines lectroniques

Architecture des ordinateurs

Premire machine calculer lectronique : ENIAC, 1944, Eckert et Mauchly, 18000 tubes lectroniques, machine programme cbl. Machine programme enregistr: John Von Neumann, 1946, les instructions sont enregistres dans la mmoire du calculateur : ordinateur.
3/19/13 2020

Architecture des ordinateurs

Micro-ordinateurs : 1969-70, utilisation des circuits intgrs LSI. Premier microprocesseur : Intel, 1971, microprocesseur 4004, puis 8008, premier micro-ordinateur : le Micral, 1973, France, puis lAltair, 1975, Etats-Unis.
3/19/13 2121

1.4 Machines actuelles

Architecture des ordinateurs

Ordinateurs de plus en plus puissants, bass sur des microprocesseurs performants : Pentium, Power PC, ... Nouvelles architectures de microprocesseurs : RISC. Applications multimdia, rseaux, ... 2222

3/19/13

2.1 Structure dun calculateur

Architecture des ordinateurs

3/19/13

2323

Structure dun calculateur

Architecture des ordinateurs

Llment de base dun calculateur est constitu par lunit centrale de traitement (UCT) Ou CPU : Central Processing Unit). La CPU est constitue :

dune unit arithmtique et logique (UAL): cest lorgane de calcul du calculateur;


2424 de registres : zones de stockage des

3/19/13

Structure dun calculateur

Architecture des ordinateurs

Lunit dentres/sorties (E/S) est un intermdiaire entre le calculateur et le monde extrieur. Lunit de transfert est le support matriel de la circulation des donnes. Les changes dordres et de2525 donnes

3/19/13

2.2 Organisation de la mmoire centrale

Architecture des ordinateurs

La mmoire peut tre vue comme un ensemble de cellules ou cases contenant chacune une information :
une 3/19/13 instruction

2626

La ralisation matrielle des ordinateurs est gnralement base sur larchitecture de Von Neumann:
Priph ri ques

2.3 Circulation de linformation dans un calculateur

Architecture des ordinateurs

3/19/13

2727

Le P change des informations avec la mmoire et lunit dE/S, sous forme de mots binaires, au moyen dun ensemble de connexions appel bus. 3/19/13 2828

Priph riques

Architecture des ordinateurs

Le bus

Architecture des ordinateurs

Le bus peut tre dcompos en trois bus distincts :

le bus dadresses permet au P de spcifier ladresse de la case mmoire lire ou crire; le bus de donnes permet les transferts entre le P et la mmoire ou les E/S; le bus de commande transmet les ordres de lecture et dcriture de la mmoire et des E/S.
2929

3/19/13

Architecture des ordinateurs

3/19/13

3030

Un P se prsente sous la forme dun circuit intgr muni dun nombre gnralement important de broches. Exemples :

2.4 Description matrielle dun microprocesseur

Architecture des ordinateurs

Intel 8085, 8086, Zilog Z80 : 40 broches, DIP (Dual In-line Package); Motorola 68000 : 64 broches, DIP; Intel 80386 : 196 broches, PGA (Pin Grid 3131

3/19/13

schma fonctionnel :

Architecture des ordinateurs

3/19/13

3232

2.5 Fonctionnement dun microprocesseur

Architecture des ordinateurs

Un P excute un programme qui est une suite dinstructions stockes dans la mmoire. Une instruction peut tre code sur un ou plusieurs octets.

Format dune instruction :

3/19/13

3333

Architecture des ordinateurs

Rangement en mmoire:

3/19/13

3434

Architecture des ordinateurs

Pour excuter les instructions dans lordre tabli par le programme, le microprocesseur doit savoir chaque instant ladresse de la prochaine instruction excuter.

Exempl e:

Le P utilise un registre contenant cette information.

Ce registre est appel pointeur dinstruction (IP : Instruction Pointer) ou compteur 3/19/13 dinstructions ou

3535

Remarques :

Architecture des ordinateurs

Pour savoir quel type dopration excuter (addition, soustraction, ...):

le microprocesseur lit le premier octet de linstruction pointe par le pointeur dinstruction (code opratoire) et le range dans un registre appel registre dinstruction.

Le code opratoire est dcod par des circuits de dcodage contenus dans le P . Des signaux de commande pour lUAL sont produits en fonction de lopration demande qui est alors excute.

3/19/13

3636

Les registres

Architecture des ordinateurs

Pour excuter une instruction, lUAL utilise des registres de travail, Exemple : laccumulateur, registre temporaire recevant des donnes intermdiaires. Pendant que linstruction est dcode, le pointeur dinstruction est incrment de faon pointer vers linstruction suivante :

3/19/13

3737

Les registres

Architecture des ordinateurs

A la suite de chaque instruction, un registre du P est actualis en fonction du dernier rsultat : cest le registre dtat du P .

Chacun des bits du registre dtat est un indicateur dtat ou flag (drapeau).

Exemple : registre dtat du P Z80 :

3/19/13

3838

Architecture des ordinateurs

Les indicateurs dtat sont activs lorsquune certaine condition est remplie,

Exemple : le flag Z est mis 1 lorsque la dernire opration a donn un rsultat nul, le flag C est mis 1lorsque le rsultat dune addition possde une retenue, le flag AC: Auxiliary Carry signaleune retenue entre groupes de 4 bits(Half-byte : demi-octet) d'une quantit de 8 bits.

3/19/13

3939

Architecture des ordinateurs

Toutes ces tapes (lecture de linstruction, dcodage, excution) sont synchronises par un squenceur qui assure le bon droulement des oprations :

3/19/13

4040

Architecture des ordinateurs

Pour excuter le programme contenu dans la RAM, le squenceur du P excute lui-mme un programme appel micro-code, contenu dans une ROM lintrieur du P .

Le squenceur est dirig par une horloge qui dlivre un signal de frquence donne permettant denchaner les diffrentes tapes de lexcution dune instruction :

3/19/13

4141

Architecture des ordinateurs

Chaque instruction est caractrise par le nombre de priodes dhorloge (ou microcycles) quelle utilise (donne fournie par le fabricant du microprocesseur).

Exemple : horloge 5 MHz, priode T = 1/f = 0, 2 s. Si linstruction sexcute en 3 microcycles, la dure dexcution de linstruction est : 3 0, 2 = 0, 6 s.

Lhorloge est constitue par un oscillateur quartz dont les circuits peuvent tre internes ou externes au P .
3/19/13 4242

Architecture des ordinateurs

Structure complte dun microprocesseur simple : pour fonctionner, un microprocesseur ncessite donc au minimum les lments suivants :

3/19/13

4343

Architecture des ordinateurs

Les mmoires Deux types :

les mmoires vives (RAM : Random Access Memory) ou mmoires volatiles:

Elles perdent leur contenu en cas de coupure dalimentation. Elles stockent temporairement les donnes et les programmes. Elles peuvent tre lues et crites par le microprocesseur;

les mmoires mortes (ROM : Read Only Memory):

Conservent leur contenu en cas de coupure dalimentation. Ne peuvent tre que lues par le microprocesseur. Stockent les donnes et les programmes de manire dfinitive.

3/19/13 4444 : Les mmoires sont caractrises par leur capacit

3.2 Schma fonctionnel dune mmoire

Architecture des ordinateurs

3/19/13

4545

L'adressage mmoire

Architecture des ordinateurs

Le nombre de lignes dadresses dpend de la capacit de la mmoire :

n lignes dadresses permettent dadresser 2n cases mmoire. 8 bits dadresses permettent dadresser 256 octets. 16 bits dadresses permettent dadresser 65536 octets (= 64 Ko), ...

Exemple (consulter) : mmoire RAM 6264, capacit= 8K 8 bits : 13 broches dadresses A0 A12, 213 = 8192 = 8 Ko.
4646

3/19/13

Architecture des ordinateurs

3.3 Interfaage microprocesseur/mmoire

3/19/13

4747

Architecture des ordinateurs

Reprsentation condense :

3/19/13

4848

Temps d'accs mmoire


q

Architecture des ordinateurs

Chronogrammes de lecture/criture en mmoire Une caractristique importante des mmoires est leur temps daccs :

cest le temps qui scoule entre linstant o ladresse de la case mmoire est prsente sur le bus dadresses et celui o la mmoire place la donne demande sur le bus de donnes.

Ce temps varie entre 50 ns (mmoires rapides) et 300 ns (mmoires lentes).


4949

3/19/13

Chronogramme dcriture en mmoire :

Chronogrammes de lecture/criture en mmoire

Architecture des ordinateurs

3/19/13

5050

Architecture des ordinateurs

Remarque :
Si le temps daccs dune mmoire est suprieur une priode dhorloge (mmoire lente), le microprocesseur peut accorder la mmoire un temps supplmentaire (une ou plusieurs priodes dhorloge), la demande de celle-ci.

Ce temps supplmentaire est appel temps dattente (wait time : TW) :

3/19/13

5151

Architecture des ordinateurs

Chronogramme dcriture en mmoire :

3/19/13

5252

Connexion de plusieurs botiers mmoire sur le bus dun microprocesseur Les botiers mmoire possdent une broche note CS (Chip Select).

Architecture des ordinateurs

Si CS=0 le circuit peut tre lu ou crit. Si CS=1 le circuit est exclu du service :

ses broches de donnes D0 D7 passent ltat de haute impdance tout se passe comme si la mmoire tait dconnecte du bus de donnes du microprocesseur,
5353

3/19/13

Architecture des ordinateurs

Exemple : connexion de trois botiers mmoire dune capacit de 8 Ko chacun (13 lignes dadresses) sur un bus dadresse de 16 bits :

3/19/13

5454

Architecture des ordinateurs

3/19/13

5555

Mapping mmoire

Architecture des ordinateurs

On en dduit la cartographie ou mapping de la mmoire visible par le microprocesseur :

3/19/13

5656

Architecture des ordinateurs

Les trois bits A13, A14 et A15 utiliss prcdemment fournissent en fait 8 combinaisons, de 000 111, do la possibilit de connecter jusqu 8 botiers mmoire de 8 Ko sur le bus. La mmoire totale implante devient donc de 8 8 Ko = 64 Ko : valeur maximale possible avec 16 bits dadresses. Pour cela, il faut utiliser un circuit de 3/19/13 dcodage

5757

Architecture des ordinateurs

Table de vrit du dcodeur dadresses :


A 0 0 0 0 1 1 1 1 3/19/13 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Y0 Y1 Y2 Y3 Y4Y5Y6 Y7 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 5858

Architecture des ordinateurs

Le mapping de la mmoire devient ainsi:

3/19/13

5959

Classification des mmoires

Architecture des ordinateurs

Jusqu' la fin des annes 70, on utilisait des mmoires tore magntique, lentes de faibles capacits. Actuellement, on utilise des mmoires semi-conducteurs.

3/19/13

6060

Mmoires mortes:
q

Architecture des ordinateurs

ROM:
read Only Memory. Mmoire lecture seule, sans criture. Son contenu est programm une fois pour toutes par le constructeur.

Avantage: Faible cot. Inconvnient: ncessite une production en trs grande quantit

PROM:

Programmable Read Only Memory: ROM programmable une seule fois par lutilisateur (ROM OTP : One Time Programming) en faisant sauter des fusibles. Ncessite un programmateur spcialis : application dune tension de 3/19/13 programmation (21 ou 25 V) pendant 20 ms. 6161

Architecture des ordinateurs

EPROM :
Erasable PROM, appele aussi UVPROM. ROM programmable lectriquement avec un programmateur et effaable par exposition un rayonnement ultraviolet pendant 30 minutes. Famille 27nnn, exemple : 2764 (8 Ko), 27256 (32 Ko). Avantage : reprogrammable par lutilisateur.

EEPROM :

Electrically Erasable PROM. ROM programmable et effaable lectriquement. Lecture vitesse normale ( 100 ns). Ecriture (= effacement) trs lente ( 10 ms). Application : les EEPROM contiennent des donnes qui peuvent tre modifies de temps en temps, exemple : 3/19/13 paramtres de configuration des ordinateurs.6262

Mmoires vives :
q

Architecture des ordinateurs

SRAM: Static Random Access Memory. Mmoire statique accs alatoire, base de bascules semiconducteurs deux tats (bascules RS). Famille 62nnn, exemple : 62128 (16 Ko). Avantage : trs rapide, simple dutilisation. Inconvnient : compliqu raliser.

DRAM : Dynamic RAM. Base sur la charge de condensateurs : condensateur charg = 1, condensateur dcharg = 0.

3/19/13

Avantage : intgration leve, faible cot.

6363

Le microprocesseur Intel 8086


q

Architecture des ordinateurs

Largeur de bus:
Le microprocesseur Intel 8086 est un microprocesseur 16 bits.

Date:
apparu en 1978. Cest le premier microprocesseur de la famille Intel 80x86 (8086, 80186, 80286, 80386, 80486, Pentium, ...).

Brochage:

Il se prsente sous la forme dun botier DIP (Dual In-line 3/19/13 6464 Package) 40 broches

Architecture des ordinateurs

3/19/13

6565

Schma fonctionnel

Architecture des ordinateurs

3/19/13

6666

Description et utilisation des signaux du 8086

Architecture des ordinateurs

CLK : entre du signal dhorloge qui cadence le fonctionnement du microprocesseur. Ce signal provient dun gnrateur dhorloge : le 8284.

RESET : entre de remise zro du microprocesseur. Lorsque cette entre est mise ltat haut pendant au moins 4 3/19/13 6767il va priodes dhorloge, le microprocesseur est rinitialis:

Architecture des ordinateurs

READY : entre de synchronisation avec la mmoire. Ce signal provient galement du gnrateur dhorloge. TEST : entre de mise en attente du microprocesseur dun vnement extrieur. MN/MX : entre de choix du mode de fonctionnement du microprocesseur :
mode minimum (MN/MX = 1) : le 8086 fonctionne de manire autonome, il gnre lui-mme le bus de commande (RD, WR, ...) ; 3/19/13 6868

Architecture des ordinateurs

INTA : Interrupt Acknowledge, indique que le microprocesseur accepte linterruption. HOLD et HLDA : signaux de demande daccord daccs direct la mmoire (DMA). S0 S7 : signaux dtat indiquant le 6969

3/19/13

Chronogramme du Bus A/D

Architecture des ordinateurs

3/19/13

7070

Architecture des ordinateurs

Le dmultiplexage des signaux AD0 AD15 (ou A16/S3 A19/S6) se fait en mmorisant ladresse lorsque celle-ci est prsente sur le bus A/D, laide dun verrou (latch), ensemble de bascules D.

La commande de mmorisation de ladresse est gnre par le microprocesseur : cest le signal ALE, Address Latch Enable.

3/19/13

7171

Circuit de dmultiplexage A/D :

Architecture des ordinateurs

3/19/13

7272

Exemples de bascules D: circuits 8282, 74373, 74573

Architecture des ordinateurs

3/19/13

7373

Architecture des ordinateurs

RD : Read, signal de lecture dune donne. WR : Write, signal dcriture dune donne. M/IO : Memory/Input-Output, indique si le 8086 adresse la mmoire (M/IO = 1) ou les entres/sorties (M/IO = 0). 3/19/13 7474

Architecture des ordinateurs

3/19/13

7575

Architecture des ordinateurs

Les signaux DEN et DT/R sont utiliss pour la commande de tampons de bus (buffers) Permettant damplifier le courant fourni par le microprocesseur sur le bus de donnes.

3/19/13

7676

Architecture des ordinateurs

BHE : Bus High Enable, signal de lecture de loctet de poids fort du bus de donnes. Le 8086 possde un bus dadresses sur 20 bits, do la capacit dadressage de 1 Mo ou 512 Kmots de 16 bits (bus de donnes sur 16 bits).
3/19/13 7777

Architecture des ordinateurs

3/19/13

7878

Architecture des ordinateurs

Seuls les bits A1 A19 servent dsigner une case mmoire dans chaque banque de 512 Ko. Le microprocesseur peut ainsi lire et crire des donnes sur 8 bits ou sur 16 bits: /BHE A0 octets transfrs 0 0 1 1 0 1 0 1 les deux octets (mot complet) octet fort ( adresse impaire) Octet faible (adresse paire) aucun octet

Remaque: Le 8086 ne peut lire une donne sur 16 bits en une 3/19/13 7979 seule fois uniquement si l'octet de poids fort de cette donne est

Architecture des ordinateurs

3/19/13

8080

Architecture des ordinateurs

3/19/13

8181

Organisation interne du 8086

Architecture des ordinateurs

Le 8086 est constitu de deux units fonctionnant en parallle:

L'unit d'excution ( EU : Execution Unit); L'unit d'interface de bus (BIU: Bus Interface Unit)

3/19/13

8282

Architecture des ordinateurs

3/19/13

8383

Rle des deux units :

Architecture des ordinateurs

lunit dinterface de bus (BIU) recherche les instructions en mmoire et les range dans une file dattente ; lunit dexcution (EU) excute les instructions contenues dans la file dattente. Les deux units fonctionnent simultanment, do une acclration du processus dexcution dun programme (fonctionnement selon le principe du pipe-line).
3/19/13 8484

Registres gnraux : 4 registres sur 16 bits.

Le microprocesseur 8086 contient 14 registres rpartis en 4 groupes:


AX = (AH,AL) ; BX = (BH,BL) ; CX = (CH,CL) ; DX = (DH,DL).

Architecture des ordinateurs

Ils peuvent tre galement considrs comme 8 registres sur 8 3/19/13 8585

Architecture des ordinateurs

Registres de pointeurs et dindex : 4 registres sur 16 bits. Pointeurs :

SP : Stack Pointer, pointeur de pile (la pile est une zone de sauvegarde de donnes en cours dexcution dun programme) ; BP : Base Pointer, pointeur de base, utilis pour adresser des donnes sur la pile.
8686

3/19/13

Architecture des ordinateurs

Pointeur dinstruction et indicateurs (flags) : 2 registres sur 16 bits.

Pointeur dinstruction : IP, contient ladresse de la prochaine O D I T S Z A P C Flag instruction excuter. s: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

CF : indicateur de retenue (carry); PF : indicateur de parit; AF : indicateur de retenue auxiliaire; ZF : indicateur de zro; 8787

SF : indicateur de signe; 3/19/13 TF : indicateur dexcution pas a` pas (trap);

Architecture des ordinateurs

Registres de segments : 4 registres sur 16 bits.

CS : Code Segment, registre de segment de code; DS : Data Segment, registre de segment de donnes; SS : Stack Segment, registre de segment de pile;

ES : Extra Segment, registre de 3/19/13 segment supplmentaire pour8888 les

Gestion de la mmoire par le 8086

Architecture des ordinateurs

Lespace mmoire adressable par le 8086 est de 220 = 1 Mo Cet espace est divis en segments. Un segment est une zone mmoire de 64 Ko (65 536 octets) dfinie par son adresse de dpart qui doit tre un multiple de 16.
3/19/13 8989

Architecture des ordinateurs

Ainsi, une case mmoire est repre par le 8086 au moyen de deux quantits sur 16 bits :

ladresse dun segment; un dplacement ou offset (appel aussi adresse effective) dans ce segment. Cette mthode de gestion de la mmoire est appele segmentation de la mmoire.
9090

3/19/13

Architecture des ordinateurs

La donne dun couple (segment,offset) dfinit une adresse logique, note sous la forme segment : offset. Ladresse dune case mmoire donne sous la forme dune quantit sur 20 bits (5 digits hexa) est appele adresse physique car elle correspond la valeur envoye rellement sur le bus dadresses A0 - A19.

3/19/13

9191

Correspondance entre adresse logique et adresse physique:


ladresse physique se calcule par lexpression : adresse physique = 16 segment + offset Car le fait dinjecter 4 zros en poids faible du 3/19/13 segment revient

Architecture des ordinateurs

9292

Architecture des ordinateurs

Le registre CS est associ au pointeur dinstruction IP, ainsi la

93 93

prochaine instruction excuter se trouve ladresse logique CS : IP.

3/19/13

Architecture des ordinateurs

94 94

Mmoire accessible par le 8086 un instant donn:

les registres de segments

DS et ES peuvent tre associs un registre dindex.

Exemple :
DS : SI, ES : DI.

Le registre de segment de

pile peut tre associ aux registres de pointeurs :

SS : SP

3/19/13

Architecture des ordinateurs

3/19/13

9595

Architecture des ordinateurs

3/19/13

9696

Architecture des ordinateurs

3/19/13

9797

Gnralits:

La programmation en assembleur du microprocesseur 8086

Architecture des ordinateurs

Chaque P reconnait un ensemble dinstructions appel jeu dinstructions (Instruction Set) fix par le constructeur.

Pour les P classiques, le nombre dinstructions reconnues varie entre 75 et 150 (microprocesseurs CISC : Complex Instruction Set Computer).

Il existe aussi des P dont le nombre dinstructions est trs rduit (microprocesseurs RISC : Reduced Instruction Set Computer) : entre 10 et 30 instructions, permettant damliorer le temps dexcution des programmes.

Une instruction est dfinie par son code opratoire, valeur numrique binaire difficile manipuler par ltre humain.

3/19/13

9898

Architecture des ordinateurs

Les instructions peuvent tre classes en groupes :

instructions de transfert de donnes ; instructions arithmtiques ; instructions logiques ; instructions de branchement ...

3/19/13

9999

Les instructions de transfert:

Architecture des ordinateurs

Elles permettent de dplacer des donnes dune source vers une destination :

registre vers mmoire ; registre vers registre ; mmoire vers registre.

Remarque :
le 3/19/13

microprocesseur 8086 nautorise 100100

Architecture des ordinateurs

Syntaxe :
MOV destination,source Il existe diffrentes faons de spcifier ladresse dune case mmoire dans une instruction : ce sont les modes dadressage.

3/19/13

Exemples de modes

101101

Architecture des ordinateurs

mov bl,[1200H] : transfre le contenu de la case mmoire dadresse effective (offset) 1200H vers le registre BL. Linstruction 3/19/13 comporte

102102

Architecture des ordinateurs

On peut changer le segment lors dun adressage direct en ajoutant un prfixe de segment, Exemple : mov bl,es :[1200H]. On parle alors de forage de segment.

3/19/13

103103

Architecture des ordinateurs

Remarque :
Dans le cas de ladressage immdiat de la mmoire, il faut indiquer le format de la donne : octet ou mot (2 octets) car le 8086 peut manipuler des donnes sur 8 bits ou 16 bits.

Pour cela, on doit utiliser un spcificateur de format : mov byte ptr [1100H],65H : transfre la valeur 65H (sur 1 octet) dans la case mmoire doffset 1100H ; mov word ptr [1100H],65H : transfre la valeur 0065H (sur 2 octets) dans les cases mmoire doffset 1100H et 1101H.

3/19/13

104104

Remarque : les microprocesseurs Intel rangent loctet de poids faible dune donne sur plusieurs octets ladresse la plus basse (format Little Endian). Modes dadressage volus : adressage bas : loffset est contenu dans un registre de base BX ou BP.

Architecture des ordinateurs

3/19/13

105105

Architecture des ordinateurs

adressage index : semblable ladressage bas, sauf que loffset est contenu dans un registre dindex SI ou DI, associs par dfaut au segment de donnes. Exemples : mov al,[si] : charge le registre AL avec le contenu de la case mmoire dont loffset est contenu dans SI ; mov [di],bx : charge les cases mmoire doffset DI et DI + 1 avec le contenu du registre BX.
3/19/13 106106

Architecture des ordinateurs

Remarque : une valeur constante peut ventuellement tre ajoute aux registres de base ou dindex pour obtenir loffset. Exemple : mov [si+100H],ax qui peut aussi scrire mov [si][100H],ax ou encore mov 100H[si],ax

3/19/13

107107

Les modes dadressage bass ou indexs permettent la manipulation de tableaux rangs en mmoire. Exemple :
mov si,0 mov word ptr table[si],1234H 3/19/13
108108

Architecture des ordinateurs

Architecture des ordinateurs

adressage bas et index : loffset est obtenu en faisant la somme dun registre de base, dun registre dindex et dune valeur constante. Exemple : mov ah,[bx+si+100H]

Ce mode dadressage permet ladressage de structures de109109 donnes 3/19/13

Les instructions arithmtiques

Architecture des ordinateurs

Les instructions arithmtiques de base sont laddition, la soustraction, la multiplication et la division. Plusieurs modes dadressage sont possibles. Addition :
3/19/13

ADD oprande1,oprande2 110110

Architecture des ordinateurs

Soustraction : SUB oprande1,oprande2 Lopration effectue est : oprande1 oprande1 oprande2. Multiplication :

MUL oprande, o oprande est 3/19/13 111111 un registre ou une case mmoire.

Exemples :
mov al,51 mov bl,32 mul bl AX = 51 32

Architecture des ordinateurs

mov ax,4253 mov bx,1689 mul bx (DX, AX) = 4253 1689

mov al,43 mov byte ptr [1200H],28 mul byte ptr [1200H]

3/19/13

112112

Architecture des ordinateurs

Division : DIV oprande, o oprande est un registre ou une case mmoire. Cette instruction effectue la division du contenu de AX par un oprande sur 1 octet ou le contenu de (DX,AX) par un oprande sur 2 octets.
3/19/13 113113

Architecture des ordinateurs

Autres instructions arithmtiques :

ADC : addition avec retenue ; SBB : soustraction avec retenue ; INC : incrmentation dune unit ; DEC : dcrmentation dune unit ; IMUL : multiplication signe ; IDIV : division signe.

3/19/13

114114

Les instructions logiques

Architecture des ordinateurs

Ce sont des instructions qui permettent de manipuler des donnes au niveau des bits. Les oprations logiques de base sont :

ET; OU; OU exclusif ; complment 1; complment 2;


115115

3/19/13

Architecture des ordinateurs

ET logique : AND oprande1,oprande2 Lopration effectue est : oprande1 oprande1 ET oprande2.

3/19/13

116116

Architecture des ordinateurs

OU logique : OR oprande1,oprande2 Lopration effectue est : oprande1 oprande1 OU oprande2. Application : mise `a 1 dun ou plusieurs bits dans un mot. Exemple : dans le mot 10110001B on veut mettre 1 les bits 1 et 3 sans modifier les autres bits.
Les instructions correspondantes peuvent scrire : mov ah,10110001B or ah,00001010B

3/19/13

117117

Architecture des ordinateurs

3/19/13

118118

Architecture des ordinateurs

OU exclusif : XOR oprande1,oprande2 Lopration effectue est : oprande1 oprande1 oprande2. Exemple : mise zro dun registre : mov al,25 xor al,al AL = 0

3/19/13

119119

Architecture des ordinateurs

Instructions de dcalages et de rotations : ces instructions dplacent dun certain nombre de positions les bits dun mot vers la gauche ou vers la droite. Dans les dcalages, les bits qui sont dplacs sont remplacs par des 3/19/13 120120 zros.

Architecture des ordinateurs

Dcalage logique vers la droite (Shift Right) : SHR oprande,n Cette instruction dcale loprande de n positions vers la droite.

Exemple : mov al,11001011B shr al,1

entre dun 0 la place du bit de poids fort ; le bit sortant passe travers lindicateur de retenue CF. 3/19/13

121121

Architecture des ordinateurs

Dcalage logique vers la gauche (Shift Left) : SHL oprande,n Cette instruction dcale loprande de n positions vers la droite. Exemple : mov al,11001011B shl al,1
3/19/13 122122

Architecture des ordinateurs

Dcalage arithmtique vers la droite : SAR oprande,n Ce dcalage conserve le bit de signe bien que celui-ci soit dcal. Exemple : mov al,11001011B sar al,1

le bit de signe est rinject.

Dcalage arithmtique vers la gauche : SAL oprande,n 3/19/13 123123 Identique au dcalage logique vers la gauche.

Architecture des ordinateurs

Applications des instructions de dcalage : cadrage droite dun groupe de bits. Exemple : on veut avoir la valeur du quartet de poids fort du registre AL : mov al,11001011B AL = mov cl,4 shr al,cl

00001100B

test de ltat dun bit dans un mot. Exemple : on veut dterminer ltat du bit 5 de AL : mov cl,6 shr al,cl

3/19/13

ou

mov cl,3

124124

Architecture des ordinateurs

multiplication ou division par une puissance de 2 : un dcalage droite revient faire une division par 2 et un dcalage gauche, une multiplication par 2. Exemple : mov al,48 mov cl,3 shr al,cl AL = 48/23 = 6

3/19/13

125125

Architecture des ordinateurs

Rotation droite (Rotate Right) : ROR oprande,n Cette instruction dcale loprande de n positions vers la droite et rinjecte par la gauche les bits sortant.

Exemple : mov al,11001011B ror al,1 rinjection du bit sortant qui est copi dans lindicateur de retenue CF.
3/19/13 126126

Architecture des ordinateurs

Rotation gauche (Rotate Left) : ROL oprande,n Cette instruction dcale loprande de n positions vers la gauche et rinjecte par la droite les bits sortant.

Exemple : mov al,11001011B rol al,1


3/19/13 127127 rinjection du bit sortant qui est copi dans

Architecture des ordinateurs

Rotation droite avec passage par lindicateur de retenue (Rotate Right through Carry) : RCR oprande,n Cette instruction dcale loprande de n positions vers la droite en passant par lindicateur de retenue CF.
3/19/13 128128

Architecture des ordinateurs

Rotation gauche avec passage par lindicateur de retenue (Rotate Left through Carry) : RCL oprande,n Cette instruction dcale loprande de n positions vers la gauche en passant par lindicateur de retenue CF.
3/19/13 129129

Les instructions de branchement

Architecture des ordinateurs

Les instructions de branchement (ou saut) permettent de modifier lordre dexcution des instructions du programme en fonction de certaines conditions. Il existe 3 types de saut :

saut inconditionnel ; sauts conditionnels ; appel de sous-programmes.

3/19/13

130130

Architecture des ordinateurs

Instruction de saut inconditionnel : JMP label Cette instruction effectue un saut (jump) vers le label spcifi. Un label (ou tiquette) est une reprsentation symbolique dune instruction en mmoire :

Exemple :
3/19/13 131131

Architecture des ordinateurs

Instructions de sauts conditionnels : Jcondition label Un saut conditionnel nest excut que si une certaine condition est satisfaite, sinon lexcution se poursuit squentiellement linstruction suivante.

3/19/13

132132

Architecture des ordinateurs

nom La condition du saut porte instructio n sur ltat de lun (ou plusieurs) des indicateurs JZ label Jump if Zero dtat (flags) du microprocesseur : JNZ label Jump if Not Zero JE label JNE label JC label JNC label JS label 3/19/13 JNS label Jump if Equal

condition saut si ZF = 1 saut si ZF = 0 saut si ZF = 1

Jump if Not Equal saut si ZF = 0 Jump if Carry saut si CF = 1

Jump if Not Carry saut si CF = 0 Jump if Sign saut si SF = 1 133133 Jump if Not Sign saut si SF =

Architecture des ordinateurs

Remarque : les indicateurs sont positionns en fonction du rsultat de la dernire opration.

3/19/13

134134

Architecture des ordinateurs

Remarque :
il existe un autre type de saut conditionnel, les sauts arithmtiques. Ils suivent en gnral linstruction de comparaison :
condition = > < nombres nombres non CMP oprande1,oprande2 signs signs JEQ label JG label JL label JNE label JEQ label JA label JB label JNE label

Exemple: 3/19/13

135135

Architecture des ordinateurs

Exemple dapplication des instructions de sauts conditionnels : on veut additionner deux nombres signs N1 et N2 se trouvant respectivement aux offsets 1100H et 1101H. Le rsultat est rang loffset 1102H sil est positif, loffset 1103H sil est ngatif et loffset 1104H sil est nul :

3/19/13

136136

Architecture des ordinateurs

Appel de sous-programmes : pour viter la rptition dune mme squence dinstructions on rdige la squence une seule fois en lui attribuant un nom et on lappelle lorsquon en a besoin. Le programme appelant est le programme principal. La squence appele est un sous-programme ou procdure. Ecriture dun sous-programme :

3/19/13

137137

Architecture des ordinateurs

Remarque : une procdure peut tre de type NEAR si elle se trouve dans le mme segment ou de type FAR si elle se trouve dans un autre segment. Exemple : ss_prog1 ss_prog2 PROC NEAR PROC FAR

Appel dun sous-programme par le programme principal : CALL procdure

3/19/13

138138

Architecture des ordinateurs

Lors de lexcution de linstruction CALL, le pointeur dinstruction IP est charg avec ladresse de la premire instruction du sous-programme. Lors du retour au programme appelant, linstruction suivant le CALL doit tre excute, cest-`a-dire que IP doit tre recharg avec ladresse de cette instruction.

3/19/13

139139

Architecture des ordinateurs

Avant de charger IP avec ladresse du sous-programme, ladresse de retour au programme principal, cest-`a-dire le contenu de IP, est sauvegarde dans une zone mmoire particulire appele pile. Lors de lexcution de linstruction RET, cette adresse est rcupre partir de la pile et recharge dans IP,
140140 ainsi le programme appelant peut se

3/19/13

Architecture des ordinateurs

Le sommet de la pile est repr par un registre appel pointeur de pile (SP : Stack Pointer) qui contient ladresse de la dernire donne empile. La pile est dfinie dans le segment de pile dont ladresse de dpart est contenue dans le registre SS.

3/19/13

141141

Architecture des ordinateurs

Remarque : la pile et le programme croissent en sens inverse pour diminuer le risque de collision entre le code et la pile dans le cas o celle-ci est place dans le mme segment que le code (SS = CS). Lors de lappel dun sous-programme, ladresse de retour au programme appelant (contenu de IP) est empile et le pointeur de pile SP est automatiquement dcrment. Au retour du sous-programme, le pointeur dinstruction IP est recharg avec la valeur contenue sommet de la pile et SP est incrment.

3/19/13

142142

Architecture des ordinateurs

La pile peut galement servir sauvegarder le contenu de registres qui ne sont pas automatiquement sauvegards lors de lappel dun sous programme : instruction dempilage : PUSH oprande instruction de dpilage : POP oprande
3/19/13

o oprande est un registre ou une

143143

Architecture des ordinateurs

Remarque : la valeur de SP doit tre initialise par le programme principal avant de pouvoir utiliser la pile. Utilisation de la pile pour le passage de paramtres : pour transmettre des paramtres une procdure, on peut les placer 3/19/13 144144 sur la pile avant lappel de la

Architecture des ordinateurs

Linstruction ret 4 permet de retourner au programme principal et dincrmenter le pointeur de pile de 4 units pour dpiler les paramtres afin de remettre la pile dans son tat initial. Etat de la pile :

3/19/13

145145

Architecture des ordinateurs

5.6 Mthodes de programmation Etapes de la ralisation dun programme : Dfinir le problme `a rsoudre : que faut-il faire exactement ? Dterminer des algorithmes, des organigrammes : comment faire ? Par quoi commencer,
3/19/13

puis poursuivre ?

146146

Architecture des ordinateurs

Ralisation pratique dun programme : Rdaction du code source en assembleur `a laide dun diteur (logiciel de traitement de texte ASCII) : edit sous MS-DOS, notepad (bloc-note) sous Windows,
147147 Assemblage du code source

3/19/13

Architecture des ordinateurs

Structure dun fichier source en assembleur : pour faciliter la lisibilit du code source en assembleur, on le rdige sous la forme suivante : labels instructions commentaires label1 : mov ax,60H ; ceci est un commentaire ...
3/19/13

...

148148

Architecture des ordinateurs

Directives pour lassembleur : Origine du programme en mmoire : ORG offset Exemple : org 1000H Dfinitions de constantes : nom constante EQU valeur Exemple : escape equ 1BH Rservation de cases mmoires :
3/19/13 149149

6.1 Dfinitions

Chapitre 6 Les interfaces dentres/sorties

Architecture des ordinateurs

Une interface dentres/sorties est un circuit intgrpermettant au microprocesseur de communiquer avec lenvironnement extrieur (priphriques) : clavier, cran, imprimante, modem, disques, processus industriel, ... Les interfaces dE/S sont connectes 3/19/13 150150 au microprocesseur travers les bus

Architecture des ordinateurs

Les points daccs aux interfaces sont appels ports. Exemples :

3/19/13

151151

Architecture des ordinateurs

Schma synoptique dun circuit dE/S :

3/19/13

152152

Architecture des ordinateurs

Consquences : lespace dadressage des mmoires 153153

3/19/13

Architecture des ordinateurs

adressage indpendant : le microprocesseur considre deux espaces distincts : lespace dadressage des mmoires ; lespace dadressage des ports dE/S. Cest le cas du microprocesseur 8086 :
154154

3/19/13

Architecture des ordinateurs

Consquences:

contrairement ladressage cartographique, lespace mmoire total adressable nest pas diminu; ladressage des port dE/S peut se faire avec une adresse plus courte (nombre de bits infrieur) que pour les circuits mmoires;

les instructions utilises pour laccs la mmoire ne sont plus utilisables pour

laccs aux ports dE/S : ceux-ci disposent 3/19/13 155155 dinstructions spcifiques;

Architecture des ordinateurs

6.3 Gestion des ports dE/S par le 8086 Le 8086 dispose dun espace mmoire de 1 Mo (adresse dune case mmoire sur 20 bits) et dun espace dE/S de 64 Ko (adresse dun port dE/S sur 16 bits). Le signal permettant de diffrencier ladressage de la mmoire de ladressage des ports dE/S est la ligne M/IO :
3/19/13

pour un accs la mmoire, M/IO 156156 = 1;

Architecture des ordinateurs

Les instructions de lecture et dcriture dun port dE/S sont respectivement les instructions IN et OUT. Elles placent la ligne M/IO 0 alors que linstruction MOV place celle-ci 1. Lecture dun port dE/S :
si ladresse du port dE/S est sur un octet : I N AL, adr esse : lecture dun port sur 8 bits; I N AX, adr esse : lecture dun port sur 16 bits. si ladresse du port dE/S est sur deux octets : I N AL, DX : lecture dun port sur 8 bits; I N AX, D X : lecture dun port sur 16 157157 bits.

3/19/13

Architecture des ordinateurs

Lecture dun port dE/S :


si ladresse du port dE/S est sur un octet : I N AX, adr esse : lecture dun port sur 16 bits.
AL, adr esse

: lecture dun port sur 8 bits; I N

si ladresse du port dE/S est sur deux octets : I N AX, D X : lecture dun port sur 16 bits.

AL, DX

: lecture dun port sur 8 bits; I N

o`u le registre DX contient ladresse du port dE/S lire.

Ecriture dun port dE/S :


si ladresse du port dE/S est sur un octet : O U T adresse, AL : criture dun port sur 8 bits; O U T adr esse, AX : criture dun port sur 16 bits. si ladresse du port dE/S est sur deux octets : O U T D X, AL : criture dun port sur 8 bits; O U T D X, AX : criture dun port sur 16 bits. o`u le registre DX contient ladresse du port dE/S crire.

Exemples :
3/19/13
lecture dun port dE/S sur 8 bits ladresse 300H :

158158

Architecture des ordinateurs

6.4 L interface parallle 8255 Le rle dune interface parallle est de transfrer des donnes du microprocesseur vers des priphriques et inversement, tous les bits de donnes tant envoys ou recus simultanment. Le 8255 est une interface parallle programmable : elle peut tre configure en entre et/ou en sortie par programme.

3/19/13

159159

Architecture des ordinateurs

3/19/13

160160

Architecture des ordinateurs

Schma fonctionnel :

3/19/13

161161

Architecture des ordinateurs

Accs aux registres du 8255 : les lignes dadresses A0 et A1 dfinissent les adresses des registres du A1 8255 : WR CS A0 RD operation
0 0 1 0 0 1 1 X 1 3/19/13 X 0 1 0 0 1 0 1 X 1 X 0 0 0 1 1 1 1 X 0 1 1 1 1 0 0 0 0 X 1 1 0 0 0 0 0 0 0 1 0 0 lecture du port A lecture du port B lecture du port C criture du port A criture du port B criture du port C criture du registre de commande pas de transaction illgal pas de transaction 162162

Architecture des ordinateurs

Remarque : le registre de commande est accessible uniquement en criture, la lecture de ce registre nest pas autorise. Configuration du 8255 : les ports peuvent tre configurs en entres ou en sorties selon le contenu du registre de commande. De plus le 8255 peut fonctionner selon 3 modes : mode 0, mode 1 ou mode 2. 3/19/13 163163

Architecture des ordinateurs

Structure du registre de commande :

3/19/13

164164

Architecture des ordinateurs

Connexion du 8255 sur les bus du 8086 : le bus de donnees du 8255 est sur 8 bits alors que celui du microprocesseur 8086 est sur 16 bits. On peut donc connecter le bus de donnees du 8255 sur les lignes de donnees de poids faible du 8086 (D0 - D7) ou sur celles
3/19/13

de poids fort (D8 - D15).

165165

Architecture des ordinateurs

Ainsi lun de ces deux signaux A0 ou BHE doit etre utilise pour selectionner le 8255 :

3/19/13

166166

Architecture des ordinateurs

Le dcodeur dadresses dtermine ladresse de base du 8255 ; les lignes A1 et A2 dterminent les adresses des registres du 8255. Exemple : connexion du 8255 sur la partie faible du bus de donnes du 8086, avec dcodage dadresses incomplet (les lignes dadresses A3 - A15 ne sont pas toutes utilises) :

3/19/13

167167

Dtermination de ladresse du 8255 :

Architecture des ordinateurs

. . . 3/19/13 168168

Architecture des ordinateurs

Remarque : si on veut que le 8255 possde des adresses conscutives (par exemple 300H,301H, 302H et 303H), on peut utiliser le schma suivant qui exploite tout le bus de donnes (D0 - D15) du 8086 :

3/19/13

169169

Architecture des ordinateurs

3/19/13

170170

Architecture des ordinateurs

Exemple de programmation : soit le montage suivant :

3/19/13

171171

Architecture des ordinateurs

portA portB portC

equ 300H equ 302H equ 304H

; adresses des registres du 8255

controle equ 306H mov dx,controle ; initialisation du port A en entre mov al,90H ; et du port B en sortie (mode 0) :

out dx,al ; controle = 10010000B = 90H boucle : mov dx,portA in al,dx ; lecture du port A

and al,00000111B ; masquage PA0, PA1 et PA2 cmp al,00000101B ; test PA0 = 1, PA1 = 0 et PA2 = 1 jne faux ; non -> aller au label faux ... mov al,00000001B ; oui -> mettre PB0 a` 1

3/19/13

172172

6.5 L interface serie 8250

Architecture des ordinateurs

Une interface srie permet dchanger des donnes entre le microprocesseur et un priphrique bit par bit.

3/19/13

173173

Architecture des ordinateurs

Il existe deux types de transmissions sries :

asynchrone : chaque octet peut tre mis ou reu sans dure dtermine entre un octet et le suivant ; synchrone : les octets successifs sont transmis par blocs spars par des octets de synchronisation.
174174

3/19/13

La transmission asynchrone la plus

Architecture des ordinateurs

Exemple : transmission du caractre E (code ASCII 45H = 01000101B) sous forme srie selon la norme RS232 :

3/19/13

175175

Architecture des ordinateurs

letat 1 correspond une tension ngative comprise entre 9 et 15 V, ltat 0 `a une tension positive comprise entre +9 et +15 V. Au repos, la ligne est `a letat 1 (tension negative) ; le bit de start marque le debut 3/19/13 176176 de la transmission du

Architecture des ordinateurs

Principe dune interface srie :

3/19/13

177177

Architecture des ordinateurs

Un circuit integre dinterface serie asynchrone sappelle un UART : Universal Asynchronous Receiver Transmitter) ; une interface serie synchrone/asynchrone est un USART. Exemples dinterfaces series : 8251 (Intel) ;
3/19/13

8250 (National Semiconductor) 178178 ;

Architecture des ordinateurs

Pour connecter ces equipements, on utilise des connecteurs normalises DB9 ou DB25 :

3/19/13

179179

Architecture des ordinateurs

Diffrents signaux sont transports par ces connecteurs : signal no broche no broche description sens
DB9 TxD RxD RTS CTS DTR DSR DCD RI GND 3 2 7 8 4 6 1 9 5 DB25 2 3 4 5 20 6 8 22 7 Transmit Data Receive Data Request To Send Clear To Send Data Terminal Ready Data Set Ready Data Carrier Detect Ring Indicator Ground DTE sortie entre sortie entre sortie entre entre entre DCE entre sortie entre sortie entre sortie sortie sortie

Seuls 3/19/13

les 2 signaux TxD et RxD servent a` 180180

Architecture des ordinateurs

A suivre

3/19/13

181181

Architecture des ordinateurs

Annexe
Jeu dinstructions Cliquez pour modifier du le 8086 style des sous-titres du masque

3/19/13

182182

Transfert de donnees :
M OV PU SH PO P XC H G XLAT ou XLATB I N O UT LEA LD S LES LAH F SAH F PU SH F PO PF General Dplacement dun octet ou dun mot Ecriture dun mot au sommet de la pile Lecture dun mot au sommet de la pile Echange doctets ou de mots Traduction dun octet a` laide dune table

Architecture des ordinateurs

Entrees/Sorties Lecture dun port dE/S Ecriture dun port dE/S Transfert dadresses Chargement dune adresse effective Chargement dun pointeur utilisant DS Chargement dun pointeur utilisant ES Transfert des flags Transfert des 5 flags bas dans AH Transfert de AH dans les 5 flags bas Sauvegarde des flags sur la pile Restauration des flags a` partir de la pile

3/19/13

183183

Instructions arithm etiques :


Addition AD D AD C I NC AAA DA SU AB SBB D EC N EG CM P AAS D AS M UL I M UL AAM DI V I DI V AAD C BW CW D Addition doctets ou de mots Addition doctets ou de mots avec retenue Incrmentation de 1 dun octet ou dun mot Ajustement ASCII de laddition Soustraction Ajustement dcimal de laddition Soustraction doctets ou de mots Soustraction doctets ou de mots avec retenue Dcrmentation de 1 dun octet ou dun mot Complmentation a` 2 dun octet ou dun mot (change-ment de signe) Comparaison doctets ou de mots Ajustement ASCII de la soustraction Ajustement dcimal de la soustraction Multiplication Multiplication non signe doctets ou de mots Multiplication signe doctets ou de mots Ajustement ASCII de la multiplication Division Division non signe doctets ou de mots Division signe doctets ou de mots Ajustement ASCII de la division Conversion doctet en mot Conversion de mot en double mot

Architecture des ordinateurs

3/19/13

184184

Instructions logiques :
Logique Complment a` 1 dun octet ou dun mot NO T ET logique de deux octets ou de deux mots AN D OU logique de deux octets ou de deux mots OR OU exclusif logique de deux octets ou de deux mots XO R Comparaison, a` laide dun ET, doctets ou de mots TEST Dcalages SH L/ SAL Dcalage a` gauche arithmtique ou logique (octet ou mot) SH R SAR RO L RO R RC L RC R Dcalage logique a` droite dun octet ou dun mot Dcalage arithmtique a` droite dun octet ou dun mot Rotations Rotation a` gauche dun octet ou dun mot) Rotation a` droite dun octet ou dun mot Rotation a` gauche incluant CF (octet ou mot) Rotation a` droite incluant CF (octet ou mot)

Architecture des ordinateurs

3/19/13

185185

Instructions sur les chanes de caractres :


Prefixes Repetition tant que CX nest pas nul Repetition tant quil y a egalite et que CX nest pas nul Repetition tant quil ny a pas egalite et que CX nest pas nul Instructions Deplacement de blocs doctets ou de mots

Architecture des ordinateurs

REP REPE ou REPZ REPN E ou REPN Z M O VS ou M O VSB/ MO VSW CM PS ou CM PSB/ CM PSW SCAS ou SCASB/ SCA SW LO D S ou LO D SB/ LO D SW STO S ou STO SB/ STO SW

Comparaison de blocs doctets ou de mots

Exploration dun bloc doctets ou de mots

Tranfert dun octet ou dun mot dans AL ou AX

Chargement dun bloc doctets ou de mots par AL ou AX

3/19/13

186186

Instructions de branchements :
CALL RET J MP LO O P LO O PE ou LO O PZ LO O PN E ou LO O PN Z J CXZ I NT I N TO I RET Branchements inconditionnels Appel de procedure Retour dune procedure Saut inconditionnel Contrles diterations Bouclage tant que CX = 0 Bouclage tant que CX = 0 et ZF = 1 (egalite)
~ ~

Architecture des ordinateurs

Bouclage tant que CX = 0 et ZF = 0 (inegalite)


~

Saut si CX est nul Interruptions Interruption logicielle Interruption si OF = 1 (overflow) Retour dune interruption

3/19/13

187187

Instructions de branchements conditionnels :


Sauts conditionnels J A ou J N BE (1) Saut si suprieur (si CF + ZF = 0) J AE ou J N B (1) Saut si suprieur ou gal (si CF = 0) Saut si infrieur (si CF = 1) Saut si infrieur ou gal (si CF + ZF = 1) Saut en cas de retenue (si CF = 1) Saut si gal ou nul (si ZF = 1) Saut si plus grand (si (SF ED OF) + ZF = 0) J G E ou J N L (2) Saut si plus grand ou gal (si SF ED OF = 0) J L ou J N G E (2) Saut si plus petit (si SF ED OF = 1) J B ou J N AE (1) J BE ou J N A (1) J C J E ou J Z J G ou J N LE (2) J LE ou J N G (2) Saut si plus petit ou gal (si (SF ED OF) + ZF = 1) J NC J N E ou J NZ J NO J N P ou J PO J NS J O J P ou J PE J S Saut si pas de retenue (si CF = 0) Saut si non gal ou non nul (si (ZF = 0) Saut si pas de dpassement (si OF = 0)

Architecture des ordinateurs

paritimpaire (si PF = 0) signe positif (si SF = 0) dpassement (si OF = 1) paritpaire (si PF = 1) Saut si signe ngatif (si SF = 1)
Saut si Saut si Saut si Saut si

3/19/13

188188

Instructions de contrle du 8086 :


Operations sur les flags STC CLC CM C STD CLD STI CLI Met le flag de retenue a` 1 Efface le flag de retenue Inverse ltat du flag de retenue Met le flag de direction a` 1 (dcrmentation) Met le flag de direction a` 0 (incrmentation) Autorise les interruptions sur INTR Interdit les interruptions sur INTR Synchronisation avec lexterieur H LT Arret du microprocesseur (sortie de cet tat par inter-ruption ou reset)

Architecture des ordinateurs

W AI T ESC LO CK

Attente tant que TEST nest pas a` 0 Prfixe = instruction destine a` un coprocesseur Prfixe = rservation du bus pour linstruction Pas doperation

NO P 3/19/13

Pas dopration

189189