Structure d un programme

Dimension: px
Commencer à balayer dès la page:

Download "Structure d un programme"

Transcription

1 Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé en plusieurs SECTIONS (= segments) sections différentes pour les données et le code directives pour NASM instructions pour le processeur une seule instruction par ligne, séparateur = chgt de ligne 1 ligne de code = 4 champs (certains optionnels) : étiquette: instruction opérandes ; commentaire Données initialisées : déclarer des données initialisées avec la directive : dx X = b (1 octet), w (2 octets) ou d (4 octets = 1 mot). exemples : l1: db 0x55 ; l octet 0x55 db 0x55,0x66,0x77 ; 3 octets successifs dw 0x1234 ; 0x34 0x12 (little endian) dw a ; 0x61 0x00 l2: dw ab ; 0x61 0x62 (caractères) l3: dw abc ; 0x61 0x62 0x63 0x00 (string) définir des constantes non modifiables avec la directive : equ exemple : nb lettres: equ 26 Archi 3/30 Archi 4/30

2 Sections de données - suite Section de code répéter une déclaration avec la directive : times exemples : p0: times 100 db 0 ; 100 fois l octet 0x00 p1: times 28 dd 0xffffffff ; 28 fois le m^eme mot Données non initialisées : SECTION.bss déclarer des données non initialisées avec la directive : resx X = b (1 octet), w (2 octets) ou d (4 octets = 1 mot). exemples (étiquettes obligatoires) : input1: resb 100 ; réserve 100 octets input2: resw 1 ; réserve 2 octets input3: resd 1 ; réserve 1 mot (4 octets)!!! Étiquette = adresse de la donnée. Corps du programme : commencer par déclarer global l étiquette de début de programme (main) pour qu elle soit visible : fin de fichier : mov ebx, 0 ; code de sortie, 0 = normal mov eax, 1 ; numéro de la commande exit ; interruption 80 hex, appel au noyau Archi 5/30 Fichier squelette ; données initialisées ; SECTION.bss ; données non initialisées ; ; rend l étiquette visible de l extérieur ; programmme ; mov ebx,0 ; code de sortie, 0 = normal mov eax,1 ; numéro de la commande exit ; interruption 80 hex, appel au noyau Archi 7/30 Archi 6/30 Assembler un programme Assemblage : créer un fichier objet (transformer le programme écrit en langage d assemblage en instructions machine) nasm -g -f <format> <fichier> [-o <sortie>] Exemples : nasm -g -f coff toto.asm nasm -g -f elf toto.asm -o toto.o Produire un listing des instructions machine : nasm -g -f elf toto.asm -l toto.lst Édition de lien : ld -e main toto.o -o toto En utilisant des bibliothèques C ou écrites en C (par exemple, asm io de P. Carter, pour les E/S) : nasm -g -f elf toto.asm gcc toto.o asm_io.o -o toto Archi 8/30

3 Interruptions Entrées/Sorties Le flot ordinaire d un programme doit pouvoir être interrompu pour traiter des évènements nécessitant une réponse rapide. Mécanisme d interruptions (ex : lorsque la souris est déplacée, le programme en cours est interrompu pour gérer ce déplacement). Passage du contrôle à un gestionnaire d interruptions. Certaine interruptions sont externes (ex : la souris). D autres sont soulevées par le processeur, à cause d une erreur (traps) ou d une instruction spécifique (interruption logicielle). En général, le gestionnaire d interruptions redonne le contrôle au programme interrompu, une fois l interrupion traitée. Il restaure tous les registres (sauf eax). Le programme interrompu s exécute comme si rien n était arrivé. Les traps arrêtent généralement le programme. Archi 9/30 Entrées/sorties Entrées-sorties (I/O) : échanges d informations entre le processeur et les périphériques. Entrées : données envoyées par un périphérique (disque, réseau, clavier) à destination de l unité centrale. Sorties : données émises par l unité centrale à destination d un périphérique (disque, réseau, écran). Gestion par interruptions : permet de réagir rapidement à un changement en entrée. le périphérique prévient le processeur par une interruption, le processeur interrompt la tâche en cours, effectue l action prévue pour cette interruption et reprend l exécution du programme principal là où il l avait laissée. Gestion haut-niveau : Bibliothèques standards en C pour les E/S (pas en assembleur). MAIS, les conventions d appels utilisées par C sont complexes Archi 11/30 Archi 10/30 Affichage par interruption msg1:db "message 1",10 lg1: equ $-msg1 mov edx, lg1 mov ecx, msg1 mov ebx, 1 ; stdout mov eax, 4 ; write Archi 12/30

4 Affichage en utilisant printf Affichage avec ams io.inc extern printf msg2: db "msg 2", 10, 0 msg3: db "msg 3", 10, 0 push msg2 printf mov eax, msg3 Archi 13/30 Routines d E/S de P. Carter Archi 14/30 print int print char print string print nl read int read char affiche à l écran la valeur de l entier stocké dans eax affiche à l écran le caractère dont le code ASCII est stocké dans al affiche à l écran le contenu de la chaîne de caractères à l adresse stockée dans eax. La chaîne doit être une chaîne de type C (terminée par 0) affiche à l écran un caractère de nouvelle ligne lit un entier au clavier et le stocke dans le registre eax lit un caractère au clavier et stocke son code ASCII dans le registre eax Sous-programmes %include "asm io.inc" Pour chaque fonction d affichage, il faut charger eax avec la valeur correcte, utiliser une instruction pour l invoquer. ces fonctions préservent les valeurs de tous les registres, sauf les deux read qui modifient eax. Archi 15/30 Archi 16/30

5 Sous-programmes Exemple, sans sous-programme Les sous-programmes servent à mutualiser du code (éviter les copier-coller) Exemple : les fonctions des langages haut niveau. Le code appelant le sous-programme et le sous-programme lui-même doivent se mettre d accord sur la façon de se passer les données (conventions d appel). Un saut peut être utilisé pour appeler le sous-programme, mais le our pose problème. Le sous-programme peut être utilisé par différentes parties du programme il doit revenir au point où il a été appelé! Donc, le our du sous-programme ne peut pas être codé en dur par un saut vers une étiquette. L étiquette de our doit être un paramètre du sous-programme. msg1: db "entier <10?",10,0 msg2: db "bravo",10,0 msg3: db "perdu",10,0 mov eax, msg1 read_int rate: mov jmp cmp eax, 10 jl ok eax, msg3 fin ok: mov eax, msg2 fin: mov ebx, 0 mov eax, 1 Archi 17/30 Sous-programme à la main msg1: db "entier <10?",10,0 msg2: db "bravo",10,0 msg3: db "perdu",10,0 mov eax, msg1 read_int mov jmp _sb: ecx, _sb sb fin: mov ebx, 0 mov eax, 1 sb: cmp eax, 10 jl ok rate: mov eax, msg3 jmp ecx ok: mov eax, msg2 jmp ecx Archi 19/30 Archi 18/30 Instructions et Problèmes : Un peu compliqué Besoin d autant d étiquettes que d appels du sous-programme. Solution : et L instruction effectue un saut inconditionnel vers un sousprogramme après avoir empilé l adresse de l instruction suivante l1: fonction push l2 l2: jmp fonction L instruction dépile une adresse et saute à cette adresse : pop reg. jmp reg. Lors de l utilisation de ces instructions, il est très important de gérer la pile correctement (dépiler tout ce qu on a empilé) afin que l adresse dépilée par l instruction soit correcte. Permet d imbriquer des appels de sous-programmes facilement. Archi 20/30

6 Sous-programme avec et Passage des paramètres msg1: db "entier <10?",10,0 msg2: db "bravo",10,0 msg3: db "perdu",10,0 mov eax, msg1 read_int sb fin: mov ebx, 0 mov eax, 1 sb: cmp eax, 10 jl ok rate: mov eax, msg3 ok: mov eax, msg2!! Il est très important de dépiler toute donnée qui a été empilée dans le corps du sous-programme. Exemple : plus2: add eax, 2 push eax ; dépile la valeur de eax!! Ce code ne reviendra pas correctement! Autre problème : passage des paramètres par registres limite le nombre de paramètres ; mobilise les registres pour les conserver. Solution : passer les paramètres par la pile (convention de C). Archi 21/30 Passer les paramètres par la pile Archi 22/30 Passer les paramètres par la pile - suite Les paramètres passés par la pile sont empilés avant le. Si le paramètre doit être modifié par le sous-programme, c est son adresse qui doit être passée. Les paramètres sur la pile ne sont pas dépilés par le sous-programme mais accédés depuis la pile elle-même : Sinon, comme ils sont empilés avant le, l adresse de our devrait être dépilée avant tout (puis ré-empilée ensuite). Si les paramètres sont utilisés à plusieurs endroits : ça évite de les conserver dans un registre ; les laisser sur la pile permet de conserver une copie de la donnée en mémoire accessible à n importe quel moment. Lors d un appel de sous-programme : la pile ressemble à esp adresse de our esp+4 paramètre Accès au paramètre par adressage indirect : [esp+4] Archi 23/30 Si la pile est également utilisée dans le sous-programme pour stocker des données, le nombre à ajouter à esp change. Par exemple, après un push la pile ressemble à : esp donnée du sous-programme esp+4 adresse de our esp+8 paramètre Maintenant, le paramètre est en esp+8, et non plus en esp+4. esp pour faire référence aux paramètres erreurs possibles. Pour résoudre ce problème, utiliser ebp (base de la pile). La convention de C est qu un sous-programme commence par empiler la valeur de ebp puis affecte à ebp la valeur de esp. Permet à esp de changer sans modifier ebp. A la fin du programme, la valeur originale de ebp est restaurée. Archi 24/30

7 Passer les paramètres par la pile - suite Passer les paramètres par la pile - fin Forme générale d un sous-programme qui suit ces conventions : etiquette sousprogramme: push ebp ; empile la valeur originale de ebp mov ebp, esp ; ebp = esp ; code du sous-programme pop ebp ; restaure l ancienne valeur de ebp La pile au début du code du sous-programme ressemble à esp donnée esp ebp ebp prec. esp+4 ebp ebp prec. esp+4 ebp+4 adr. de our esp+8 ebp+4 adr. de our esp+8 ebp+8 paramètre esp+12 ebp+8 paramètre Le paramètre est accessible avec [ebp+8] depuis n importe quel endroit du sous-programme. Archi 25/30 Exemple de passage de paramètre par la pile Une fois le sous-programme terminé, les paramètres qui ont été empilés doivent être irés. La convention d appel C spécifie que c est au code appelant de le faire (convention différente en Pascal, par exemple). Un sous-programme utilisant cette convention peut être appelé comme suit : push param ; passe un paramètre fnc add esp, 4 ; ire le paramètre de la pile La 3ème ligne ire le paramètre de la pile en manipulant directement l adresse du sommet de la pile. Une instruction pop pourrait également être utilisée, mais le paramètre n a pas besoin d être stocké dans un registre. Archi 26/30 msg1: db "entier <10?",10,0 msg2: db "bravo",10,0 msg3: db "perdu",10,0 mov eax,msg1 read_int push eax sb add esp, 4 fin: mov ebx,0 mov eax,1 sb: push ebp mov ebp, esp cmp dword [ebp+8], 10 jl ok rate: mov eax, msg3 pop ebp ok: mov eax, msg2 pop ebp Exemple complet Archi 27/30 Archi 28/30

8 Afficher des rayures Programme On souhaite écrire un programme qui affiche k rayures verticales sur n lignes. Les rayures doivent être dessinées en utilisant un caractère choisi par l utilisateur. msg1:db "nb bandes?",10,0 msg2:db "nb lignes?",10,0 msg3:db "caractere?",10,0 blanc: db " ",0 SECTION.bss nbb: resd 1 nbl: resd 1 mov eax, msg1 read_int mov [nbb], eax mov eax, msg2 read_int mov [nbl], eax mov eax,msg3 read_char read_char mov ecx, [nbl] nxt:push eax push dword [nbb] ligne add esp, 4 pop eax loop nxt fin:mov ebx, 0 mov eax, 1 ligne: push ebp mov ebp, esp push ecx mov ecx, [ebp+8] sv: mov eax, [ebp+12] print_char mov eax, blanc loop sv print_nl pop ecx pop ebp Archi 29/30 Archi 30/30

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 7 17 décembre 2012 Archi 1/1 Fonctions, suite et fin Archi 2/1 Rappel Forme générale d un sous-programme (fonction) : etiquette sousprogramme: push ebp ; empile la valeur

Plus en détail

Architecture des ordinateurs TP 3

Architecture des ordinateurs TP 3 Architecture des ordinateurs ESIPE - IR1 TP 3 Objectif de cette séance L objectif de cette séance est d apprendre à utiliser la pile et à écrire des fonctions en assembleur En particulier, nous verrons

Plus en détail

Logiciel de base. Première année ENSIMAG

Logiciel de base. Première année ENSIMAG Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert

Plus en détail

Architecture des Ordinateurs et Systèmes d Exploitation

Architecture des Ordinateurs et Systèmes d Exploitation 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

Plus en détail

DUT Informatique Architecture des ordinateurs Année 2012/2013. - Aucun document autorisé - Calculatrices interdites - Durée : 2 heures -

DUT Informatique Architecture des ordinateurs Année 2012/2013. - Aucun document autorisé - Calculatrices interdites - Durée : 2 heures - DUT Informatique Architecture des ordinateurs Année 2012/2013 - Aucun document autorisé - Calculatrices interdites - Durée : 2 heures - NOM, prénom : Dans tous les exercices, vous pouvez utiliser les fonctions

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

Assembleur x86. P. Ezéquel

Assembleur x86. P. Ezéquel Assembleur x86 P. Ezéquel 1 TABLE DES MATIÈRES 2 Table des matières 1 Introduction 3 2 Anatomie du x86 3 2.1 Registres généraux.......................... 4 2.2 Registres de base de segments....................

Plus en détail

Programmation assembleur : aperçu

Programmation assembleur : aperçu Assembleur : Younès EL AMRANI. 1 Programmation assembleur : aperçu Programmation en assembleur : NASM Module M14 Semestre 4 Printemps 2010 Equipe pédagogique : Younès El Amrani, Abdelhakim El Imrani, Faissal

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs (2 ème partie : assembleur 80x86) Vincent Vidal IUT Lens Architecture des ordinateurs p. 1 Organisation Durée : 8 semaines. Cours 1h, TP 3h Intervenants TP : Coste, Loukil,

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

1. Eléments de base du langage C

1. Eléments de base du langage C 1 1. Eléments de base du langage C Généralités Programme et sous-programme Fonction C Structure d un programme C Vocabulaire de base et syntaxe Exemples 2 Généralités Crée en 1972 par D. Ritchie pour écrire

Plus en détail

Instructions assembleur

Instructions assembleur Instructions assembleur 0001011011110110 0001011101101101 10001001 Instruction vue par le programmeur assembleur ou instruction élémentaire cible d'un compilateur Réalise une modification de l'état interne

Plus en détail

Notions de langage machine

Notions de langage machine Notions de langage machine 18 décembre 2009 Rappels et introduction Architecture de Van Neumann : Processeur = UC + UAL Mémoire interne au processeur = les registres (soit seulement l accumulateur, soit

Plus en détail

L assembleur x86 32 bits. Plan. Plan. Architecture des ordinateurs. L excellent PC Assembly Language de Paul A. Carter http ://www.drpaulcarter.

L assembleur x86 32 bits. Plan. Plan. Architecture des ordinateurs. L excellent PC Assembly Language de Paul A. Carter http ://www.drpaulcarter. Généralité Langage Assembleur Programmation assembleur Généralité Langage Assembleur Programmation assembleur Références L assembleur x86 32 bits Architecture des ordinateurs Guillaume Blin IGM-LabInfo

Plus en détail

Chap. V : Les interruptions

Chap. V : Les interruptions UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Nous étudions dans ce chapitre les interruptions matérielles (ou externes), c est-à-dire déclenchées par le matériel (hardware)

Plus en détail

Principes de la programmation impérative

Principes de la programmation impérative Séquence d instructions Variables et types Types élaborés Procédures, arguments Gestion de la mémoire Langage compilé, interprété Principes de la programmation impérative Séquence d instructions Variables

Plus en détail

Méthodologie de programmation en assembleur. Philippe Preux

Méthodologie de programmation en assembleur. Philippe Preux Méthodologie de programmation en assembleur Philippe Preux 24 novembre 1997 Table des matières 1 Introduction 3 2 Méthodologie 4 2.1 Méthodologie............................................. 4 2.2 Aperçu

Plus en détail

Édition de liens. 1 Programme unique. Ensimag 1A Apprentissage. 1.1 Listing d assemblage. offset codop. .section.rodata

Édition de liens. 1 Programme unique. Ensimag 1A Apprentissage. 1.1 Listing d assemblage. offset codop. .section.rodata Édition de liens Ensimag 1A Apprentissage 2010 1 Programme unique 1.1 Listing d assemblage offset codop.section.rodata 25 73 20 25 sortie:.asciz "%s %s %c%c%c%c%c%c%c %s%c %s%c\n" 73 20 25 63 25 63 25

Plus en détail

Programmation assembleur sur l architecture x86

Programmation assembleur sur l architecture x86 Mini-projet système : développement d un noyau de système d exploitation Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Programmation assembleur sur l architecture x86

Plus en détail

Architecture matérielle et logicielle

Architecture matérielle et logicielle Architecture matérielle et logicielle Contents I Le Cours 2 1 Généralités 2 2 Micro-processeur 2 3 Mémoire 2 4 Performances 3 II TPs 3 1 Création d un exécutable : 3 2 Les bibliothèques 3 3 Codage de l

Plus en détail

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

De l ordinateur au processus : rôle d un système

De l ordinateur au processus : rôle d un système De l ordinateur au processus : rôle d un système Introduction aux systèmes d exploitation Gaël Thomas Présentation du cours Contexte du cours : Introduire notre objet d étude : les systèmes d exploitation

Plus en détail

Conduite du Projet Système

Conduite du Projet Système Conduite du Projet Système Département Télécom 2ème Année Enseignants : Yves Denneulin, Jacques Mossière, Grégory Mounié, Simon Nieuviarts, Franck Rousseau, Sébastien Viardot Résumé Ce document est complémentaire

Plus en détail

Cours Assembleur 8086

Cours Assembleur 8086 Cours Assembleur 8086 Pierre-Nicolas Clauss Laboratoire Lorrain de Recherche en Informatique et ses Applications 12 mars 2008 pierre-nicolas.clauss@loria.fr (LORIA) Cours Assembleur 8086 12 mars 2008 1

Plus en détail

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/ données pr ogramme 11111101 11001101 01000101 b us disque ma gnétique processeur écran Structures de données et algorithmes Ordinateurs Gilles Falquet, printemps-été 2002 Machines composées de (depuis

Plus en détail

Programmation en assembleur

Programmation en assembleur Programmation en assembleur Architecture des Ordinateurs Module M14 Semestre 4 Printemps 2008 Coordinateur du module M14: Younès EL Amrani Formats d'opérandes en assembleur IA32 Modes d'adressage Type

Plus en détail

Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles

Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles UNIVERSITE Joseph FOURIER, Grenoble Licence de Sciences et technologie - Parcours MIN, INF, BIN et MIN international Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles Première

Plus en détail

Logiciel de Base : examen de première session

Logiciel de Base : examen de première session Logiciel de Base : examen de première session ENSIMAG 1A Année scolaire 2008 2009 Consignes générales : Durée : 2h. Tous documents et calculatrices autorisés. Le barème est donné à titre indicatif. Les

Plus en détail

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

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire

Plus en détail

Cours Architecture des ordinateurs (Archi II) Entrées / Sorties Resp. Mr Mohamed Feredj MCA Courriel : archiferedj@gmail.com

Cours Architecture des ordinateurs (Archi II) Entrées / Sorties Resp. Mr Mohamed Feredj MCA Courriel : archiferedj@gmail.com Cours Architecture des ordinateurs (Archi II) Entrées / Sorties Resp. Mr Mohamed Feredj MCA Courriel : archiferedj@gmail.com 1 1) Objectif Discuter comment les données sont transférées entre le et les

Plus en détail

Noyau d'un système d'exploitation INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2)

Noyau d'un système d'exploitation INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2) INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2) Département de génie informatique et génie logiciel Hiver 2014 Exemple 1 : Espace virtuel d un processus Où seront stockées les données des variables

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

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

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Shellcodes sous Linux dans les processeurs de 32 bits x86

Shellcodes sous Linux dans les processeurs de 32 bits x86 Shellcodes sous Linux dans les processeurs de 32 bits x86 بسم الله الرحمان الرحيم و الصلة و السلم على سيدنا محمد و آله و صحبه paper par: opt!x hacker(aidi youssef) optix@9.cn sommaire: 0x01:présentation

Plus en détail

Algorithmique - Programmation 1. Cours 10

Algorithmique - Programmation 1. Cours 10 Algorithmique - Programmation 1 Cours 10 Université Henri Poincaré CESS Epinal Automne 2008 1/ 25 Plan Caml fonctionnel vs impératif Caml fonctionnel vs impératif Le type unit Données mutables Les structures

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

La famille x86. Eduardo Sanchez Laboratoire de Systèmes Logiques. Ecole Polytechnique Fédérale de Lausanne

La famille x86. Eduardo Sanchez Laboratoire de Systèmes Logiques. Ecole Polytechnique Fédérale de Lausanne La famille x86 Laboratoire de Systèmes Logiques Désavantages de l architecture x86 Très vieille architecture: basée sur le 8080 (commercialisé en 1974, 6 000 transistors et 8 registres) Le premier 8086

Plus en détail

Unité A7 : La pile. Unité A7 : La pile

Unité A7 : La pile. Unité A7 : La pile Objectifs À la fin de cette unité vous saurez comment la pile est utilisée pour passer les paramètres aux sous-programmes, effectuer l'allocation dynamique des variables locales de ces sous-programmes

Plus en détail

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs)

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs) Année Universitaire 2006/2007 CHAPITRE 6 : Tableaux Définition Tableaux à une dimension (Vecteurs) Déclaration ; Mémorisation M ; Tableaux à plusieurs dimensions Déclaration Tableaux à deux dimensions

Plus en détail

Système et Programmation (en C)

Système et Programmation (en C) Système et Programmation (en C) ENSTA - TC 1ère année François Pessaux U2IS 2015-2016 francois.pessaux @ ensta-paristech.fr Introduction François Pessaux IN102 Système et Programmation (en C) 2/31 But

Plus en détail

Série d exercices. o Cas 2 : gcc o nomexecutable c nomsource.c. o Cas 3 : gcc o nomexecutable W -Wall nomsource.c

Série d exercices. o Cas 2 : gcc o nomexecutable c nomsource.c. o Cas 3 : gcc o nomexecutable W -Wall nomsource.c Langage Impératif 1 TP 1 du 11 octobre 2010 Série d exercices Rappels rapides : - Un programme C s écrit toujours dans un fichier d extension.c (en minuscule!! sinon ce serait compilé comme du C++). Ce

Plus en détail

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

Plus en détail

Introduction à UNIX et Windows

Introduction à UNIX et Windows 1/39 à UNIX et Windows Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Programmation 1, leçon 2

Programmation 1, leçon 2 Programmation 1, leçon 2 Jean Goubault-Larrecq ENS Cachan goubault@lsv.ens-cachan.fr 24 septembre 2013 1 Architecture et assembleur Nous allons maintenant regarder un peu plus en profondeur encore comment

Plus en détail

Ordinateur, système d exploitation

Ordinateur, système d exploitation Ordinateur, système d exploitation 2014-09-02 1 Système d exploitation Machine de von Neumann : seul un programme s exécute. Besoins utilisateurs : plein de programmes. Système d exploitation (Operating

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

RPC Remote Procedure Call. Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benm@gmail.com

RPC Remote Procedure Call. Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benm@gmail.com RPC Remote Procedure Call Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benm@gmail.com Objectifs Le rôle de RPC comme middleware Positionner RPC dans le modèle OSI Développement d application

Plus en détail

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation.

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Sébastien COLLETTE et Gilles GEERAERTS 1 Introduction Ce document décrit

Plus en détail

Contrôle Architecture des microprocesseurs Durée 2 heures

Contrôle Architecture des microprocesseurs Durée 2 heures Contrôle Architecture des microprocesseurs Durée 2 heures Tous les documents personnels (cours, TD, TP) sont autorisés. La machine à calculer est autorisée. La qualité de la présentation sera prise en

Plus en détail

Travail d étude Les techniques de protection du logiciel

Travail d étude Les techniques de protection du logiciel Travail d étude Les techniques de protection du logiciel Julien Burle Présenté par: Térence Scalabre Licence Informatique Comment et pourquoi protéger son logiciel? Tout d abord intéressons-nous aux raisons

Plus en détail

Unité 9: Unité centrale de traitement. Unité 9: Unité centrale de traitement

Unité 9: Unité centrale de traitement. Unité 9: Unité centrale de traitement Objectifs : À la fin de cette unité, vous connaîtrez le fonctionnement de l'unité centrale de traitement d'un ordinateur. Pour y arriver, vous devrez atteindre les objectifs suivants : - décrire les différentes

Plus en détail

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis Anne Tasso Un best-seller qui a déjà conquis des milliers d'étudiants! Java Le livre Java Le livrede de premier premier langage langage Avec 80 exercices corrigés Avec 80 exercices corrigés 5 e édition

Plus en détail

Initiation au langage d assemblage x86

Initiation au langage d assemblage x86 Initiation au langage d assemblage x86 Emmanuel Saracco Easter-eggs.com esaracco@easter-eggs.com esaracco@free.fr Initiation au langage d assemblage x86 par Emmanuel Saracco Copyright 2002, 2003, 2004

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

Conduite du Projet Système

Conduite du Projet Système Conduite du Projet Système Département Télécom 2ème Année Enseignants : Yves Denneulin, Jacques Mossière, Grégory Mounié, Simon Nieuviarts, Franck Rousseau, Sébastien Viardot Résumé Ce document est complémentaire

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Trouver kernel32.dll

Trouver kernel32.dll Trouver kernel32.dll Jerome Athias http://www.athias.fr Du fait que parler directement au kernel n est pas une option, une solution alternative est nécessaire. La seule autre manière de parler au noyau

Plus en détail

Projet Pratique de INF241 Parcours de Tableaux

Projet Pratique de INF241 Parcours de Tableaux Projet Pratique de INF241 Parcours de Tableaux L objectif de ce projet est de travailler sur les tableaux en langage d assemblage ARM. Vous devez réaliser votre projet en partie lors des séances encadrées

Plus en détail

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

Plus en détail

Systèmes d exploitation. Introduction. (Operating Systems) http://www.sir.blois.univ-tours.fr/ mirian/

Systèmes d exploitation. Introduction. (Operating Systems) http://www.sir.blois.univ-tours.fr/ mirian/ Systèmes d exploitation (Operating Systems) Introduction SITE : http://www.sir.blois.univ-tours.fr/ mirian/ Systèmes d exploitation - Mírian Halfeld-Ferrari p. 1/2 Qu est-ce qu un SE? Ensemble de logiciels

Plus en détail

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

Plus en détail

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge Introduction Les performances d une machine sont liées au: 1. nombre d instructions 2. temps de cycle horloge 3. nombre de cycle horloge par instructions. C est: le compilateur et l architecture du jeu

Plus en détail

Les processeurs. Les entrées-sorties

Les processeurs. Les entrées-sorties Les entrées-sorties La problématique des entrées sorties est la suivante : - Le processeur va vite, plus vite que des éléments mécaniques tel que l on trouve dans une imprimante, une souris, un clavier.

Plus en détail

I. L'informatique. A. Principe. Sortie des résultats. Entrée des données TRAITEMENT. Fig. II.1

I. L'informatique. A. Principe. Sortie des résultats. Entrée des données TRAITEMENT. Fig. II.1 I. L'informatique A. Principe Entrée des données TRAITEMENT Sortie des résultats Fig. II.1 2 L informatique 8/02/2002 B. Le matériel 1. Architecture d'un système informatique Périphériques d' entrée Périphériques

Plus en détail

Apprendre l'assembleur

Apprendre l'assembleur A S S E M B L E U R Apprendre l'assembleur (INTEL - DOS 16 bits) Par Benoît-M Ce document a été téléchargé depuis http://benoit-m.developpez.com/assembleur/tutoriel Dernière modification du contenu le

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 5 19 novembre 2012 Archi 1/21 La couche ISA (Instruction Set Architecture) Archi 2/21 Rappel : architecture en couches 5. Langages haut niveau Compilation 4. Langage

Plus en détail

Bases d algorithmique

Bases d algorithmique Bases d algorithmique Christophe ROSSIGNOL Année scolaire 2015/2016 Table des matières 1 Un peu de vocabulaire 2 1.1 Qu est-ce qu un algorithme?....................................... 2 1.2 Variable, affectation...........................................

Plus en détail

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

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Types et performances des processeurs

Types et performances des processeurs Types et performances des processeurs Laboratoire de Systèmes Logiques Structure d un ordinateur contrôle processeur traitement séquenceur registres mémoire entrées/sorties micromémoire opérateurs bus

Plus en détail

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

SSTIC 2009. Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques... Désobfuscation automatique de binaires Et autres idyles bucoliques... Alexandre Gazet Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com Yoann Guillot Sogeti / ESEC R&D yoann.guillot(at)sogeti.com SSTIC 2009

Plus en détail

Projet de Machines Virtuelles

Projet de Machines Virtuelles Projet de Machines Virtuelles Gabriel Kerneis Vendredi 11 mars 2011 1 Introduction Le but de ce sujet est d implémenter la MARS (Memory Array Redcode Simulator), une machine virtuelle utilisée dans le

Plus en détail

ASSEMBLAGE ET ÉDITION DES LIENS

ASSEMBLAGE ET ÉDITION DES LIENS ASSEMBLAGE ET ÉDITION DES LIENS Mewtow 11 novembre 2015 Table des matières 1 Introduction 5 2 La chaine d assemblage 7 2.1 Résolution des symboles.............................. 7 2.2 Relocation.....................................

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C DUT Informatique 2015 / 2016 Travaux Pratiques n o 0 : Rappels de programmation C Nom(s) : Groupe : Date : Objectifs : renouer avec les notions, la manipulation et l écriture de programmes C, en particulier

Plus en détail

Tableau à une dimension. Exemple. Utilisation de constantes en assembleur

Tableau à une dimension. Exemple. Utilisation de constantes en assembleur Les tableaux en langage d assemblage Introduction Nous avons vu comment sont gérés les variables possédant des types élémentaires : entier signés ou non, caractères Un tableau!en langage de haut niveau:

Plus en détail

Création des shellcodes sous architecture Linux x86 32 bits.

Création des shellcodes sous architecture Linux x86 32 bits. ------------------------------------------------------------------------------------------------------------------------ Création des shellcodes sous architecture Linux x86 32 bits. Jonathan Salwan # http://www.shell

Plus en détail

Assembleur x86. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr

Assembleur x86. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr Assembleur x86 Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Niveaux de programmation Du plus bas niveau (1) au plus abstrait (6) 1) Impulsions

Plus en détail

U90 Ladder. Fonctions spéciales. Lionel Lecointe - Support technique Tel : 01.60.92.41.74 mail : lionel.lecointe@pl-systems.fr

U90 Ladder. Fonctions spéciales. Lionel Lecointe - Support technique Tel : 01.60.92.41.74 mail : lionel.lecointe@pl-systems.fr U90 Ladder Fonctions spéciales Lionel Lecointe - Support technique Tel : 01.60.92.41.74 mail : lionel.lecointe@pl-systems.fr 1 Plan du document Introductions fonctions spéciales Page 3 A*B/C Page 4 Communication

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 8 juillet 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

Algorithmique Partie 1

Algorithmique Partie 1 Algorithmique Partie 1 IUT Informatique de Lens, 1ère Année Université d Artois Frédéric Koriche koriche@cril.fr 2011 - Semestre 1 Modalités Sommaire 1 Modalités 2 Programmation 3 Données 4 Opérateurs

Plus en détail

Parc informatique. Le moniteur. La souris. L unité centrale. Lecteur CD/ DVD. Le lecteur de disquette. Le clavier

Parc informatique. Le moniteur. La souris. L unité centrale. Lecteur CD/ DVD. Le lecteur de disquette. Le clavier Parc informatique Le moniteur La souris L unité centrale Le lecteur de disquette Lecteur CD/ DVD Le clavier L ordinateur enregistre des faits, appelés des données, qu il traite en suivant des instructions

Plus en détail

MS-DOS UTILISATION DES POSSIBILITÉS DE PROGRAMMATION POUR LA CRÉATION DE PROCÉDURES BAT

MS-DOS UTILISATION DES POSSIBILITÉS DE PROGRAMMATION POUR LA CRÉATION DE PROCÉDURES BAT 202 MS-DOS UTILISATION DES POSSIBILITÉS DE PROGRAMMATION POUR LA CRÉATION DE PROCÉDURES BAT I. INSTRUCTIONS SPÉCIFIQUES 1) Instructions COMMAND EXIT Permet d'appeler depuis une procédure BAT une autre

Plus en détail

Architecture logicielle des ordinateurs

Architecture logicielle des ordinateurs Architecture logicielle des ordinateurs Yannick Prié UFR Informatique Université Claude Bernard Lyon 1 des ordinateurs Objectifs du cours Notions générales sur le fonctionnement matériel (un peu) et logiciel

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Programmation système de commandes en C

Programmation système de commandes en C Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes

Plus en détail

Programmation impérative

Programmation impérative Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des

Plus en détail

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

Cours de Programmation Impérative: Zones de mémoires et pointeurs Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

Plus en détail

Algorithmique et programmation : les bases (C) Corrigé

Algorithmique et programmation : les bases (C) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours C, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage C des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

INFORMATIQUE INDUSTRIELLE

INFORMATIQUE INDUSTRIELLE INFORMATIQUE INDUSTRIELLE TR 1. 1 0. Préambule INFORMATIQUE INDUSTRIELLE : INFORMATIQUE AVEC CONTRAINTE DE TEMPS INFORMATIQUE AVEC PERIPHERIQUES D E/S INFORMATIQUE AVEC CONTRAINTE DE TEMPS Intervention

Plus en détail

QUELQUES CONCEPTS INTRODUCTIFS

QUELQUES CONCEPTS INTRODUCTIFS ESIEE Unité d'informatique IN101 Albin Morelle (et Denis Bureau) QUELQUES CONCEPTS INTRODUCTIFS 1- ARCHITECTURE ET FONCTIONNEMENT D UN ORDINATEUR Processeur Mémoire centrale Clavier Unité d échange BUS

Plus en détail

Programmation en assembleur Gnu sur des microprocesseurs de la gamme Intel (du 80386 au Pentium-Pro) ENSIMAG. Première année

Programmation en assembleur Gnu sur des microprocesseurs de la gamme Intel (du 80386 au Pentium-Pro) ENSIMAG. Première année Programmation en assembleur Gnu sur des microprocesseurs de la gamme Intel (du 80386 au Pentium-Pro) ENSIMAG Première année Année 2009 X. Rousset de Pina Sommaire 1. Introduction......1 2. L architecture

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Architecture des ordinateurs TD 1

Architecture des ordinateurs TD 1 Architecture des ordinateurs TD 1 ENSIMAG 1 re année April 29, 2008 Imprimer pour chaque étudiant le listing des instructions (page 36 de la doc, ou page 2 du chapitre 7). Pas la peine de tout imprimer.

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

10 Test d assimilation des connaissances

10 Test d assimilation des connaissances 10 Test d assimilation des connaissances Vous allez être placé dans les conditions d un programmeur et non d un analysteprogrammeur. Ceci signifie que presque tous les algorithmes dont vous aurez besoin

Plus en détail

Objectifs. Architecture des Ordinateurs Partie III : Liens avec le système d exploitation. Au sommaire... Schéma général d un compilateur (1/8)

Objectifs. Architecture des Ordinateurs Partie III : Liens avec le système d exploitation. Au sommaire... Schéma général d un compilateur (1/8) Architecture des Ordinateurs Partie III : Liens avec le système d exploitation 2. Génération de code David Simplot simplot@fil.univ-lille1.fr Objectifs Voir la génération de code ainsi que les mécanismes

Plus en détail

Système d exploitation

Système d exploitation Cours 1 Université du Luxembourg Enseignement : Professeur:. But du cours : Connaître les systèmes d exploitation. Se familiariser avec UNIX. Environnement de programmation : PC sous Windows avec Cygwin

Plus en détail