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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

É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

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

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

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

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

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

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

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

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

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

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

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

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

Création d'un binaire multiplateforme

Création d'un binaire multiplateforme Création d'un binaire multiplateforme Depuis quelques temps, nous voyons apparaître ça et là quelques virus multiplateformes. Nous citerons par exemple Winux, virus qui a pour cible les OS Linux et Windows...

Plus en détail

FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION. Projet Tutorat Réseau / Sécurité INSA de Lyon 2011

FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION. Projet Tutorat Réseau / Sécurité INSA de Lyon 2011 FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION Projet Tutorat Réseau / Sécurité INSA de Lyon 2011 Lucas Bouillot Arnaud Kleinpeter Gaétan Bouquet Xavier Paquin INTRODUCTION INTRODUCTION Qu est ce qu

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

L assembleur avec GCC

L assembleur avec GCC L assembleur avec GCC informaticienzero 27/09/2014 Connaissez-vous les fonctions inline? On les utilise pour optimiser un code, puisque l appel de la fonction est remplacé par le corps de la fonction elle-même.

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

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

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

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

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

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

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

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

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

Introduction. Compilation en C. Annexe Petit Traité Pratique sur l'utilisation de Gcc sous Linux. Première partie. Deuxième partie.

Introduction. Compilation en C. Annexe Petit Traité Pratique sur l'utilisation de Gcc sous Linux. Première partie. Deuxième partie. Annexe Petit Traité Pratique sur l'utilisation de Gcc sous Linux par B.Albar 3 juin 2008 Résumé : Démystication de gcc sous linux. Le code source et l'ensemble du texte présenté dans ce document a été

Plus en détail

Programmation en assembleur Gnu sur des microprocesseurs de la gamme Intel (du 80386 au Pentium-Pro)

Programmation en assembleur Gnu sur des microprocesseurs de la gamme Intel (du 80386 au Pentium-Pro) Programmation en assembleur Gnu sur des microprocesseurs de la gamme Intel (du 80386 au Pentium-Pro) Ensimag et Section Télécom commune à l Ensimag et l Erg Première année. Brouillon : vendredi 13 octobre

Plus en détail

Travaux Dirigés Initiation à la programmation en C

Travaux Dirigés Initiation à la programmation en C Travaux Dirigés Initiation à la programmation en C Sylvain MONTAGNY sylvain.montagny@univ-savoie.fr Bâtiment chablais, bureau 13 04 79 75 86 86 TD1 : Compilation et bases de la programmation TD2 : Les

Plus en détail

Optimisation des shellcodes sous Linux Michał Piotrowski

Optimisation des shellcodes sous Linux Michał Piotrowski Optimisation des shellcodes sous Linux Michał Piotrowski Article publié dans le numéro 5/2005 du magazine hakin9 Tous droits reservés. La copie et la diffusion de l'article sont admises à condition de

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

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

DS Architecture des Ordinateurs

DS Architecture des Ordinateurs 3IF - Architecture des ordinateurs - DS 2015 page 1/9 NOM, Prénom : DS Architecture des Ordinateurs 21/05/2015 Durée 1h30. Répondez sur le sujet. REMPLISSEZ VOTRE NOM TOUT DE SUITE. Tous documents autorisés,

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

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

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

Architecture de Processeur

Architecture de Processeur Mise à jour: Février 2012 Architecture et Programmation [Archi/Lycée] Architecture logicielle Applications 2 Nicolas Bredèche Maître de Conférences Université Paris-Sud bredeche@lri.fr Ressources bibliographiques

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

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èmes d'exploitation

Systèmes d'exploitation Systèmes d'exploitation Fonctionnement interne Jeudi 27 mai et mardi 1er Juin Thomas Petazzoni Lolut - http://lolut.utbm.info Linux Magazine Série complète sur la construction d'un OS simple : SOS. A partir

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

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours (12x2h00) : rédéric Mallet - fmallet@unice.fr TP (12x2h00-2 groupes) : Jean-Pierre Lips - Jean-Pierre.LPS@unice.fr Christophe Delage Christophe.Delage@sophia.inria.fr

Plus en détail

Conception et exploitation des processeurs

Conception et exploitation des processeurs Chargé de cours : Frédéric Pétrot Équipe pédagogique : Stéphane Mancini, Luc Michel, Olivier Muller, Christophe Rippert, Sebastien Viardot Année universitaire 2012-2013 Structure du cours C1 C2 C3 C4 aux

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

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

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

Conception et exploitation des processeurs

Conception et exploitation des processeurs Chargés de cours : Frédéric Pétrot et Sébastien Viardot Année universitaire 2011-2012 Structure du cours C1 C2 C3 au VHDL aux langages d'assemblage pour les ISA x86 et MIPS Conventions pour les appels

Plus en détail

Analyse et programmation 1

Analyse et programmation 1 Analyse et programmation Aperçu du fonctionnement de l ordinateur Fonctionnement de l ordinateur Codage de l information Bus d échange d information CPU Exécution d un programme par la CPU Gestion des

Plus en détail

Fonctionnement d un processeur. Fonctionnement d un processeur. Assembleur x86. Mémoire centrale et adresse

Fonctionnement d un processeur. Fonctionnement d un processeur. Assembleur x86. Mémoire centrale et adresse Mémoire centrale et adresse Assembleur x86 Comment est organisée la mémoire centrale? La mémoire est composée d'une suite d'emplacements numérotés séquentiellement, et pouvant contenir un nombre codé sur

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

Groupe Eyrolles, 2005, ISBN : 2-212-11635-7

Groupe Eyrolles, 2005, ISBN : 2-212-11635-7 Groupe Eyrolles, 2005, ISBN : 2-212-11635-7 Processeurs et jeux d instructions CHAPITRE 4 159 Introduction au langage assembleur Dans le cadre de notre démarche ascendante, nous allons maintenant aborder

Plus en détail

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

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96 Assembleur i8086 Philippe Preux IUT Informatique du Littoral Année universitaire 95 96 1 Avertissement Ce document décrit le langage d assemblage étudié et utilisé dans le cadre des TP d architecture.

Plus en détail

INITIATION A LA PROGRAMMATION EN C

INITIATION A LA PROGRAMMATION EN C INITIATION A LA PROGRAMMATION EN C OBJECTIF : ETRE CAPABLE DE CRÉER OU MODIFIER DE PETITS OUTILS DE TRAITEMENT D IMAGE Denis MARIANO-GOULART Service de médecine nucléaire. CHRU Lapeyronie. Montpellier.

Plus en détail

Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle

Plus en détail

5.2. Introduction à la programmation en assembleur et en langage machine

5.2. Introduction à la programmation en assembleur et en langage machine 5. Couche conventionnelle. Introduction à la programmation en assembleur et en langage machine. Instructions - types, formats, champs; types d'adressage et utilisation des registres. Branchements, sauts

Plus en détail

Les systèmes embarqués

Les systèmes embarqués Unité IFS (Interface) Les systèmes embarqués Architecture des systèmes à processeur Etienne Messerli Le 17 février 2015 p 1 Ordinateur Système UNIVERSEL de traitement de l'information "binaire" Utilisé

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

Désassemblage et détection de logiciels malveillants auto-modifiants

Désassemblage et détection de logiciels malveillants auto-modifiants École doctorale IAEM Lorraine Désassemblage et détection de logiciels malveillants auto-modifiants THÈSE présentée et soutenue publiquement le 23/02/205 pour l obtention du Doctorat de l Université de

Plus en détail

TP1 - Introduction au langage C

TP1 - Introduction au langage C ENS Lyon L-Info PROJ1 2014-2015 TP1 - Introduction au langage C Sujet à terminer pour le dimanche 20 à 2h59, sous forme d une archive.zip contenant votre code source, par email à aurelien.cavelan@ens-lyon.fr.

Plus en détail

Dépassement de tampon

Dépassement de tampon Dépassement de tampon En informatique, un dépassement de tampon ou débordement de tampon (en anglais, buffer overflow) est un bug par lequel un processus, lors de l'écriture dans un tampon, écrit à l'extérieur

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

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

III - PROGRAMMATION EN ASSEMBLEUR

III - PROGRAMMATION EN ASSEMBLEUR III - PROGRAMMATION EN ASSEMBLEUR 3.1 Introduction à la programmation en assembleur Pour programmer un ordinateur on utilise généralement des langages dits évolués ou de haut niveau : C, C++, Java, Basic,

Plus en détail

LE BIOS : QU EST-CE QUE C EST?

LE BIOS : QU EST-CE QUE C EST? LE BIOS : QU EST-CE QUE C EST? Mewtow 29 octobre 2015 Table des matières 1 Introduction 5 2 Rappels sur le mode réel des processeurs x86 7 2.1 Mémoire en mode réel............................... 7 2.1.1

Plus en détail

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

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

Le langage Assembleur

Le langage Assembleur Université de Tunis El-Manar Faculté des Sciences de Tunis Département des Sciences de l Informatique Année Universitaire 2011/2012 Sections : IF3 Module : Systèmes d Exploitation Le langage Assembleur

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

Objectifs de ce cours. Introduction au langage C - Cours 4. Procédures. Exemple de procédure. Analyse de problème.

Objectifs de ce cours. Introduction au langage C - Cours 4. Procédures. Exemple de procédure. Analyse de problème. 1/30 Objectif de ce cours 2/30 Objectifs de ce cours Introduction au langage C - Cours 4 Girardot/Roelens Septembre 2013 Analyse de problème I décomposer un traitement complexe en traitements simples Concepts

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs GTR 1999-2000 Emmanuel Viennet IUT de Villetaneuse Département GTR viennet@lipn.univ-paris13.fr Licence Copyright c 1995-2001 par Emmanuel Viennet. Ce document peut être librement

Plus en détail

Structure en couches des systèmes informatiques

Structure en couches des systèmes informatiques Structure en couches des systèmes informatiques Vue simplifiée d un système informatique Ce que le simple utilisateur perçoit «à première vue» d un système informatique : Le boîtier (tour, desktop ou portable)

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

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

Compilation. Introduction à la compilation. Termes Phases d'un compilateur Importance des grammaires Méthodes d'analyse. Termes. Termes.

Compilation. Introduction à la compilation. Termes Phases d'un compilateur Importance des grammaires Méthodes d'analyse. Termes. Termes. Compilation Enseignants : Stéphane Talbot Miguel Tomasena Volume horaire : 10.5 C / 12 TD / 12 TP langage source Traduction langage cible Contenu : Introduction à la compilation Analyse Lexicale Analyse

Plus en détail

Le langage Forth. Brique ROSE. Samuel Tardieu sam@rfc1149.net. École Nationale Supérieure des Télécommunications

Le langage Forth. Brique ROSE. Samuel Tardieu sam@rfc1149.net. École Nationale Supérieure des Télécommunications Le langage Forth Brique ROSE Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Le langage Forth 1 / 26 Qu est-ce que Forth? Langage sans syntaxe Mots

Plus en détail

La Rétroconception Application à l analyse logicielle

La Rétroconception Application à l analyse logicielle La Rétroconception Application à l analyse logicielle Serge LEFRANC DGA/DCE/CELAR n 1 Introduction DGA/DCE/CELAR n 2 Introduction 1/2 La rétroconception peut se définir comme l action d extraire une connaissance

Plus en détail

Outil de développement IAR Embedded Workbench IDE

Outil de développement IAR Embedded Workbench IDE Outil de développement IAR Embedded Workbench IDE Introduction L outil de développement intégrés «IAR Embedded Workbench» est un environnement de développement intégrés très puissant (IDE : Integrated

Plus en détail