You are on page 1of 86

Architecture des ordinateurs

Fa ssal Ouardi ouardi@fsr.ac.ma Coordinateur du Module M11

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

1/1

Mod ele de Von Neumann (1946)

M emoire s equentielle
programme (instructions) donn ees organisation en vecteur de mots.

Unit e centrale
Une unit e de traitement arithm etique ou logique : lU.A.L. Unit e de commande (contr ole).

Int erfaces dentr ees/sorties


Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 2/1

M emoire
d e nitions tr es large
M emoire : dispositif ( electronique) capable de conserver et de restituer une information Mot m emoire : ensemble de bits pouvant etre lus ou ecrits simultan ement

Importance
Deux caract eristiques essentielles pour un ordinateur : Vitesse de traitement Capacit e` a m emoriser les informations

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

3/1

M emoire

m emoire
On classe les m emoires selon Caract eristiques : capacit e, d ebit ... Type dacc` es : s equentiel, direct ...

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

3/1

M emoire
Di  erents types physiques de m emoires
Principaux supports utilis es : Semi-conducteur : registres Magn etique : disquettes Optique : CD-ROM

Dur ee de m emorisation
Fonction du temps :
Quasi-permanente : CD-ROM, disques, disquettes, ROM temporaire : m emoires dynamiques, registres

Alimentation electrique :
Aliment e: RAM, registre, Non aliment e: CD-ROM,...

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

3/1

M emoire
Capacit e
Repr esente le nombre dinformation stockable Exprim e en mot (word) ou octet (byte) le kilo informatique Ko vaut 1024 octets et non 1000 (210 = 1024 1000).

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

3/1

M emoire

Performance
Temps dacc` es : temps n ecessaire ` a une op eration de lecture/ ecriture D ebit : la quantit e dinformations lues/ ecrites par unit e de temps 1Mo /s Mode dacc` es : Mani` ere de retrouver une information

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

3/1

M emoire

Lid eal est de disposer dune m emoire tr` es rapide et illimit e ! Cest impossible !

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

3/1

M emoire
Hi erarchie
Plus les donn ees sont utilis ees, plus ont doit y acc eder rapidement hi erarchie du plus rapide au moins rapide du moins co uteux au plus co uteux du plus petit au plus grand

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

3/1

M emoire
Registres

Carac eristiques
Se trouvent int egr es dans le CPU Capacit e typique : < 1Ko Un registre est un mot stockant des informations relatives ` a une instruction
Op erandes Param` etres R esultats

Peu nombreux dans un CPU Tampon entre CPU et m emoire centrale Tr` es rapides (vitesse du CPU), D ebit : 4000 32000Mo /s

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

4/1

M emoire cache

M emoire

Carac eristiques
M emoire interm ediaire entre le processeur et la m emoire centrale M emoire cache est int egr ee dans le processeur et est cadenc ee ` a la m eme fr equence But :
D ebit de la m emoire centrale tr` es lent par rapport au d ebit requis par le processeur On acc el` ere la vitesse de lecture des informations par le CPU en les pla cant dans le cache

Capacit e : < 4Mo D ebit : 800 5000Mo /s

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

4/1

M emoire de masse

M emoire

Caract eristiques
M emoire de grande capacit e : plusieurs centaines de Mo ` a plusieurs centaines de Go M emoire non volatile Stockage Tr` es lente : 4 32Mo /s Exemples : Disque dure, DVD ou CD...

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

5/1

M emoire Principale

M emoire

Caract eristiques
Taille : quelques centaines de Mo ` a quelques Go De type DRAM car moins cher Vitesse relativement lente

RAM
Stockent des donn ees temporaires 2 cat egories :
RAM dynamique (DRAM) :
Condensateurs utilis es comme unit e de m emorisation. Rafra chissement p eriodique obligatoire Compos ee : 1 transistor, 1 condensateur

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

5/1

M emoire Principale

M emoire

Caract eristiques
Taille : quelques centaines de Mo ` a quelques Go De type DRAM car moins cher Vitesse relativement lente

RAM
Stockent des donn ees temporaires 2 cat egories :
RAM statique (SRAM) :
Bascules utilis ees comme unit e de m emorisation Plus rapide Pas de rafra chissement Compos ee : 4 transistors Co ut plus elev e
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 5/1

M emoire Principale

M emoire

ROM
Utilis es pour le stockage permanent 4 cat egories
ROM : ecriture unique lors de la fabrication PROM : ecriture unique apr` es la fabrication EPROM : admet un nombre d ecriture limit e (ea cable par ultra-violet) EAROM : admet un nombre d ecriture illimit e (ea cable par electricit e)

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

6/1

Interface d'entr ee/sortie

R^ ole
Connecter le p eriph erique au bus de donn ees G erer les echanges entre le processeur et le p eriph erique

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

7/1

Bus
Bus
Ensemble de liaisons physiques ls (ls, pistes de circuits imprim es,...) qui assure la transmission du m eme type dinformation entre plusieurs el ements mat eriels. Objectif : r eduire le nombre de voies n ecessaires ` a la communication des di erents composants. Caract eristiques :
Largeur : nombre de lignes physiques sur lesquelles les donn ees sont envoy es = nombre de bits transmis en parall` ele. Fr equence (en Hz) : nombre de paquets de donn ees envoy ees ou re cus par seconde. D edit maximal (ou taux de transfert maximal) : quantit e de donn ees transport ees par unit e de temps (largeur fr equence). Exemple : largeur 16 bits et fr equence 133MHz 266Mo /s
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 8/1

Bus

Bus de donn ees : bidirectionnel qui assure le transfert des instructions entre le processeur et son environnement, et inversement. Son nombre de lignes est egal ` a la capacit e de traitement du processeur. Bus dadresses : unidirectionnel qui permet la s election des informations ` a traiter dans un espace m emoire (ou espace adressable) n qui peut avoir 2 emplacements, avec n = nombre de conducteurs du bus dadresses. Bus de commande : bidrectionnel, constitu e par quelques conducteurs qui assurent la synchronisation des ux dinformations sur les bus des donn ees et des adresses.

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

8/1

Unit e Centrale
Processeur

Processeur (CPU, Central Processing Unit) qui est charg e dinterpr eter et dex ecuter les instructions dun programme, de lire ou de sauvegarder les r esultats dans la m emoire. Toutes les activit es du microprocesseur sont cadenc ees par une horloge.
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 9/1

Unit e Centrale
Processeur

Caract eristiques
fr equence dhorloge : en MHz ou GHz le nombre dinstructions par secondes quil est capable dex ecuter : en MIPS la taille des donn ees quil est capable de traiter : en bits
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 9/1

Unit e Centrale
Processeur

Une instruction est une suite de 0 et de 1 qui c odent des informations, selon un format d enit par le concepteur du processeur (sur un octet, un mot de 16 bits, ... ): linstruction elle-m eme, les op erandes, et la fa con dacc eder ` a ceux-ci.
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 9/1

Unit e de commande

Processeur

Cherche les instructions en m emoire (fetch) : positionne ladresse de linstruction sur le bus dadresses, puis, apr` es une d elais assurant que le contenu de cette adresse est bien stable sur le bus de donn ees, charge dans un registre le code instruction ainsi obtenu. Reconna t linstruction, op eration d esign ee par d ecodage (decode), Indique lunit e de traitement quels traitements arithm etiques ou op erations logiques il faut eectuer. s equencement (execute).
Architecture des ordinateurs 10 / 1

2 3

Fa ssal Ouardi (FSR, Rabat)

Unit e de commande

Processeur

Composition
Le registre instruction, not e RI, re coit le code de linstruction que lunit e de commande est all e chercher en m eoire. Le compteur ordinal, not e CO ou PC (Program Counter), est un compteur contenant ladresse de linstruction ` a ex ecuter.
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 10 / 1

Unit e de commande

Processeur

Composition
D ecodeur dinstruction est un circuit combinatoire de reconnaissance de linstruction contenue dans le registre instruction. Bloc logique de commande (S equenceur) est le dispositif qui produit la suite des commandes de chargement, sens de d ecalage, code op eration pour lUAL, etc. Il organise lex ecution des instructions au rythme dune horloge.
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 10 / 1

Unit e de traitement

Processeur

LUnit e Arithm etique et Logique (UAL): Un circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison, D ecalage , etc...) ou arithm etique (Addition, soustraction). Le registre d etat : Chacun de ces bits est un indicateur dont l etat d epend du r esultats de la derni` ere op eration eectu ee par lUAL. On les appelle indicateur d etat ou ag ou drapeaux.
etenue (carry : C) retenue interm ediaire (Auxiliary-Carry : AC) signe (Sign : S) d ebordement (overow : OV ou V) z ero (Z) parit e (Parity : P)

Les accumulateurs : Registres de travail qui servent ` a stocker une op erande au d ebut dune op eration arithm etique et le r esultat ` a la n de lop eration.
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 10 / 1

Sch ema fonctionnel

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

11 / 1

Cycle d'ex ecution d'une instruction


Fetch

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

12 / 1

Cycle d'ex ecution d'une instruction


Decode

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

12 / 1

Cycle d'ex ecution d'une instruction


Execute

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

12 / 1

Jeu d'instructions

La premi` ere etape de la conception dun microprocesseur est la d enition de son jeu dinstructions.

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

13 / 1

Jeu d'instructions
Codage
Une instruction est compos ee de deux champs : le code instruction (opcode) : indique au processeur quelle instruction r ealiser le champ op erande : contient la donn ee, ou la r ef erence ` a une donn ee en m emoire

Comment interpreter Operandes pour trouver les donn ees de linstruction opcode ?

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

13 / 1

Jeu d'instructions
Les modes d'adressage
Cest la fa con dacc` eder aux donn ees. On peut citer : direct sur registre : lop erande est un registre de donn ee ou dadresse. indirect sur registre : lop erande est d esign e soit par le contenu dun registre dadresse soit par laddition du contenu dun registre dadresse et d aune constante (d eplacement ou oset ) et/ou du contenu dun registre de donn ee ou dadresse d esign e par le terme dindex. imm ediat : la donn ee est fournie dans le code instruction. relatif au compteur ordinal : ladresse est calcul ee ` a partir de laddition du compteur ordinal et dun d eplacement et/ou dun index. implicite : les registres manipul es sont les registres d etat ou de contr ole ( etat, compteur ordinal, piles).

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

13 / 1

Jeu d'instructions
Types d'instructions
Transfert : mouvement de donn ees MOV... Arithm etiques et logiques : ADD, AND Contr ole de s equence :
saut conditionnel appel de proc edure

Interruptions : en g en eral int numero de 0 ` a 255.

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

13 / 1

Jeu d'instructions
Deux grands types de jeux dinstructions 1 CISC : Complex Instruction Set Computing
Exemples : processeurs Intel et AMD : familles x86
2

RISC : Reduced Instruction Set Computing


Exemples : Sun Sparc et IBM PowerPC

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

13 / 1

Jeu d'instructions
CISC vs RISC
Faire la somme du registre R1 et de la valeur ` a ladresse 10 en m emoire et placer le r esultat ` a ladresse 20 RISC ADD Reg , Reg , Reg CISC ADD Reg , Reg , Reg ADD Reg , Mem, Mem ADD Mem, Mem, Mem

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

13 / 1

Jeu d'instructions
CISC vs RISC
Faire la somme du registre R1 et de la valeur ` a ladresse 10 en m emoire et placer le r esultat ` a ladresse 20 RISC LOAD R2 , [10] ADD R3 , R1 , R2 STORE R3 , [20] CISC ADD R1 , [10], [20]

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

13 / 1

Langage Assembleur

Le langage dassemblage est une repr esentation symbolique du codage binaire des instructions machine.

Cest une version lisible par un humain du langage machine, obtenu en rempla cant les valeurs binaires du langage machine par des mn emoniques (instruction du langage assembleur).

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

14 / 1

Langage Assembleur
1

Ecriture dun ou plusieurs chiers sources Invocation de programmes de traduction, lassembleur pour la langage dassemblage, compilateur pour des langages evolu es Le chier cr e e sappelle chier objet Appel l editeur de liens (linker) qui prend en entr ee un ou plusieurs chiers objets pour cr eer un chier binaire ex ecutable (chargeable) Pour ex ecuter un chier, le chargeur (loader) va le chercher sur le disque et le ranger en m emoire.
Architecture des ordinateurs 14 / 1

Fa ssal Ouardi (FSR, Rabat)

Langage Assembleur
Phase dassemblage Premi` ere passe : Cr eation de la table des symboles et les adresses associ ees ` a chaque mn enomique.
1 2

initialisation dun compteur ` a z ero ce compteur est incr ement e` a chaque lecture dune ligne du chier source pour chaque symbole rencontr e, on cr ee une nouvelle entr ee dans la table des symboles (cross-reference). Si celui-ci est une etiquette, on lui associe la valeur du compteur

Deuxi` eme passe : ` a partir de de la table symboles lassembleur eectu le codage binaire de chaque instruction et la range dans le chier objet
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 14 / 1

Langage Assembleur
Edition des liens Les chiers objets comportent au moins trois sections : le programme (text segment, ou code segment) ; les donn ees initialis ees par lutilisateur (data segment) les donn ees non initialis ees (bss segment), eventuellement mise ` a z ero par le syst` eme).

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

14 / 1

Langage Assembleur

Fusion des espaces d'adressage des di  erents modules objets


l editeur de liens construit une table qui contient le nom, la taille et la longueur de tous les modules objets, puis il aecte une adresse de chargement ` a chaque module objet. Construit un module objet unique dot e dune seule table de symboles

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

14 / 1

Langage Assembleur

Assembleur
Programme qui transforme le langage assembleur en langage machine.

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

14 / 1

Architecture Intel 32

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

15 / 1

Architecture Intel 32

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

15 / 1

Architecture Intel 32
Chaque registre peut avoir une fonction particuli` ere implicite selon linstruction utilis ee : * EAX : accumulateur ou valeur de retour de fonction * EBX : base ou pointeur vers des donn ees dans le segment DS (adresse
m emoire)

* ECX : compteur de boucles * EDX : pointeur pour entr ees/sorties * ESI : pointeur de donn ees dans DS et pointeur source pour la
manipulation de cha nes de caract` eres

* EDI : pointeur de donn ees dans ES et pointeur destination pour la


manipulation de cha nes de caract` eres

* EBP : base de la pile (dans le segment SS) * ESP : pointeur sur le sommet de la pile (dans le segment SS) Autres registres : * EIP : pointeur dinstruction * FLAGS : ags (drapeaux 1 bit)
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 15 / 1

Architecture Intel 32
Chaque registre peut avoir une fonction particuli` ere implicite selon linstruction utilis ee : * EAX : accumulateur ou valeur de retour de fonction * EBX : base ou pointeur vers des donn ees dans le segment DS (adresse
m emoire)

* ECX : compteur de boucles * EDX : pointeur pour entr ees/sorties * ESI : pointeur de donn ees dans DS et pointeur source pour la
manipulation de cha nes de caract` eres

* EDI : pointeur de donn ees dans ES et pointeur destination pour la


manipulation de cha nes de caract` eres

* EBP : base de la pile (dans le segment SS) * ESP : pointeur sur le sommet de la pile (dans le segment SS) Registres de segments m emoires : * CS : code * SS : pile (stack) * DS : donn ees (data)
Fa ssal Ouardi (FSR, Rabat)

* ES : extra
Architecture des ordinateurs 15 / 1

Architecture Intel 32

Registre Flags

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

15 / 1

Architecture Intel 32

Bus dadresse de larchitecture x86 20 bits soit 1Mo de m emoire adressable segment : zone m emoire de 64Ko .
Les registres nont que 16 bits 64Ko de m emoire adressable

Pour avoir des adresses m emoire sur 20 bits avec des registres de 16 bits
On combine 2 registres Le premier donne ladresse de base dun segment Le second donne le d eplacement dans ce segment

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

15 / 1

Architecture Intel 32
Adressage sur 20 bits avec 2 registres 2 registres 16 bits : peut coder adresses sur 32 bits Pour uniquement 20 bits
D ecale le premier registre de 4 bits et ladditionne au second Adresse not ee A:B Adresse r eelle : A * 16 + B

Exemple (les nombres sont en hexa)


3100:27EE correspond ` a ladresse 31000 + 27EE = 337EE D ecaler de 4 bits en binaire revient ` a d ecaler dun chire en hexa

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

15 / 1

Architecture Intel 32
4 segments dadresses : CS, DS, SS, ES 2 registres pour adresser des mots m emoires
1 2

Le premier est le registre de segment Le second un registre g en eral

On lappelle loset (d ecalage) Addresse : segment:oset

Exemples
CS:IP : adressee de la prochaine instruction ` a ex ecuter DS:SI : adresse dune donn ee SS:SP : adresse du haut de la pile
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 15 / 1

Architecture Intel 32

Addressage m emoire en IA32 Pentium : Adresses m emoire codables sur 32 bits 232 = 4Go adressable Pentium Pro/II : Extensions possibles pour coder des adresses sur 36 bits 236 = 64Go adressable
Segment cod e sur 16 bits Oset cod e sur 32 bits

Deux segments suppl ementaires en IA32


FS et GS : donn ees 4 segments de donn ees au total : DS, ES, FS, GS

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

15 / 1

Architecture Intel 32

Pourquoi des segments ? Pour pouvoir adresser plus de 64Ko de m emoire dans un programme car les registres navaient que 16 bits s eparation des zones m emoires selon leur r ole : la pile ne peut pas etre ecras ee par des donn ees ou d eborder sur des donn ees/code

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

15 / 1

Mode d'adressage en Architecture Intel 32

adressage par registre : Utilisation des noms des registres (AX, BX, CX, ...), MOV EAX, EBX adressage imm ediat adressages en m emoire

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

16 / 1

Mode d'adressage en Architecture Intel 32

adressage par registre adressage imm ediat : Utilisation dune valeur donn ee, dune constante, MOV EAX, 460h adressages en m emoire

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

16 / 1

Mode d'adressage en Architecture Intel 32


adressage par registre adressage imm ediat adressages en m emoire :
adressage direct : Utilisation de ladresse m emoire o` u aller chercher la donn ee MOV AX,[300h] adressage indirect par registre : Utilisation de ladresse m emoire contenue dans un registre (BX, BP, SI, DI) MOV BX,300h MOV AX,[BX] adressage relatif ` a une base : Utilisation de ladresse m emoire obtenue par la somme dun registre de base (EBX ou EBP) et un d eplacement (dep) : [EBX + dep] MOV BX,2F0h MOV AX,[BX+10h]
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 16 / 1

Mode d'adressage en Architecture Intel 32


adressage par registre adressage imm ediat adressages en m emoire :
adressage direct index e : Utilisation de ladresse m emoire obtenue par la somme dun d eplacement (dep) et un registre dindex (ESI ou EDI) MOV EDI,10h MOV EAX,[2F0h+EDI] adressage index e par rapport ` a une base : Utilisation de ladresse m emoire obtenue par la somme dun registre de base (EBX ou EBP), dun registre dindex (ESI ou EDI) et dun d eplacement (dep). MOV EDI,15h MOV EBX,0Bh MOV EAX,[EBX+EDI+1E0h]

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

16 / 1

Assembleur NASM

R eferences
Lexcellent PC Assembly Language de Paul A. Carter http ://www.drpaulcarter.com/

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

17 / 1

Assembleur NASM

programme en assembleur = chier texte (extension .asm) organis e en plusieurs segments, au moins trois segments associ es ` a des registres (16 bits):
code : CS EIP .text donn ees : DS .data pile : SS ESP .bss

sections di erentes pour les donn ees et le code une seule instruction par ligne, s eparateur = changement de ligne 1 ligne de code = 4 champs (certains optionnels) :

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

18 / 1

Assembleur NASM

etiquette :

mn emonique op erandes ; commentaire

e tiquette : adresse eective de l ainstruction, utile pour les branchements mn emonique : nom g en erique donn e` a une instruction : ADD, JUMP...

op erandes : arguments de linstruction : 0, 1 ou 2 ;commentaires :non pris en compte au moment de lassemblage

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

18 / 1

Assembleur NASM

Format dune instruction machine

etiquette :

mn emonique op erandes ; commentaire

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

18 / 1

Assembleur NASM

Types des op erandes


op erande 1 : destination registre registre registre m emoire m emoire op erande 2 : source registre imm ediat m emoire registre imm ediat

Jamais de m emoire ` a m emoire, il faut passer par un registre

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

18 / 1

Assembleur NASM
Structure d'un programme

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

19 / 1

Assembleur NASM
Structure d'un programme

Directives pour NASM = Instructions pour le processeur

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

19 / 1

Structure d'un programme : les donn ees

Assembleur NASM

Directives
Une Directive est destin ee ` a lassembleur, pas au processeur. Elles ne sont pas traduites en code machine. Les utilisations courantes des directives sont : la d enition de constantes la d enition de m emoire pour stocker des donn ees grouper la m emoire en segment inclure dautres chiers

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

19 / 1

Structure d'un programme : les donn ees

Assembleur NASM

Directives
equa : utile pour d enir un symble, symbole equa valeur

%dene : utile pour d enir des macros, %dene SIZE 100 %include : permet dinclure dautres chiers, %include asm io .inc

extern printf : printf sera import e global main : main sera export e

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

19 / 1

Structure d'un programme : les donn ees

Assembleur NASM

Donn ees initialis ees :

segment .data d eclarer des donn ees initialis ees avec la directive : DX avec X egale Unit e Octet Mot Double mot Quadruple mot Dix octets Lettre X B W D Q T

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

19 / 1

Structure d'un programme : les donn ees

Assembleur NASM

Donn ees initialis ees :


Exemple :

segment .data d eclarer des donn ees initialis ees avec la directive : DX

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

19 / 1

Structure d'un programme : les donn ees

Assembleur NASM

Donn ees non initialis ees :

segment .bss d eclarer des donn ees non initialis ees avec la directive : resX avec X egale Unit e Octet Mot Double mot Quadruple mot Dix octets Lettre X B W D Q T

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

19 / 1

Structure d'un programme : les donn ees

Assembleur NASM

Donn ees non initialis ees :

segment .bss d eclarer des donn ees non initialis ees avec la directive : resX Exemple : ( etiquette obligatoire)

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

19 / 1

Structure d'un programme : les donn ees

Assembleur NASM

Donn ees non initialis ees :

segment .bss d eclarer des donn ees non initialis ees avec la directive : resX Exemple : ( etiquette obligatoire)

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

19 / 1

Structure d'un programme : les donn ees

Assembleur NASM

Utilisation des etiquettes ou labels :


label simple fait r ef erence ` a ladresse (ou oset) de la donn ee label entre crochets [] est interpr et e comme la donn ee ` a cette adresse

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

19 / 1

Assembleur NASM
Segment de code

Corps du programme : segment .text


commencer par d eclarer global l etiquette de d ebut de programme (main) pour quelle soit visible : segment .text global main main : enter 0,0 ; ouvre une fen` etre de pile n de chier : mov eax, 0 leave ret ; signie n du programme ; lib` ere la zone utilis ee sur la pile ; restaure EIP

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

20 / 1

Assembleur NASM
Segment de code

Corps du programme : segment .text


commencer par d eclarer global l etiquette de d ebut de programme (main) pour quelle soit visible : segment .text global main main : enter 0,0 ; ouvre une fen` etre de pile n de chier : mov eax, 0 leave ret ; signie n du programme ; lib` ere la zone utilis ee sur la pile ; restaure EIP

EIP Le compteur de programme, contient ladresse de la prochaine instruction ` a ex ecuter.


Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 20 / 1

Assembleur NASM
Fichier squelette

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

21 / 1

Assembleur NASM
Assembler un programme

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

21 / 1

Assembleur NASM
Entr ee/Sortie

Interruption

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

21 / 1

Assembleur NASM
Entr ee/Sortie

Entr ees-sorties (I/O) : echanges dinformations entre le processeur et les p eriph eriques. Entr ees : donn ees envoy ees par un p eriph erique ` a destination de lunit e centrale. Sorties : donn ees emises par lunit e centrale ` a destination dun p eriph erique. Gestion par interruptions : permet de r eagir rapidement ` a un changement en entr ee. le p eriph erique pr evient le processeur par une interruption, le processeur interrompt la t ache en cours, eectue laction pr evue pour cette interruption et reprend lex ecution du programme principal o` u il lavait laiss e. Gestion haut-niveau : Biblioth` eques standards en C pour les E/S. MAIS, les conventions dappels utilis ees par C sont complexes...
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 21 / 1

Assembleur NASM
Entr ee/Sortie

Achage avec printf


extern printf segment .data msg2: db msg 2, 10, 0 segment .text global main main: ... push msg2 call printf ...

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

21 / 1

Assembleur NASM
Entr ee/Sortie

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

21 / 1

Assembleur NASM
Entr ee/Sortie

Achage avec asm io.inc


%include asm io.inc segment .data msg3: db msg 3, 10, 0 segment .text global main main: ... mov eax, msg3 call print string ...

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

21 / 1

Assembleur NASM
D ebogage

En assembleur, le d ebogage consiste essentiellement ` a tracer l etat des registres et de la m emoire Macros utilis ees comme des instructions ordinaires dont les op erandes sont s epar es par des virgules dump regs A ache les valeurs des registres (en hexad ecimal) ainsi que les bits positionn es du registre FLAGS. A est un entier qui est ach e egalement (pour distinguer 2 appels)

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

21 / 1

Assembleur NASM
D ebogage

En assembleur, le d ebogage consiste essentiellement ` a tracer l etat des registres et de la m emoire Macros utilis ees comme des instructions ordinaires dont les op erandes sont s epar es par des virgules dump regs A dump mem A, B, C ache les valeurs dune r egion de la m emoire (en hexad ecimal et ASCII). A est un entier utilis e pour etiqueter la sortie, B est ladresse ` a acher (cela peut etre un label), C est le nombre de paragraphes de 16 octets ` a acher apr` es dump stack A, B, C dump math A

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

21 / 1

Assembleur NASM
D ebogage

En assembleur, le d ebogage consiste essentiellement ` a tracer l etat des registres et de la m emoire Macros utilis ees comme des instructions ordinaires dont les op erandes sont s epar es par des virgules dump regs A dump mem A, B, C dump stack A, B, C ache les valeurs de la pile du processeur autour de ladresse contenue dans EBP (B double mots apr` es et C double mots avant). A est un entier utilis e pour etiqueter la sortie dump math A

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

21 / 1

Assembleur NASM
D ebogage

En assembleur, le d ebogage consiste essentiellement ` a tracer l etat des registres et de la m emoire Macros utilis ees comme des instructions ordinaires dont les op erandes sont s epar es par des virgules dump regs A dump mem A, B, C dump stack A, B, C dump math A ache les valeurs des registres du coprocesseur arithm eique. A est un entier utilis e pour etiqueter la sortie

Fa ssal Ouardi (FSR, Rabat)

Architecture des ordinateurs

21 / 1

Exemple
Adresse m emoire 0x100 0x104 0x108 0x10C eax [104h] 108h [EAX] [EAX+4] [9+EAX+EDX] [260+ECX+EDX] [FCh+ECX*4] [EAX+EDX*4]
Fa ssal Ouardi (FSR, Rabat) Architecture des ordinateurs 22 / 1

Valeur 0xFF 0xAB 0x13 0x11

Registre EAX ECX EDX

Valeur 0x100 0x1 0x3

Exemple
Adresse m emoire 0x100 0x104 0x108 0x10C eax [104h] 108h [EAX] [EAX+4] [9+EAX+EDX] [260+ECX+EDX] [FCh+ECX*4] [EAX+EDX*4]
Fa ssal Ouardi (FSR, Rabat)

Valeur 0xFF 0xAB 0x13 0x11 0x100 0xAB 0x108 0xFF 0xAB 0x11 0xAB 0xFF 0x11

Registre EAX ECX EDX

Valeur 0x100 0x1 0x3

9+0x100+0x3=0x10C 260=16*16+4=0x104 0xFC+1*0x4 = 0x100 0x100+0x3*4=0x10C


Architecture des ordinateurs 22 / 1

You might also like