Académique Documents
Professionnel Documents
Culture Documents
DES PROCESSEURS
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
Analogique
Numérique:
Processeurs
…
Informatique
Systèmes d’exploitation
Outils de développement
Langages de programmation
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
Analogique Numérique
Décodeur Additionneur
Porte NAND
l’Electronique Numérique
Transistor MOS
Bascule
A la base de
Compteur
Multiplexeur …
Wafer
Processeur
Boîtier
Applications …
7 – copyleft
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
GPU
Graphical
Processor Unit
GPP MCU DSP FPGA PLD (GPGPU
General Micro Digital Field Programmabl généralistes)
Purpose Controller Signal Programmabl e
APU
Processor Unit Processor e Logic
Accelerated
(spécialisé Gate Device
Processor
) Array
Unit
Desktop CPLD SPLD
Laptop SoC
Server System on Chip
MainFrame 8 – copyleft
Embedded Systems PAL GAL
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
Central
Processing
Unit
9 – copyleft
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
Central
Processing
Unit
10 – copyleft
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
Buses
• Manipuler les informations présentes en mémoire
donnée ou dans des registres. Il est maître des bus.
Central
Processing
Unit
11 – copyleft
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
Central
Processing
Unit
12 – copyleft
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
Central
Processing
Unit
13 – copyleft
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
14 – copyleft
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
Avantages :
• Polyvalence (applications généralistes,TNSignal, pipeline ,superscalaire performant pour
code système, traitement d’image ...) et grande puissance de calcul
• Grande communauté et grand nombre de ressources logicielles sur architectures x86
• Grand nombre de drivers matériels
Inconvénients :
• Encombrement (carte mère : bus, mémoires, périphériques ...)
• Coût (en 2013, Intel Haswell processor i5-4430 entrée de gamme ~180€)
• Consommation et échauffement (en 2012, corei7 ~15-20W vs Atom (dédié principalement
pour le mobile et les tablettes) ~2W)
15 – copyleft
SYSTÈMES ELECTRONIQUES –NUMÉRIQUES
DES TRANSISTORS AUX PROCESSEURS
FAMILLE DE PROCESSEURS
ARCHITECTURE À CPU
GENERAL PURPOSE PROCESSOR
Les principales applications grand public et donc grand volume des GPP’s sont bien
évidemment les ordinateurs de bureau ou desktop et les ordinateurs portables ou laptop :
16 – copyleft
MICRO-ARCHITECTURE Carte Mère
DES PROCESSEURS
CARTE MÈRE
¡ La carte-mère est en fait le système nerveux du pc.
§ Le microprocesseur
§ La mémoire
§ Les contrôleurs de périphériques
§ Le chipset
§ …
¡ Les cartes mères du marché sont toutes différentes par les options qu’elles
proposent.
¡ Son choix est primordial si vous souhaitez pouvoir faire évoluer votre
configuration à moindre coût.
CARTE MERE
Structure – Architecture Core2 – Evolutions
Mother Board
Memory
Slot
Peripherals
Peripherals
Buses Buses
Slot
Central
Processing
Unit
Slot
19Slot
– copyleft
CARTE MERE
Structure – Architecture Core2 – Evolutions
Elle est également chargée de répartir les alimentations et les références d’horloge des
différents composants embarqués.
Memory
Slot
Peripherals
Buses
Slot
Central
Processing New
Peripheral
Unit Slot
Slot
20 – copyleft
L’HORLOGE SYSTÈME D E S C O M P O SA NT S
¡ A i n s i , l e s c o m p o s a n t s d u p c , v e r r o n t l e u r f r é q u e n c e d e
fonctionnement réglée, par l’intermédiaire d’un coefficient
multiplicateur appliquée sur l’horloge système.
CARTE MERE
Structure – Architecture Core2 – Evolutions
P8H61-MLX
P = Intel MLX = différents jeu de périphériques
8 = Famille GPP = Corei7/5/3 embarqués, slots…
22 – copyleft
STRUCTURE – ARCHITECTURE CORE2 – EVOLUTIONS
Bande passante (en Mo/s) = largeur du bus (en octets) x fréquence (en Hz)
¡ Le bus qui relie le CPU à la mémoire cache est appelé bus processeur
ou "Back Side Bus" (BSB). Il est plus rapide que le bus système qui
relie le processeur à la RAM dynamique et qui depuis est souvent
nommé "Front Side Bus" (FSB). Ces bus tournent à la vitesse du
processeur. Leur fréquence convient aux mémoires mais les signaux
devaient être temporisés par un "pont" (bridge) pour en adapter la
cadence aux périphériques plus lents.
CARTE MERE
Structure – Architecture Core2 – Evolutions
NorthBridge
SouthBridge
Chipset
CPU
DDR
Graphical
VGA
NorthBridge
Main
PCIe Memory
Les fonctions interfacées étant exigeantes en bande passante, les bus de communications
utilisés sont des bus parallèles relativement larges (DRR bus, PCIe x16).
29 – copyleft
CARTE MERE
Structure – Architecture Core2 – Evolutions
NorthBridge
SouthBridge
Chipset
CPU
DDR
Graphical
VGA
NorthBridge
Main
PCIe Memory
PS/2 LPC
serial Legacy PCI
parallel SouthBridge
Audio connectors
USB …
30 – copyleft
CARTE MERE
Structure – Architecture Core2. – Evolutions
NorthBridge
SouthBridge
Chipset
CPU
DDR
Graphical
VGA
NorthBridge
Main
PCIe Memory
PS/2 LPC
serial Legacy PCI
parallel SouthBridge
Audio connectors
USB …
31 – copyleft
CARTE MERE
Structure – Architecture Core2 – Evolutions
Carte Graphique
Externe sur PCIe
CPU Corei7
northBridge intégré
Legacy
Interface
SouthBridge
Integrated
Controller Hub
BIOS
Slots
http://www.intel.com
32 – copyleft
CARTE MERE
Structure – Architecture Core2 – Evolutions
• Display
• DMI
• Miscellaneaous I/O
(PCIe, DMM..)
http://www.presence-pc.com
33 – copyleft
CARTE MERE
Structure – Architecture Core2 – Evolutions
Dans la suite de ce cours, nous allons nous attarder et voir plus en détail deux éléments clés
de l’architecture d’un ordinateur, à savoir le CPU et les mécanismes de gestion mémoire:
Main
CPU Cache Memory
34 – copyleft
SÉANCE-2
VUE FONCTIONNELLE
DES SYSTÈMES À Rappelle
PROCESSEURS
ARCHITECTURE HAUTE PERFORMANCE
DES BUS
rapide
lent
LA VUE FONCTIONNELLE
LES MÉMOIRES
LA MÉMOIRE (PARTIE PASSIVE)
¡ Juxtaposition de cellules
(la plus petite quantité mémoire adadressable)
¡ Chaque cellule est numérotée (adresse)
¡ Généralement les mémoires sont adressables par octets
¡ Taille d'une cellule
– octet : 8 bits (byte)
– word : 16 bits, Double word : 32 bits, Quad word 64 bits, en
fonction des machines (16, 32 ou 64 bits)
¡ Notation :
– S i M désigne une cellule mémoire
– [M] représente son contenu
UN BOITIER MÉMOIRE
¡ L e c o d e l u e n s o r t i e d e l a m é m o i r e e s t u n e
combinaison de bits à 1 et à 0. Les niveaux '1' sont
fournis au travers de résistances électriques reliées à
la tension d'alimentation du circuit. Par endroits, des
diodes forcent les bits de la ligne sélectionnée vers
une tension qui correspond au niveau logique 0.
LES MÉMOIRES NON VOLATILES
PROM - EPROM
PROM: Ce sont des ROM programmables une seule fois,
Registres Généraux sur 32 bits : EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP
(AX, BX, .. 16 bits)
Registres généraux
– Accumulateurs pour opérations arithmétiques
– De taille fixe -> pentium 32 bits, 68000 32 bits
– Adressables sur 16 bits ou sur 8 bits :
• Registres de segment
– Registres utilisés pour pointer le début des zones mémoires
¡ CS Code Segment
¡ DS Data Segment
¡ SS Stack Segment
¡ ES, FS, GS Zones mémoires additionnelles
• Registre Pointeur d’instruction
– Contient l’adresse de la prochaine instruction à exécuter
• Registre d’état
¡ Contrôle et indique des opérations
¡ Indicateurs système
¡ Indicateurs application
MÉMOIRES RAPIDES REGISTRES
¡ M é m o i r e C a c h e : L a p r é s e n c e d e m é m o i r e c a c h e p e r m e t
d'accélérer l'exécution d'un programme`
Problèmes
¡ Mémoire cache doit être petite (quelques centaines de Ko à
quelques dizaines de Mo) pour être efficace en terme de débit
¡ Ne peut donc pas y stocker tous les programmes en cours
d'exécution et leurs données
MÉMOIRE CACHE
¡ L o c a l i t é s p a t i a l e : l e c o d e d ’ u n p ro g r a m m e s ’ ex é c u te to u j o u r s à
l’intérieur de petites zones répétées de mémoire (des blocs
correspondant à des boucles ou/et des sous-programmes)
¡ Localité temporelle: les blocs s’exécutent en séquences très proches (il
y a plus de chances d’accéder à une position de mémoire utilisée il y a
10 cycles qu’à une autre utilisée il y a 10000 cycles)
Une ligne du cache est de 2 5 octet, la mémoire étant adressable par octet, 5 bits
donc pour l’of f set.
La capacité du mémoire cache 2 s + 1 0 octets, donc cette mémoire est gérée par
2 s + 5 lignes de cache. Donc l’indice de la ligne est de s+5 bits.
Donc 2 2 2 - s éléments de la mémoire principale sont gérés par ligne de cache. Le
tag est donc de 22-s bits.
CACHE PLEINEMENT ASSOCIATIF
Un cache de 256 bits par ligne pour une mémoire adressable par octet
CACHE N-ASSOCIATIF
¡ E s p a c e d e s a d r e s s e s
virtuelles et espace
physique.
¡ L e p r o c e s s u s d a n s s o n
espace virtuel continu
comprend quatre pages : A,
B, C et D.
¡ L a c o h a b i t a t i o n e n t r e p r o c e s s u s : E v i t e r l e s c o n f l i t s
d’adressage entre les processus, exécuter un processus dans
un espace d’adressage non continu (la mémoire est non
disponible en un seul bloc mais elle est fragmentée),
¡ Pagination :
¡ mono dimensionnelle
¡ mappage de l’espace d’adressage sur la mémoire physique.
¡ La mémoire virtuelle et la
mémoire physique sont
structurées en unités
d’allocations appelés
pages pour la mémoire
virtuelle et cases ou
cadres pour la mémoire
physique.
¡ La taille d’une page est
fixe et égale à celle d’un
cadre.
¡ Elle varie entre 2 Ko et 16
Ko. 4 Ko est une valeur
typique assez répandue.
LA PAGINATION
¡ S o i t u n p r o g r a m m e d e 6 4 K o s u r u n e
m a c h i n e 3 2 Ko d e m é m o i r e . S o n e s p a c e
d'adressage logique est sur le disque. Il
e s t c o m p o s é d e 16 p a g e s d e 4 Ko .
¡ L a m é m o i r e p hy s i q u e e s t s t r u c t u r é e e n 8
c a d r e s d e 4 Ko ,
¡ Q u a n d l e p r o g r a m m e te n te d ' a c c é d e r à
l ' a d r e s s e 0 ave c u n e i n s t r u c t i o n c o m m e
m ov w $ 0 , % e a x , l ' a d r e s s e v i r t u e l l e 0 e s t
e nvoy é e a u M M U .
¡ L e M M U c o n s t a te q u e c e t te a d r e s s e s e
t r o u ve d a n s l a p a g e 0 ( 0 K - 4 K ) , e t l a
t r a n s fo r m a t i o n d o n n e l a c a s e 2 ( 8 K - 1 2 K )
d a n s l a m é m o i r e p hy s i q u e . C e t te va l e u r
( 81 9 2 ) e s t m i s e d a n s l e b u s d u s y s t è m e .
Ainsi les adresses virtuelles entre 0 et
4095 sont transformées en adresses
Unité de gestion de la mémoire (MMU) p hy s i q u e s c o m p r i s e s e n t r e 81 9 2 à 1 2 2 87 .
EXEMPLE
L'adresse virtuelle est codée sur 16 bits. Les 4 bits de poids fort indiquent le numéro de page,
comprise entre 0 et 15. Les autres bits donnent le déplacement dans la page,
LANGAGE Génaralités
D’ASSEMBLAGE
ASSEMBLEUR
Assembleur – Architectures CPU – ISA Extensions
99 – copyleft
ASSEMBLEUR
Assembleur – Architectures CPU – ISA Extensions
100 – copyleft
ASSEMBLEUR
Assembleur – Architectures CPU – ISA Extensions
101 – copyleft
ASSEMBLEUR
Assembleur – Architectures CPU – ISA Extensions
105 – copyleft
ASSEMBLEUR
Assembleur – Architectures CPU – ISA Extensions
Jeu d’instruction RISC 8051
Jeu d’instruction CISC 8086
107 – copyleft
ASSEMBLEUR
Assembleur – Architectures CPU – ISA Extensions
Jeu d’instruction RISC 8051
Jeu d’instruction CISC 8086
ACALL Absolute Call MOV Move Memory
ADD, Add Accumulator (With Carry) MOVC Move Code Memory
ADDC
AJMP Absolute Jump MOVX Move Extended Memory
ANL Bitwise AND MUL Multiply Accumulator by B
CJNE Compare and Jump if Not Equal NOP No Operation
CLR Clear Register ORL Bitwise OR
CPL Complement Register POP Pop Value From Stack
109 – copyleft
ASSEMBLEUR
Assembleur – Architectures CPU – ISA Extensions
Jeu d’instruction RISC 8051
Jeu d’instruction CISC 8086
AAA ASCII adjust AL after addition HLT Enter halt state
AAD ASCII adjust AX before division IDIV Signed divide
AAM ASCII adjust AX after multiplication IMUL Signed multiply
AAS ASCII adjust AL after subtraction IN Input from port
ADC Add with carry INC Increment by 1
ADD Add INT Call to interrupt
CISC RISC
MOV CX,100 MOV CX,100
MOV DI, dst MOV DI, dst
MOV SI, src MOV SI, src
REP MOVSB LOOP:
MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNX LOOP
112 – copyleft
ASSEMBLEUR
Assembleur – Architectures CPU – ISA Extensions
114 – copyleft
ASSEMBLEUR
Assembleur – Architectures CPU – ISA Extensions
116 – copyleft
ASSEMBLEUR
Assembleur – Architectures CPU – ISA Extensions
117 – copyleft
LANGAGE
MACHINE :
ASSEMBLEUR 8086
UNITÉ ARITHMÉTIQUE ET LOGIQUE (UAL)
ð Unité chargée
ð Des opérations arithmétiques :
ð ADD (+), SUB (-), MUL (*), DIV (:), INC (+ 1), DEC (- 1)
ð Des opérations logiques :
ð AND, OR, XOR, NOT, CMP
ð LSL, LSR, ASR (décalages)
ARCHITECTURE DE VON NEUMAN
UNITÉ DE COMMANDE
ð R e g i s t r e s
ð Adresse, Donnée
ð INST, IP, SP , constantes (0, 1, ...),
Registres A, B, C, …
ð Registres tampons (TampA, TampB)
ð Registre des drapeaux de l'UAL
(Flags)
ð 2 B u s
ð S i g n a u x d e c o m m a n d e
Exemple :
R e g A <- R e g A + R e g B Signaux
Acti ons :
Tr a n s f e r t ( B u s 1 ) R e g A - > Ta m p A R O 1 0 , TA
Tr a n s f e r t ( B u s 1 ) R e g B - > Ta m p B R O 11 , T B
Choix UAL (C= 100, M= 0, Flags) C 2C1C 0 ,M, FI
Tr a n s f e r t ( B u s 2 ) U A L - > R e g A RI10
Une micro- instruction = ensemble des actions faisant fonctionner une fois le
chemin de do nn ée s
R O 1 0 ,TA ; RO 11 ,TB ; C= 100 , M= 0 , FI ; RI 1 0
Exemple:
¡ Programme en langage machine 80486 implanté à l’adresse
mémoire 0100h
A1 01 10 03 06 01 12 A3 01 14
ð 4 accumulateurs 16 bits
ð Accumulateur (AX)
ð Base (BX)
ð Counter (CX)
ð Accumulateur auxiliaire (DX)
ð Registres accessibles sous forme de 2 mots de 8 bits
ð 4 accumulateurs 16 bits
Le processur 8086 anciennement proposé par Intel. Ce CPU est à la base des
architectures x86, il se présente sous la forme d’un Boîtier à 40 broches:
: bus d’adresse de donnée
: bus de contrôle
: Interruptions
131 – copyleft
Organisation interne 8086
• Execution Unit : décode puis
exécute les instructions
présentes dans la file d’attente;
Registres généraux:
L e r e g i s tr e AX : Ap p e l é r e g i s tr e ac c umul ate ur. C ’e s t l e r e g i s tr e l e p l us uti l i s é
implicite me nt pa r le s ins tructions du 8086. Il pe ut ê tre sou s forme de de ux
r e g i s t r e s i n d é p e n d an t s d e t ai l l e 8 b i t s : AL et AH .
L e r e g i s tr e BX :
Il e s t appe lé re g is tre d e base . Il e s t utilisé aussi bie n pour le calcul que pour
l’adr e ssage . Comme AX, le re gis tre BX e s t cons titué de de ux re gis tre s 8 bits : BL
et BH.
L e r e g i s tr e C X :
C ' e s t l e r e g i s tr e c o mp te ur. I l e s t s o uve n t e mp l oyé d ' un e man i è r e i mp l i c i te p ar
ce r t aine s in s tructi ons comme compte ur ( ins tructions de bou cle , tr aite me nt de s
chaîne s de s ca r actè re s,...) .
CX = CH : CL
L e r e g i s tr e DX :
Ap p e l é r e g i s tr e d e d on n é e , i l e s t uti l i s é i mp l i c i te me n t p ar c e r tai n e s i n s tr uc ti on s
p o ur s to c ke r d e s o p é r an d e s o u d e s r é s ul tats .
DX = DH : DL
REGISTRES DU 8086
¡ Registre segment(CS,DS,SS,ES):
§ CS: Code Segment: registre segment de code;
§ DS: Data Segment: registre segment de données;
§ SS: Stack Segment: registre segment de pile;
§ ES: Extra Segment: registre segment supplémentaire pour compléter les
données;
¡ Indicateurs de contrôle :
¡ Les indicateurs de contrôle permettent de modifier le compor tement
du microprocesseur. Ils sont positionnés par le programmeur.
SEGMENTATION DE LA MÉMOIRE
Extra Segment
Stack Segment
Data Segment
ES:0x0000
SS:
Code Segment
0x0000
DS:0x0000
CS:0x0000
0x00000
145 – copyleft
Jeu d’instruction 8086
Mode d’adressage
Mov [000Fh], bl
Mov ax,[es:10h]
1o
64Ko 0xFFFF
Data Memory
…
0x000F
…
146 – copyleft
0 0x000
Jeu d’instruction 8086
Mode d’adressage
Data Memory
mov bx,000Fh, …
Mov [bx], al (segment ds)
0x000F
Mov [bp],al (segment ss)
…
0 0x000
0
ð Branchement : JMP
ð Branchements conditionnels : JE/ JZ (JNE/ JNZ) : Jump if
zero
: JO (JNO) : Jump if overflow
: JS (JNS) : Jump if sign
ð Comparaison de valeurs
ð IP = IP + déplacement
ZF : Zero Flag
CF : Carry Flag
ð SF : Sign Flag
ð !"#$%&'$($)$ZF = 1 si AX contient 5, et ZF = 0 si AX 5.
DÉCALAGE ET ROTATIONS
Comme SHL mais vers la droite. Le bit de droite est transféré dans CF.
SHL et SHR peuvent être utilisé pour multiplier/diviser des entiers
naturels (et non des relatifs car le bit de signe est perdu)
ROTATIONS
Rotation vers la gauche : le bit de poids fort passe à droite, et est aussi
copié dans CF. Les autres bits sont décalés d'une position.
RCL et RCR sont utiles pour lire bit à bit le contenu d'un registre7.
OPÉRATIONS LOGIQUES
ð AND est souvent utilisé pour forcer certains bits à 0. Après AND AX,
FF00, l'octet de poids faible de AX vaut 00, tandis que l'octet de
poids fort est inchangé.
ð XOR est souvent utilisé pour inverser certains bits. Après XOR AX,
FFFF, tous les bits de AX sont inversés
CODAGE
ð Implicite
ð immédiat
ð Direct
ð Basé
ð indexé
PROCESSUS
D’ASSEMBLAGE
ð 3 phases :
1. Saisie du code source avec un éditeur de texte
2. Compilation du code source
3. Édition des liens
ð permet de lier plusieurs codes objets en un seul exécutable
ð permet d ’inclure des fonctions prédéfinies dans des
bibliothèques
VARIABLES
DB : Variable 8 bits
DW : Variable 16 bits
EQU : Constante
var2 DB ?
tab DB 5 DUP (1,2)
Etiquette : adresse d’une méthode/ branchement
EXEMPLE:
message db 'hello, world’
msglen equ $-message
REPRÉSENTATION
MÉMOIRE : .COM
CS, DS, SS
Header DOS
100h
IP
Programme
64 Ko
Variables
SP
FICHIER .COM
ð Au début du programme
mov ah,02h
mov dl,4Fh
int 21h Int 20h It informs DOS that the
program is complete and that
;affichage de N occupied memory should be
released.
mov ah,02h
mov dl,4Eh
int 21h
PILE
ð Comment y accéder :
ð POP registre
Note : cet exemple n'est pas très utile, il vaut mieux employer
MOV AX, BX.)
PILE : EXEMPLE
D’UTILISATION (2)
ð La pile est souvent utilisée pour sauvegarder
temporairement le contenu des registres :
SP SP - 2
[SP] valeur du registre 16 bits.
16 bits
Emplacement
Adresses libre
Croissantes
SP-2
SP
PUSH POP
PROCÉDURES (1)
ð sauvegarde de IP
ð RETN = dépilement de IP
PASSAGE DE PARAMÈTRES
ð par registre
ð par la pile
Mov Res, AX
Retn = dépilement de IP
... pour retourner au
programme principal
PASSAGE PAR LA PILE (1)
ð avantage = « portabilité »
ð inconvénients = récupération des ;Procédure
paramètres plus « lourde »
Moyenne :
;programme PUSH BP
... Mov BP, SP
PUSH N1 Mov AX, [BP+4]
PUSH N2 Add AX, [BP+6]
Call Moyenne SHR AX, 1
POP Res Mov [BP+ 6], AX
... POP BP
Retn 2
PASSAGE PAR LA PILE (2)
ð Évolution de la pile
ð A quoi sert BP ?
Es (Extra Segment) 16 bits Ce segment peut être utilisé pour faire ce que
l'on veut. Par exemple, il peut pointer sur la
mémoire écran.
RAPPELS : REGISTRES DE
TRAVAIL
Adresse contenu
0000 adresse de la première fonction du BIOS
0004 adresse de la deuxième fonction du BIOS
...
VECTEURS
D’INTERRUPTION
Adresse contenu
...
0084H F1234560H (car 4x33 = 84H).
...
ð La table des vecteurs d'interruptions contient des valeurs
différentes pour chaque version de BIOS
Numéro Fonction
$ $*+,$-.'$/0 $1$+2$34534$64$78+9$:,4;$-.</0$$$$$
$ $*+,$!&'=$ $ $1$;+*734>8$?4$@+>;64$
$*:5A>4)$ $B453$-.'$/0000000@$$$$ $$
$ $CDE$@F3/G
$@F30)$ $"+,$H.'I0I$$$$$
$ $J*7$:KKF;L4$
$@F3/)$ $"+,$H.'I/I$
$:KKF;L4)$ $*+,$%M'N$ $1$:KKF;L:94$$$$
$ $ $F23$N/L$$$$ $ $$
$ $OM.$-.'/$$$$ $ $$
$ $.++7$*:5A>4$
$KF2)$$ $$
$ $*+,$:L'P!L$$$$ $$
$ $F23$N/L
IF … THEN … ELSE
FOR…
…
INSTRUCTIONS DE CONTRÔLE
INSTRUCTIONS DE CONTRÔLE
INSTRUCTIONS DE CONTRÔLE
L’OS ET COMPILATEUR
INTERPRÉTEUR ET
COMPILATEUR (1)
ð On distingue grossièrement deux familles de langages
informatique
ð BASIC : bricolage
ð LISP, Prolog : Intelligence Artificielle
ð Python : programmation système, Internet
ð Java : applets internet
ð MATLAB : calcul scientifique
ð Compilateur utilisé
ð Système d'exploitation (DOS, Windows, UNIX,...).
ð Taille des types : exemple int (16 ou 32 bits)
ð Modèle de mémoire utilisé (pointeurs sur 16 ou 32 bits,
données et code dans des segments différents ou non, etc.)
ð un langage de commande
ð divers utilitaires (compilateurs, éditeurs, outils, …)
ð une interface graphique pour l’utilisateur
SYSTÈME D’EXPLOITATION
ð OS/ 2 (IBM)
ð MacOS (Apple) :
ð processeurs 68000 puis PowerPC
ð UNIX = famille de SE :
ð Versions payantes généralement spécialisées à un type
de machine :
ð SunOS/ Solaris (Sun)
ð AIX (IBM)
ð HP/ UX (HP)
ð Versions libres :
ð LINUX : 80x86, 68000, PowerPC, Sparc …
PRÉSENTATION DU BIOS