Patricia Renault UPMC 2005/2006

Slides:



Advertisements
Présentations similaires
Électronique de base du processeur
Advertisements

Premier programme en C :
La boucle for : init7.c et init71.c
Le Concept du programme enregistré
Architecture de machines Le microprocesseur
Introduction au langage C
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Algorithmique et Programmation
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
Objectif de l’exposé.
C.
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Mémoire & Processus Cours SE - SRC
Introduction : Compilation et Traduction
Système d’exploitation : Assembleur
Système d’exploitation : Assembleur
Chapitre 8 : L’architecture de base des ordinateurs
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Principes de programmation (suite)
Introduction : Compilation et Traduction
Architecture de base d’un ordinateur
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Système d’exploitation : Assembleur
Architecture des Ordinateurs
Algorithmique et Programmation
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Allocation de mémoire Allocation de mémoire.
LES SYSTEMES AUTOMATISES
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
©Frédéric Bastien 2006 Université de Montréal 1 LISATek LISATek pour concevoir des processeurs.
Architecture et technologie des ordinateurs II
Méthode et Outils pour la Programmation
Mécanismes d'exécution et de communication
Logique programmée & Microprocesseurs
Architecture d'un ordinateur
3-Présentation d’un µP simple
La programmation.
Programmation Système et Réseau
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Architecture et technologie des ordinateurs II
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
ISBN Chapitre 10 L'implémentation des sous- programmes.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Cours Architecture des.
INFOR 101 Chapitre 5 Marianne Morris.
Introduction et Généralités sur l’Algorithmique
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
UE MAREP Cours 12 : Révisions
UE MAREP Cours 8 : La pile d’exécution (Fonctions imbriquées et fonctions récursives) Patricia Renault UPMC 2005/2006.
UE MAREP Cours 9 : Tableaux
Patricia Renault UPMC 2005/2006
UE MAREP Cours 1 : Algèbre de Boole et entiers naturels
Patricia Renault UPMC 2005/2006
UE MAREP Cours 5 : Structures de contrôle représentées en assembleur
Introduction à la compilation
Architecture et technologie des ordinateurs II
Chapitre 3 L’accès aux données.
1.1: notions de bases de l’informatique
Architecture des ordinateurs
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
CHAPITRE 10 Les sous-programmes 1. Sous-programme Suite d’instructions appelée de manière répétitive Par un programme Par plusieurs programmes distincts.
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
Architecture d’un ordinateur
Formations Système Embarqué & Informatique Industrielle
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Étapes pour la Programmation du 68HC11 I. Écriture du programme dans un fichier *.a11 II. Le programme est compilé (traduit en langage machine) III. Le.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Transcription de la présentation:

Patricia Renault UPMC 2005/2006 UE MAREP Cours 4 : Structuration d’un programme assembleur et exécution d’un programme binaire Patricia Renault UPMC 2005/2006

Plan Description de la mémoire Taxonomie des programmes Exécution séquentielle d’un programme binaire Ecriture et exécution de programmes assembleur MIPS sur le simulateur SiMips

Plan Description de la mémoire Taxonomie des programmes Uniformité de la mémoire Structuration de la mémoire Taxonomie des programmes Exécution séquentielle d’un programme binaire Ecriture et exécution de programmes assembleur MIPS sur le simulateur SiMips

Uniformité de la mémoire Modélisation Tableau de mot de 4 octets Adressable en octets Rôle Stocke sous forme de suite d’octet ce qui est nécessaire au bon fonctionnement d’un ordinateur et à l’exécution d’un programme Uniformité Cette uniformité confère à l’ordinateur de Van Neumann son universalité

Structuration de la mémoire Mémoire structurée en 2 zones distinctes : la zone réservée aux utilisateurs, à laquelle on peut accéder sans restriction (il n’est pas nécessaire d’être en mode “ superviseur ”). la zone réservée au système d’exploitation, à laquelle on ne peut accéder que par des instructions spéciales utilisables uniquement en mode “ superviseur ”. En MIPS, les 2 zones sont distinguées par leur adresses : entre 0x0000 0000 et 0x7FFF FFFF zone utilisateur entre 0x8000 0000 et 0xFFFF FFFF zone système

Structuration de la mémoire Différents types d’information d’un programme regroupé dans des segments (espace d’adressage contigu) Chaque programme dispose de trois segments : Segment de données, variables globales du programme, Segment de code, instructions du programme en langage machine, Segment de pile, permettant d’exécuter des programmes contenant des sous-programmes, et stockant le contexte d’exécution du sous-programme, ses paramètres d’appel ainsi que ses variables locales. En MIPS, les directives .Data, .Text et .Stack permettent de préciser le contenu et la taille des segments de données, de pile et de code.

Plan Description de la mémoire Taxonomie des programmes Différents niveaux de programmation Exemple : Binaire, binaire désassemblé, langage d’assemblage Exemple : C, langage d’assemblage, binaire désassemblé, binaire Exécution séquentielle d’un programme binaire Ecriture et exécution de programmes assembleur MIPS sur le simulateur SiMips

Différents niveaux de programmation Programme binaire Programme en langage d’assemblage Programme en langage de plus haut niveau

Différents niveaux de programmation Programme binaire : Niveau de représentation compréhensible pour le processeur. Programme composé d’une suite d’instructions du jeu d’instructions du processeur, codées en binaire. Programme en langage d’assemblage : Niveau plus abstrait, instructions définies dans le jeu d’instructions du processeur représentées de façon symbolique Elles possèdent un mnémonique et une désignation abstraite des opérandes (mais ces opérandes sont les registres utilisateur du processeur, où des cases mémoire), Elles s’affranchissent de l’adresse d’implantation d’autres instructions en utilisant des étiquettes

Différents niveaux de programmation Programme en langage de plus haut niveau (C, Ada) : Niveau encore plus abstrait. Les instructions sont celles du langage de haut niveau, indépendamment du jeu d’instructions de la machine sur laquelle le programme s’exécutera. Ces langages permettent : La définition de types d’objets structurés, La définition de variables nommées, utilisables directement dans les instructions, Des mécanismes de structuration des traitements (structures de contrôle, sous-programme, paquetage …) Des mécanismes de traitements des erreurs (exceptions pour Ada)

Différents niveaux de programmation En règle générale, un programme complexe est écrit dans un langage de haut niveau, puis il est compilé en langage machine. La compilation comprend deux phases : la traduction des instructions de haut niveau en langage machine. la résolution des adresses ; les étiquettes sont converties en adresses relatives par rapport au début de la zone dans laquelle elles sont implantées (code translatable), ou bien en adresse absolue (alors le programme doit être implanté à une adresse fixe en mémoire). Remarque : il existe d’autres mécanismes d’exécution d’un programme de haut niveau, notamment l’interprétation.

Exemple : Binaire, binaire désassemblé, langage d’assemblage

Exemple : C, langage d’assemblage, binaire désassemblé, binaire Programme C : int var1 = 0x1234567, var2 = 0x89ABCDEF; int var3; main(){ var3 = var1 + var2; exit(0); }

Exemple : C, langage d’assemblage, binaire désassemblé, binaire Programme assembleur équivalent : .data # variables globales var1 : .word 0x01234567 var2 : .word 0x89ABCDEFF var3 : .word .stack # zone zone de pile (vide) .text # zone d'instructions __start : # point d'entree est __start lui $4, var1 >> 16 # recupere ad de var1 ori $4, $4, var1 & 0xFFFF # dans $4 lw $2, ($4) # $2 contient 01234567

Exemple : C, langage d’assemblage, binaire désassemblé, binaire lui $4, var2 >> 16 # recupere ad de var2 ori $4, $4, var2 & 0xFFFF # dans $4 lw $3, ($4) # $3 contient 89ABCDEF addu $4, $3, $2 # $4 contient 8ACF1356 lui $5, var3 >> 16 # recupere ad de var3 ori $5, $5, var3 & 0xFFFF # dans $5 sw $4, ($5) # resultat dans var3 ori $2, $0, 10 syscall # fin

Exemple : C, langage d’assemblage, binaire désassemblé, binaire Programme binaire équivalent (étiquettes var1, var2 et var3 remplacées par les adresses d’implantation des variables aux adresses 0x1000 0000, 0x1000 0004 et 0x1000 0008):

Plan Description de la mémoire Taxonomie des programmes Exécution séquentielle d’un programme binaire Cycle d’exécution d’une instruction Exemple Ecriture et exécution de programmes assembleur MIPS sur le simulateur SiMips

Cycle d’exécution d’une instruction Exécution en plusieurs étapes : Chercher l’instruction (adresse dans PC) Décoder l’instruction Exécuter l’instruction Déterminer l’adresse de la prochaine instruction

Cycle d’exécution d’une instruction P C R A D H I L O T CSTE DATA IN DATA OUT ADRESSE Y X RES MIPS - CHEMIN DE DONNEES U (i)

Cycle d’exécution d’une instruction Le chemin de données fait apparaître les registres : IR : Instruction Register. C’est là qu’est placée l’instruction à décoder (en provenance du bus de données DATA IN, dans l’étape Chercher Instruction). DT : Data Transfer. C’est là qu’est rangée la donnée (en provenance du bus de données DATA IN, dans l’étape Exécuter - Chercher les données). AD : Address. Il contient les adresses à placer sur le bus d’adresses pour les transferts avec la mémoire. C’est également un registre qui peut stocker des résultats intermédiaires.

Exemple Instruction : addu $4,$3,$2, de codage 0x00622021, implantée à l’adresse 0x4000 0018 Chercher l’instruction : PC = 0x4000 0018. Chargement de l’adresse 0x4000 0018 sur le bus d’adresse avec la commande de lecture. Récupérer le mot 0x00622021 sur DATA IN et le ranger dans IR. Décoder l’instruction. Contenu de IR : 0x00622021 => addition, avec registres source $3 et $2, et registre destination $4. Exécuter l’instruction. On calcule alors $2 + 0 dans AD, puis AD + $3, la sortie de l’ALU est alors stockée dans $4. Sélection de l’instruction suivante : Calcul PC + 4 (PC sur l’entrée X et constante 4 sur l’entrée Y), résultat dans PC.

Plan Description de la mémoire Taxonomie des programmes Exécution séquentielle d’un programme binaire Ecriture et exécution de programmes assembleur MIPS sur le simulateur SiMips Comment ca marche ? Simulateur SiMips

Comment ca marche ? Ecriture de programme assembleur via votre éditeur de texte préféré Sauvegarde des fichiers assembleurs avec l’extension .s Lancement de Simips dans votre terminal (simips &) Génération du programme binaire désassemblé (.a) Attention aux erreurs de syntaxes !!! Chargement du programme binaire désassemblé Exécution du programme

Simulateur SiMips