ARCHITECTURE DES ORDINATEURS

Documents pareils
Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Rappels d architecture

Conception de circuits numériques et architecture des ordinateurs

Programmation assembleur : aperçu

Exécution des instructions machine

ASR1 TD7 : Un microprocesseur RISC 16 bits

CORRECTION EXERCICES ALGORITHME 1

Jeu d instructions NIOS II

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

Mathématiques appliquées à l informatique

Architecture des ordinateurs

Représentation des Nombres

Licence Sciences et Technologies Examen janvier 2010

4. Initiation à l'assembleur

Compilation (INF 564)

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

CM2 L architecture MIPS32

Principe de fonctionnement des périphériques des ordinateurs en vue de la programmation. Patrick Cégielski

Ordinateurs, Structure et Applications

Microprocesseur + Logiciel

Cours Informatique 1. Monsieur SADOUNI Salheddine

Architecture des ordinateurs Introduction à l informatique

Les opérations binaires

Structure d un programme

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Codage d information. Codage d information : -Définition-

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

La mémoire. Un ordinateur. L'octet. Le bit

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Solution du challenge SSTIC Emilien Girault ANSSI/COSSI/DTO/BAI 06/06/13

Algorithmique et Programmation, IMA

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Département informatique de l université d Angers


Informatique Générale

3. Structure des ordinateurs. 3.1 L' Unité Centrale (UC) ou processeur (Central Processing Unit CPU)

Représentation d un entier en base b

Programmation C++ (débutant)/instructions for, while et do...while

CONFIGURATION DE L AUTOMATE SIEMENS

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cours d Informatique

Résumé Génération de code Le code intermédiaire

Bases de programmation. Cours 5. Structurer les données

V- Manipulations de nombres en binaire

IV- Comment fonctionne un ordinateur?

IFT2880 Organisation des ordinateurs et systèmes

Cours 1 : La compilation

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Logiciel de Base. I. Représentation des nombres

Conversion d un entier. Méthode par soustraction

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Présentation du cours

Architecture Matérielle et Logicielle (LIF6) Cahier d'exercices, automne 2014

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Déprotection semi-automatique de binaire

Une version javascript sera disponible directement dans le cours prochainement.

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Feuille TD n 1 Exercices d algorithmique éléments de correction

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Jeux de caracte res et encodage (par Michel Michaud 2014)

TP, première séquence d exercices.

Architecture : Circuits numériques et éléments d architecture

Chapitre 10 Arithmétique réelle

Architecture de l ordinateur

Introduction à l algorithmique et à la programmation (Info 2)

PIC : COURS ASSEMBLEUR

I- Définitions des signaux.

Cours d Algorithmique et de Langage C v 3.0

Plan du cours. Historique du langage Nouveautés de Java 7

Claude Delannoy. 3 e édition C++

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Introduction à l algorithmique et à la programmation M1102 CM n 3

Programmation en langage C

Corrigé du baccalauréat S Asie 21 juin 2010

INFORMATIONS DIVERSES

Exercices - Polynômes : corrigé. Opérations sur les polynômes

TP a Notions de base sur le découpage en sous-réseaux

!" #$#% #"& ' ( &)(*"% * $*' )#""*(+#%(' $#),")- '(*+.%#"'#/* "'") $'

NOTICE DE PROGRAMMATION D AUTOMATES SIEMENS S7 300 S7 400

COMMANDER la puissance par MODULATION COMMUNIQUER

C f tracée ci- contre est la représentation graphique d une

Ce document a été mis en ligne par le Canopé de l académie de Montpellier pour la Base Nationale des Sujets d Examens de l enseignement professionnel.

IFT1215 Introduction aux systèmes informatiques

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

GPA770 Microélectronique appliquée Exercices série A

Architecture matérielle des systèmes informatiques

Transcription:

ARCHITECTURE DES ORDINATEURS Filière : InfoTronique Chap. 4 : Architecture et fonctionnement du microprocesseur 8086 Dr. Abdelhakim Khouas Email : sm5_archi@hotmail.fr Département de Physique Faculté des Sciences

Objectif de ce chapitre Comprendre l architecture et le jeux d instruction du 8086 Architecture interne du 8086 Unité arithmétique et logique (UAL) Unité de commande Traitement et exécution des instructions Programme assembleur Représentation et codage des instruction Jeu d instructions du 8086 Architecture Chap. 4 1

Plan 1. Architecture interne du 8086 Unité d exécution Unité de transfert ou de commande 2. Fonctionnement du 8086 Programme assembleur Représentation et codage des instructions Traitement et exécution des instructions 3. Jeu d instruction du 8086 Instructions de transfert de données Instructions arithmétiques et logiques Instructions de décalage et de rotation Instructions de comparaison Instructions de sauts conditionnels et inconditionnels Instructions liées au registre d état 4. Exemples de codage 5. Conclusion Architecture Chap. 4 2

Rappel Architecture d un ordinateur Architecture Von Newmann Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 4 3

Rappel Les registres du 8086 AX=0FFF BX=0FFF CX=0000 DX=00FF SP=FFEE BP=0000 SI=0000 DI=0000 DS=13B0 ES=13B0 SS=13B0 CS=13B0 IP=0306 NV UP EI PL NZ NA PO NC 4 Registres généraux : AX, BX, CX et DX. Chaque registre général est composé de deux registres de 2 octets (8 bits) (e.g. AX = AH*256 + AL, AH est le registre de poids fort et AL est le registre de poids faible) 2 Registres d index : SI (Source Index) et DI (Destination Index). 4 Registres de segment : CS (Code Segment), DS (Data Segment), ES (Extra segment), et SS (Stack Segment) 3 registres de pointeur : IP (instruction Pointer), SP (Stack Pointer) et BP (Base Pointer). 1 Registre d état : F (Flag Register). les flags du registre sont : débordement, retenue, retenue auxiliaire, signe, parité, zéro, interruption, exécution pas à pas. Architecture Chap. 4 4

1. Architecture interne du 8086 Description du μp 8086 Apparu en 1978 16 bits de données 20 bits d adresse Boîtier DIP (Dual In-line Package) 40 broches Les adresses et les données sont multiplexés Description du 8086 Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 4 5

1. Architecture interne du 8086 Démultiplexage des signaux adressses/données Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 4 6

1. Architecture interne du 8086 Le microprocesseur 8086 est composé principalement de deux unités : 1. Unité d exécution (Execution Unit EU) 2. Unité d interfaçage de bus (Bus interface Unit BIU) Architecture Chap. 4 7

1. Architecture interne du 8086 Architecture interne du 8086 Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 4 8

1. Architecture interne du 8086 Architecture interne du 8086 Réf. : Principe des microprocesseurs Jaques BAUMANN Architecture Chap. 4 9

2. Fonctionnement du 8086 Le fonctionnement d un μp consiste à exécuter un programme en assembleur 8086 Architecture Chap. 4 10

2.1 Programme assembleur Un programme assembleur est une suite d instructions précises données par le fabricant du μp et qui sont comprises par le μp Exemple : Programme assembleur du 8086 mov ax,ff mov bx,[35] add ax,bx Architecture Chap. 4 11

2.2 Représentation et codage des instructions L instruction est une opération de base qui peut être décodée et exécutée par le μp Format d une instruction Chaque instruction a un format donné Le format général d une instruction est : Mnémonique Opérande 1 [Opérande 2] Mnémonique: est le nom de l opération Opérande 1 : est en général un registre ou ne case mémoire Opérande 2 : est soit un registre, soit une case mémoire, soit une valeur Architecture Chap. 4 12

2.2 Représentation et codage des instructions Formats des instructions Le format général d une instruction est : Mnémonique Opérande 1 [Opérande 2] Exemples : Mnémonique: est le nom de l opération Opérande 1 : est en général un registre ou une case mémoire Opérande 2 : est soit un registre, soit une case mémoire, soit une valeur MOV AX,[00FF] ADD AX,BX STC JMP 0100 Architecture Chap. 4 13

2.2 Représentation et codage des instructions Chaque instruction est placée en mémoire sous forme codée Cette représentation est appelé code machine Le codage de l instruction est effectué en décomposant l instruction en sous groupes de bits appelés champs, spécifiant les caractéristiques de l instruction. Les différents champs sont : Code opération : code indiquant l opération (ADD, MOV, SUB, etc) Type de donnée : 1 pour octet et 0 pour mot (2 octets) Registre : indique le numéro d un des registres utilisés Mode d adressage : indique le mode d adressage (voir ch. mémoire) Architecture Chap. 4 14

2.2 Représentation et codage des instructions Code opération d une instruction (opcode) Chaque instruction est codée en binaire et est décodé par le μp lors de l exécution de l instruction Exemple : Ci-dessous différents codes de l instruction MOV donnés par la commande u de debug 13B0:0100 B8FF00 MOV AX,00FF 13B0:0103 A1FF00 MOV AX,[00FF] 13B0:0106 89D8 MOV AX,BX 13B0:0108 8B07 MOV AX,[BX] Architecture Chap. 4 15

2.2 Représentation et codage des instructions Exemples de codes opération du 8086 : Architecture Chap. 4 16

2.3 Traitement et exécution d une instruction Les étapes d exécution d une instruction sont : 1. Chargement de l instruction courante (registre IP) 2. Incrémentation du pointeur d instruction 3. Décodage et analyse de l instruction 4. Localisation et chargement des données 5. Exécution de l instruction 6. Retour à l étape 1 Ce cycle s appelle : Cycle de chargement-décodage-exécution Ou (fetch-decode-excute) cycle Architecture Chap. 4 17

3. Jeu d instructions du 8086 Définition : C est l ensemble des instructions qui peuvent être exécutées par le μp Il existe plusieurs groupes d instructions (voir Annexe A des TP) Les instructions de transfert de données Les instructions arithmétiques et logiques Les instruction de décalage et rotation L instruction de comparaison Les instructions de saut et de branchement Les instructions relatives au registre d état Architecture Chap. 4 18

3.1 Instructions de transfert de données Architecture Chap. 4 19

3.2 Instructions arithmétiques et logiques Addition : ADD opérande1,opérande2 opérande1 opérande1 + opérande2 Exemple : add byte ptr [1200H],05H ajoute la valeur 05H au contenu de la case mémoire d offset 1200H (adressage immédiat). Soustraction : SUB opérande1,opérande2 opérande1 opérande1 opérande2 Architecture Chap. 4 20

3.2 Instructions arithmétiques et logiques Multiplication : MUL opérande Cette instruction effectue la multiplication du contenu de AL par un opérande sur 1 octet ou du contenu de AX par un opérande sur 2 octets. Le résultat est placé dans AX si les données à multiplier sont sur 1 octet (résultat sur 16 bits), dans (DX,AX) si elles sont sur 2 octets (résultat sur 32 bits). Si opérande sur 1 octet : AX <-- AL * opérande Si opérande sur 2 octets : (DX,AX) <-- AX * opérande Exemple 1: mov al,51 mov bl,32 mul bl AX = 51 32 Architecture Chap. 4 21

3.2 Instructions arithmétiques et logiques Exemple 2 : mov ax,4253 mov bx,1689 mul bx (DX, AX) = 4253 1689 Exemple 3 : mov al,43 mov byte ptr [1200H],28 mul byte ptr [1200H] AX = 43 28 Exemple 4 : mov ax,1234 mov word ptr [1200H],5678 mul word ptr [1200H] (DX, AX) = 1234 5678 Architecture Chap. 4 22

3.2 Instructions arithmétiques et logiques Division : DIV opérande Cette instruction effectue la division du contenu de AX par un opérande sur 1 octet ou le contenu de (DX,AX) par un opérande sur 2 octets. Si opérande sur 1 octet : AL=quotient et AH=reste Si opérande sur 2 octets : AX=quotient et DX=reste. Exemples : mov ax,35 mov bl,10 div bl AL = 3 (quotient) et AH = 5 (reste) mov dx,0 mov ax,1234 mov bx,10 div bx AX = 123 (quotient) et DX = 4 (reste) Architecture Chap. 4 23

3.2 Instructions arithmétiques et logiques Instructions logiques OU logique : OR op1,op2 ; ET logique : AND op1,op2 ; OU exclusif : XOR op1,op2 ; Négation : NOT op ; Complément à 1 : NEG op ; op not(op) +1. Autre instructions : ADC : addition avec retenue ; SBB : soustraction avec retenue ; INC : incrémentation d une unité ; DEC : décrémentation d une unité ; IMUL : multiplication signée ; IDIV : division signée. Architecture Chap. 4 24

3.3 Instructions de décalage et de rotation shl dest, op shr dest, op sar dest, op rol dest, op ror dest, op rcl dest, op rcr dest, op décalage logique gauche dest.0 décalage logique droite 0.dest décalage arithmétique droite S.dest rotation gauche dest rotation droite dest rot. gauche dest.c rot. droite C.dest dest == registre ou adresse mémoire OP == 1 ou CL Architecture Chap. 4 25

3.3 Instructions de décalage et de rotation Architecture Chap. 4 26

3.3 Instructions de décalage et de rotation Architecture Chap. 4 27

3.3 Instructions de décalage et de rotation Architecture Chap. 4 28

3.3 Instructions de décalage et de rotation Architecture Chap. 4 29

3.4 Instruction de comparaison Instruction de comparaison : CMP opérande1 opérande2 ; --> opérande 1 opérande2 Cette instruction permet de comparer les deux opérandes et d activer les flags du registre d état pour les sauts conditionnels Exemple : mov al, 23 cmp al, 34 --> 29 34 (positionne le bit de carry C et le bit de signe S, le bit de zéro Z vaut 0) Architecture Chap. 4 30

3.5 Instructions de sauts et de branchement Instructions de sauts inconditionnels : JMP addr CALL addr RET saut inconditionnel appel sous-programme retour sous-programme Exemple (boucle infinie) boucle : inc ax dec bx jmp boucle Remarques : Avec debug, il faut écrire le code en deux phases, la première permet de récupérer l adresse de saut. Certains assembleurs utilisent des labels Architecture Chap. 4 31

3.5 Instructions de sauts et de branchement Instructions de sauts conditionnels / carry: JC addr saut si carry=1 JNC addr saut si carry=0 Instructions de sauts conditionnels / entiers : JE addr saut si = JNE addr saut si =/ JZ addr saut si = 0 JNZ addr saut si =/ 0 Architecture Chap. 4 32

3.5 Instructions de sauts et de branchement Instructions de sauts conditionnels / entiers non signés: JB addr saut si < JA addr saut si > JBE addr saut si <= JAE addr saut si >= Instructions de sauts conditionnels / entiers signés : JL addr saut si < JG addr saut si > JLE addr saut si <= JGE addr saut si >= Architecture Chap. 4 33

3.5 Instructions de sauts et de branchement Autres instructions de sauts conditionnels : JCXZ addr saut si CX vaut 0 JO addr saut si débordement (O =1) JNO addr saut si pas de débordement (O =0) JP addr saut si parité (P =1) JNP addr saut si pas de parité (P =0) JS addr saut si signe (S =1) JNS addr saut si pas de signe (S =0) Les boucles : LOOP addr saut court si le compteur CX est différent de 0 LOOPE addr saut court si compteur CX différent de 0 et Z =1 LOOPNE addr saut court si compteur CX différent de 0 et Z =0 Architecture Chap. 4 34

3.5 Instructions de sauts et de branchement Exemple : Addition des 5 valeurs se trouvant à l adresse 1101-1105 13C9:0100 BA0000 MOV DX,0000 13C9:0103 B90500 MOV CX,0005 13C9:0106 89CB MOV BX,CX 13C9:0108 02970011 ADD DL,[BX+1100] 13C9:010C E2F8 LOOP 0106 13C9:010E CD20 INT 20 Architecture Chap. 4 35

3.5 Instructions de sauts et de branchement Exemple : Addition des valeurs contenu dans la mémoire à partir de l adresse 400h jusqu au débordement 13C9:0300 BE0004 MOV SI,0400 13C9:0303 BB0000 MOV BX,0000 13C9:0306 BA0000 MOV DX,0000 13C9:0309 0310 ADD DX,[BX+SI] 13C9:030B 0310 ADD SI,2 13C9:030E 71FC JNO 0309 13C9:030G CD20 INT 20 Architecture Chap. 4 36

3.6 Instructions relatives au registre d état LAHF : copie dans le registre AH la valeur du registre d état SAHF : copie dans le registre d état le contenu du registre AH PUSHF : Sauvegarde du registre d état dans la pile POPF : Récupération du registre d état de la pile CLC : mise à 0 de l indicateur de retenue C STC : mise à 1 de l indicateur de retenue C CMC : complémente l indicateur de retenue C CLD : mise à zéro de l indicateur de direction D STD : mise à 1 de l indicateur de direction D Architecture Chap. 4 37

4. Exemples de codage Traduction en assembleur de la boucle pour : POUR indice := 1 à n FAIRE action FAIT Transformation : POUR indice := n à 1, pas := -1 FAIRE action FAIT Cette boucle se traduit en assembleur de la manière suivante : mov cx, n POURn:... action loop POURn Architecture Chap. 4 38

4. Exemples de codage Traduction de la boucle Si-Alors-Sinon : SI (condition vraie) ALORS action-alors SINON action-sinon FIN_SI Cette boucle se traduit en assembleur de la manière suivante : calcul de la condition Jcc SINONn action-alors... JMP FSIn SINONn: action-sinon... FSIn:... Architecture Chap. 4 39

4. Exemples de codage Traduction de la boucle répéter REPETER action JUSQUA (condition vraie) Cette boucle se traduit en assembleur de la manière suivante : REPETER action... calcul de la condition (positionnement des flags) Jcc REPETER Architecture Chap. 4 40

4. Exemples de codage Traduction en assembleur de la boucle tant que : TANT-QUE (condition) FAIRE action FIN_TQ Cette boucle se traduit en assembleur de la manière suivante : TQ : calcul de la condition Jcc FTQ action... JMP TQ FTQ:... Architecture Chap. 4 41

4. Exemples de codage Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 4 42

5. Conclusion Ce qui est important à retenir : Architecture interne du 8086 Représentation et codage des instructions Exécution des instructions Jeux d instruction du 8086 Architecture Chap. 4 43