La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Patricia Renault UPMC 2005/2006

Présentations similaires


Présentation au sujet: "Patricia Renault UPMC 2005/2006"— Transcription de la présentation:

1 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

2 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

3 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

4 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é

5 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 0x et 0x7FFF FFFF zone utilisateur entre 0x et 0xFFFF FFFF zone système

6 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.

7 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

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

9 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

10 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)

11 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.

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

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

14 Exemple : C, langage d’assemblage, binaire désassemblé, binaire
Programme assembleur équivalent : .data # variables globales var1 : .word 0x 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

15 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

16 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 0x , 0x et 0x ):

17 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

18 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

19 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)

20 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.

21 Exemple Instruction : addu $4,$3,$2, de codage 0x , implantée à l’adresse 0x Chercher l’instruction : PC = 0x Chargement de l’adresse 0x sur le bus d’adresse avec la commande de lecture. Récupérer le mot 0x sur DATA IN et le ranger dans IR. Décoder l’instruction. Contenu de IR : 0x => 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.

22 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

23 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

24 Simulateur SiMips


Télécharger ppt "Patricia Renault UPMC 2005/2006"

Présentations similaires


Annonces Google