Les structures de données

Slides:



Advertisements
Présentations similaires
Fonctionnement d’une machine à pile :
Advertisements

Les procédures et interruptions en Assembleur (Tasm)
Initiation à la programmation et algorithmique cours 4
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Piles, files et listes: notions théoriques
Architecture des processeurs généralistes haute performance
Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
Programmation assembleur : aperçu
Assembleur
La pile un élément essentiel
C.
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Algorithme et structure de données
Chap. 1 Structures séquentielles : listes linéaires
Système d’exploitation : Assembleur
PILE voir l'animation: Diaporama / Visualiser ...
Système d’exploitation : Assembleur
Système d’exploitation : Assembleur
Système d’exploitation : Assembleur
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Les piles Djamal Rebaïne.
II. Chaînage, SDD séquentielles
La récursivité Une procédure est dite récursive si, et seulement si, elle fait appel à elle-même, soit directement soit indirectement Djamal Rebaïne Djamal.
Cours 8 5. Appels de fonctions Le matériel Concepts de pile
Système d’exploitation : Assembleur
LE MICROPROCESSEUR 8086/8088 Architecture externe du 8086
Points importants de la semaine Les enregistrements.
INTRODUCTION AU Février 2008
Structures de données IFT-2000
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les fichiers binaires en C++
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.
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Une nouvelle structure de données : les tableaux
Présentation Structures de Données et TDA
Environnements d'exécution
Architecture et technologie des ordinateurs II
Standard Template Library
Structures de données IFT-10541
Tableaux Introduction aux tableaux à une dimension. Déclaration, stockage, initialisation et accès en lecture ou en écriture aux composantes d’un tableau.
Plan cours La notion de pointeur et d’adresse mémoire.
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Stocker plusieurs valeurs de même type dans une variable
Processeur modèle 8086 David Saint-Mellion.
Les bases de l’assembleur
Traitement des tableaux et chaînes de caractères
Ch. PAUL - Piles et Files à l'aide de listes chainées
Cours Architecture des Systèmes Informatiques
LES PILES ET FILES.
Architecture Des Ordinateurs Microprocesseur Et Mémoire
Architecture interne du microprocesseur 8086.
3-Présentation d’un µP simple
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
ETNA – 1ème année Guillaume Belmas –
LE TRAITEMENT NUMERIQUE
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.
Cours LCS N°4 Présenté par Mr: LALLALI
UE MAREP Cours 9 : Tableaux
Patricia Renault UPMC 2005/2006
Patricia Renault UPMC 2005/2006
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Chapitre 3 L’accès aux données.

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.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Introduction au langage C
Transcription de la présentation:

Les structures de données Tp n°3

Introduction Les structures de données que l’on peut manipuler en assembleur sont: Les tableaux La pile (Stack).

Les tableaux Le tableau est une structure de données statique. C’est un ensemble de cases de mémoire consécutives. Pour accéder à une case dans le tableau il faut l’adresse du tableau et le déplacement dans le tableau Tab 0 1 2 3 4 n-1

Les tableaux La syntaxe: <nom-tableau>   <type>   <taille>  [dup]   (valeurs) * dup : signifie dupliquer ou répéter l’opération qui le précède Exemples : tab1   db   10   dup   (0) tab2   dd   5   0, 1, 2, 3, 4 tab3   dw   100   dup   (?)

Les tableaux Le déplacement d’un élément à un autre dans le tableau dépend de la taille de l’élément. Si l’adresse de l’élément e0 est 56 alors celle de adresse(e1)= 56+taille (e1) Si le tableau est de type: byte  adresse(e1)= 56+ 1 word  adresse(e1)= 56+ 2 double word  adresse(e1)= 56+ 2 Tab 0 1 2 3 4 n-1 e0 e1 e2 e3

Les tableaux L’accès à un élément d’un tableau: Syntaxe : <nom-tableau>[déplacement] L’accès à un élément dans un tableau ne détruit pas celui-ci. Exemple: mov ax , 2 mov tab[ax], bx ( tab[2] bx ) add tab[ax], 1 (tab[2] tab[2] +1)

La pile La pile (Stack) est une zone mémoire qui sert à sauver temporairement des informations. C’est une structure de données dont la gestion est dynamique. Syntaxe de déclaration: <Nom-pile> stack Segment identificateur db taille dup (?) <Nom-pile> ends Exemple : Pile stack Segment PP db 100h dup (?) ; = 256 bytes réservés pour la pile. Pile ends

La Pile Dans une pile LIFO les éléments sont empilés les uns sur les autres dans leur ordre d’arrivée. Pour retirer un élément de la pile, on dit qu’il est désempilé.. Le dernier élément désempilé est le premier empilé (LIFO: last IN first OUT). La taille de chaque élément est d'un mot (deux octets) parce que c'est la plus petite valeur que l'on puisse placer sur la pile.

La Pile Le registre de segment SS pointe sur le début de la pile le registre SP indique la position du dernier élément placé sur cette pile. Le début (les premiers éléments empilés sur la pile) se trouve à une adresse mémoire plus grande que la fin

La gestion de la pile Empiler a5 a4 a3 a2 a1 a0 1 4 3 2 2 3 SS SP 1 4

La Pile Exemple: Si on utilise une pile de 50 éléments (100 bytes), l'adresse du premier élément empilé (élément 0) sera SS:98 (où SP pointe sur l'adresse 98 de la pile) et l'adresse du dernier élément empilé (si la pile est remplie) sera SS:0. On parle de la Gestion inversée de la pile.

La Pile Les instructions PUSH et POP : Les deux seules opérations autorisées sont: Empilement: PUSH registre ou mem Dépilement: POP registre ou mem où "reg" est un registre de 16 bits! et "mem" est une zone mémoire de 16 bits. Ces deux opérations permettent de manipuler un seul élément à la fois.

La Pile Lorsqu'une instruction PUSH est rencontrée, SP est décrémenté de 2 (2 bytes) et le contenu du registre spécifié est copié dans l'élément numéro SP de la pile (adresse SS:SP). Pour une opération POP, l'élément numéro SP de la pile est copié dans le registre spécifié puis SP est incrémenté de 2. l’élément est retiré de la pile. On peut attribuer des valeurs à SS et SP.

Travail à réaliser Soit P1 une pile qui contient la liste des valeurs suivantes (0, 2, 4, 6, ……100). Écrire le programme assembleur qui met ces valeurs dans un tableau mais dans l’ordre inverse