Architecture des Ordinateurs et Systèmes d Exploitation



Documents pareils
Ordinateurs, Structure et Applications

Architecture des ordinateurs

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

Structure d un programme

Programmation assembleur : aperçu

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

Conception de circuits numériques et architecture des ordinateurs

Architecture des ordinateurs

Logiciel de base. Première année ENSIMAG

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

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

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Rappels d architecture

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

Compilation (INF 564)

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Jeu d instructions NIOS II

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

Exécution des instructions machine

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

Introduction à la Programmation Parallèle: MPI

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

Introduction aux buffer overflow, CS335

IV- Comment fonctionne un ordinateur?

Département informatique de l université d Angers

Programmation C. Apprendre à développer des programmes simples dans le langage C

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

SYSTÈME DE GESTION DE FICHIERS

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Gestion mémoire et Représentation intermédiaire

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Ordinateurs, Structure et Applications

Cours A7 : Temps Réel

Aide à l installation et à la migration en HelloDoc 5.60

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Génie Logiciel avec Ada. 4 février 2013

La technologie Java Card TM

Systèmes d exploitation

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

Traduction des Langages : Le Compilateur Micro Java

ASR1 TD7 : Un microprocesseur RISC 16 bits

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

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

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

CM2 L architecture MIPS32

Concept de machine virtuelle

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

IRL : Simulation distribuée pour les systèmes embarqués

Playing with ptrace() for fun and profit

PIC : COURS ASSEMBLEUR

Initiation à la sécurité

Structure fonctionnelle d un SGBD

Temps Réel. Jérôme Pouiller Septembre 2011

Licence Sciences et Technologies Examen janvier 2010

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Xen. Quelques notes autour de Xen

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

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Partie 7 : Gestion de la mémoire

Exercices INF5171 : série #3 (Automne 2012)

Contrôle d accès UTIL TP N 1 découverte

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

epowerswitch 8XM+ Fiche technique

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

Guide de démarrage Intellipool Network Monitor

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

Bases Java - Eclipse / Netbeans

Mise en route d'une infrastructure Microsoft VDI

PIC 16F84. Philippe Hoppenot

Installation de GFI FAXmaker

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

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

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Plan global Outils de développement et compilation. Ce que l on veut éviter. Plan. Git : gestion de code source et versionnement.

Avira Version 2012 (Windows)

Mathématiques appliquées à l informatique

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

GL Le Génie Logiciel

4. Initiation à l'assembleur

Support de cours système d exploitation

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Réseaux IUP2 / 2005 IPv6

Algorithmique et programmation : les bases (VBA) Corrigé

Théorie des Langages

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Mise en œuvre d une infrastructure de virtualisation au CNRGV

Transcription:

Architecture des Ordinateurs et Systèmes d Exploitation Cours n 5 Le langage assembleur (2): Pile, Procédures. Les Interruptions 3ème année

L assembleur 8086 : la pile = structure de «rangement» de données définie dans un segment de mémoire particulier fonctionnement LIFO (Last In, First Out) ex: pile d assiettes comment y accéder : adresse du dernier élement posé : SS:SP empiler : PUSH Reg16 (registre 16 bits) dépiler : POP Reg16 (registre 16 bits) «la pile augmente vers les adresses faibles» Déclaration du segment de pile : (PUSH : SP SP-2, POP : SP SP+2) Assume SS:Pile Déclaration d une pile de 1024 octets (=1 Ko) initialisés à 0 Pile SEGMENT STACK dw 1024 dup (0) Pile ENDS

L assembleur 8086 : les procédures (1/5) Déclaration d une procédure : appel proche (near) : la procédure et le programme sont dans le même segment de code appel lointain (far) : la procédure et le programme sont dans deux segments de code différents Moyenne PROC [NEAR/FAR] instructions Moyenne ENDP Appel de la procédure dans le programme Call Moyenne Comment l unité de traitement arrive-t-elle à retourner au programme principal à la fin de la fonction? Au moment de l appel de la fonction, l adresse de l instruction suivante est sauvegardée dans la pile : appel proche (near) : sauvegarde de IP appel lointain (far) : sauvegarde de CS puis de IP A la fin de la procédure, l UT récupère les valeurs sauvegardées pour retourner au programme principal

L assembleur 8086 : les procédures (2/5) 2 méthodes de passage de paramètres : * par registre * par la pile Passage de paramètres par registre : les paramètres d entrée de la procédure sont mis dans des registres avant l appel de la procédure les paramètres de sortie sont aussi rangés dans des registres avantage = rapidité inconvénients = peu de registres pas de «portabilité» Ex: ; programme principal Mov AX, N1 Mov BX, N2 Call Moyenne Mov Res, AX Moyenne PROC Add AX, BX SHR AX, 1 Ret Moyenne ENDP Ret = dépilement de IP pour retourner au programme principal

L assembleur 8086 : les procédures (3/5) Passage de paramètres par la pile : les paramètres d entrée sont empilés avant l appel de la procédure les paramètres de sortie sont dépilés par le programme principal avantage = «portabilité» inconvénients = récupération des paramètres plus «lourde» Ex: ; programme principal PUSH N1 PUSH N2 Call Moyenne POP Res Moyenne PROC PUSH BP Mov BP, SP Mov AX, [BP+4] Add AX, [BP+6] SHR AX, 1 Mov [BP+6], AX POP BP Ret 2 Moyenne ENDPc

L assembleur 8086 : les procédures (4/5) Passage de paramètres par la pile : évolution de la pile t=5 Mov BP, SP t=4 PUSH BP Ancien BP t=3 Call Moyenne IP Retour t=2 PUSH N2 N2 t=1 PUSH N1 N1 SP (t=4, 5) BP SP (t=3) SP (t=2) SP (t=1) SP (t=0) A quoi sert BP? - BP = référence de la pile au début de la procédure - permet d avoir une référence fixe pour récupérer les paramètres ici : [BP+4] pour N2 et [BP+6] pour N1

L assembleur 8086 : les procédures (5/5) Sauvegarde du résultat et «nettoyage de la pile» : t=9 Mov [BP+6], AX t=10 POP BP t=11 Ret 2 t=12 POP Res Ancien BP IP Retour SP (t=9) BP IP Retour SP (t=10) N2 (N1+N2)/2 N2 (N1+N2)/2 (N1+N2)/2 SP (t=11) SP (t=12) Sauvegarde du résultat dans le bas de la pile BP reprend sa valeur initiale Ret 2 dépile IP pour retourner au prog. principal et efface aussi la case suivante (Ret 2 = 2 cases) Dépilement et rangement du résultat dans la variable Res

Quels paramètres? On peut utiliser deux paramètres différents : - la valeur de la variable - l adresse de la variable ; passage des valeurs par registre Mov AX, N1 Mov BX, N2 Call Moyenne_par_valeur Mov Res, AX Moyenne_par_valeur PROC Add AX, BX SHR AX, 1 Ret Moyenne_par_valeur ENDP (Idem pour le passage par pile) ; passage des adresses par registre Mov SI, Offset N1 Mov DI, Offset N2 Mov BX, Offset Res Call Moyenne_par_adresse Moyenne_par_adresse PROC Mov AX, [SI] Add AX, [DI] SHR AX, 1 Mov [BX],AX Ret Moyenne_par_adresse ENDP

Procédure sale / procédure propre Procédure sale = modifie les registres Moyenne PROC PUSH BP Mov BP, SP Mov AX, [BP+4] Add AX, [BP+6] SHR AX, 1 Mov [BP+6], AX POP BP Ret 2 Moyenne ENDP A la fin de la procédure, AX est modifié Procédure propre = ne modifie pas (ou restaure en fin de procédure) les registres Moyenne PROC PUSH BP Mov BP, SP PUSH AX Mov AX, [BP+4] Add AX, [BP+6] SHR AX, 1 Mov [BP+6], AX POP AX POP BP Ret 2 Moyenne ENDP AX est sauvegardé en début de procédure et restauré à la fin

Les interruptions En général, l Unité de Traitement exécute séquentiellement les instructions ou effectue des sauts programmés (JMP, CALL) Il existe des situations où l U.T. est «déroutée» de sa tâche : Reset : signal envoyé au processeur pour un (re-)démarrage Exceptions (interruptions internes) : débordement de pile, dépassement de capacité, div /0, Appels systèmes (int. logicielles) : appels du programme lui-même «int 21h» Interruptions physiques (int. externes) : appels d autres périphériques Les interruptions sont +/- prioritaires Int. non masquables : l UT est obligée de s en occuper (Reset, ) Int. masquables : l UT peut ne pas en tenir compte (grâce au drapeau IF)

Les interruptions : fonctionnement 1/2 Chaque interruption possède un numéro de 0 à 255 (FFh) (ex: Int 21h) Lorsque l interruption est déclenchée, l U.T. doit exécuter un bout de programme bien précis : le traitant de l interruption. l U.T. doit savoir où se trouve l adresse (CS:IP) du traitant numéro n Cette information est stockée en mémoire (0000:0000 à 0000:03FFh) 0000:0000 0000:0002 0000:0004 IP (n=0) CS (n=0) Adresse du traitant de Int 0 0000:03FC 0000:03FE 0000:0400 IP (n=ffh) CS (n=ffh) Adresse du traitant de Int FFh

Les interruptions : fonctionnement 2/2 Au démarrage, la table des interruptions contient des valeurs «par défaut» Il est possible de modifier cette table : pour ajouter/supprimer un traitant surcharger un traitant (ex: ajouter un message d erreur en plus du div/0) Comment? : appels systèmes (ici l exemple du DOS) Lecture de l adresse du traitant nn : Fonction DOS 35h (entrée : AH=35h, AL=nn sortie : ES=CS(nn), BX=IP(nn)) Modification de l adresse du traitant nn : Fonction DOS 25h (entrée : AH=25h, AL=nn, DS=CS(nn), DX=IP(nn)) Retour au dos en laissant le traitant en mémoire (TSR = Terminate and Stay Resident) Fonction DOS 31h (entrée : AH=31h, AL=nn, DX=Taille du traitant en blocs de 16 octets)