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

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

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

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

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

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

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

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

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

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

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

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

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) F. Pellegrini Université Bordeaux 1 Ce document est copiable et distribuable librement et gratuitement à

Plus en détail

Département informatique de l université d Angers

Département informatique de l université d Angers Département informatique de l université d Angers Amélioration d'un logiciel d'émulation du fonctionnement d'un microprocesseur x8 6 SCHAEFFER Florian ROUSSEAUX Billy L3 Informatique Responsable du projet:

Plus en détail

Playing with ptrace() for fun and profit

Playing with ptrace() for fun and profit sous GNU/Linux nicolas.bareil@eads.net EADS Corporate Research Center - DCR/STI/C SSI Lab SSTIC 2006 Il était une fois... Sous UNIX, ptrace() est le seul moyen de debuggage. User-space, Interface rigide

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

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

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

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

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

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

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

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

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

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

TD Architecture des ordinateurs. Jean-Luc Dekeyser TD Architecture des ordinateurs Jean-Luc Dekeyser Fiche 1 Nombres de l informatique Exercice 1 Une entreprise désire réaliser la sauvegarde de ses données sur un site distant. Le volume de données à sauvegarder

Plus en détail

CM2 L architecture MIPS32

CM2 L architecture MIPS32 CM2 L architecture MIPS32 Olivier Marchetti (CM-TD-TP) Alexandre Brière (TD-TP) Laboratoire d informatique de Paris 6 Pôle SoC UPMC Année 2014-2015 Instructions MIPS Contrôle Données en MIPS E/S en MIPS

Plus en détail

Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications Ordinateurs, Structure et Applications Cours 13, Le DOS Etienne Tremblay Université Laval, Hiver 2011 Cours 13, p.1 Le DOS DOS signifie Disk Operating System Le DOS est un système d exploitation. Il existe

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

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

Initiation. àl algorithmique et à la programmation. en C

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

Plus en détail

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

Plus en détail

Architecture matérielle des systèmes informatiques

Architecture matérielle des systèmes informatiques Architecture matérielle des systèmes informatiques IDEC, Renens. Version novembre 2003. Avertissement : ce support de cours n est pas destiné à l autoformation et doit impérativement être complété par

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

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

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

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

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION 145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

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

Réalisation d un OS 32 bits pour PC(x86)

Réalisation d un OS 32 bits pour PC(x86) Rapport projet tutoré Réalisation d un OS 32 bits pour PC(x86) Maxime Chéramy Nicolas Floquet Benjamin Hautbois

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET ALGORITHMIQUE ET PROGRAMMATION II PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du

Plus en détail

Microprocesseur + Logiciel

Microprocesseur + Logiciel Microprocesseur + Logiciel Robot EVALBOT MOHAMED AKIL BUREAU 5253 UNITE IGI 1001 PROGRAMMATION DES MICROPROCESSEURS Présentation [IGI1001] CONTEXTE SCIENTIFIQUE... 4 1. OBJECTIFS DE L UNITE... 6 2. OBJECTIFS

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

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

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

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

Résumé Génération de code Le code intermédiaire Résumé Analyse INFO0004 Structure des langages de programmation Génération de code ; liaison et exécution Justus H. Piater Programmation Analyse Compilation Liaison fichier texte Analyse lexicale flux

Plus en détail

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

Sélection du contrôleur

Sélection du contrôleur Démo CoDeSys - 1 - 1. Configuration de l environnement de travail : Lancer le logiciel CoDeSys Fichier Nouveau Lors de la première utilisation, une boîte de dialogue apparaît permettant la sélection du

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

4. Initiation à l'assembleur

4. Initiation à l'assembleur 4. Initiation à l'assembleur 142 143 1. Introduction Pour mieux comprendre la structure interne d'un ordinateur, nous aborderons la langage d'assemblage d'un processeur contemporain, le Pentium III d'intel.

Plus en détail

Architecture des ordinateurs. Loïc Cuvillon. 20 novembre 2013

Architecture des ordinateurs. Loïc Cuvillon. 20 novembre 2013 Systèmes temps réel et systèmes embarqués Architecture des ordinateurs Loïc Cuvillon Ecole Nationale Supérieure de Physique de Strasbourg 20 novembre 2013 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

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

Plus en détail

Découvrir l'ordinateur (niveau 2)

Découvrir l'ordinateur (niveau 2) I. Module Initiation Découvrir l'ordinateur (niveau 2) Médiathèque de Haguenau - mediatheque.ville-haguenau.fr Espace Cyber-base de la médiathèque de Haguenau 1 Sommaire Sommaire 2 I. Rappel : Comment

Plus en détail

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

Plus en détail

Les techniques de protection du logiciel

Les techniques de protection du logiciel Travail d'études Licence Informatique 2003-2004 Les techniques de protection du logiciel Julien BURLE Térence SCALABRE Encadré par Mr Pierre CRESCENZO Travail d'étude: Les techniques de protection du logiciel

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

2 Comment fonctionne un ordinateur, dans les grandes lignes

2 Comment fonctionne un ordinateur, dans les grandes lignes Programmation 1 Cours n 1 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot Les notes de cours et les feuilles de TD sont disponibles (avec un peu de retard par rapport au déroulement du cours)

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

Structure du format BMP, sa lecture, sa construction et son écriture

Structure du format BMP, sa lecture, sa construction et son écriture Structure du format BMP, sa lecture, sa construction et son écriture Claude Parisel Mars 2003 Table des matières : 1. Le choix du format 2. Commentaires sur les autres formats 3. Format BMP pour noir&blanc,

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11) 1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général

Plus en détail

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année UFR Sciences et Techniques Licence S&T 1ère année Informatique UE 102 Architecture des ordinateurs et Algorithmique de base Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ UFR Sciences et Techniques

Plus en détail

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Désobfuscation automatique de binaire - The Barbarian Sublimation

Désobfuscation automatique de binaire - The Barbarian Sublimation Désobfuscation automatique de binaire - The Barbarian Sublimation Yoann Guillot, Alexandre Gazet Sogeti - ESEC Résumé Ce papier présente l état de notre recherche dans le domaine de l automatisation du

Plus en détail

Déprotection semi-automatique de binaire

Déprotection semi-automatique de binaire Déprotection semi-automatique de binaire Yoann Guillot et Alexandre Gazet Sogeti - ESEC Résumé Que ce soit sur des binaires malicieux ou non, les protections dont le but est de freiner la rétro-ingénierie

Plus en détail

Le Projet BINSEC. Automatiser l analyse de sécurité au niveau binaire. Airbus group, CEA, IRISA, LORIA, Uni. Joseph Fourier. p.

Le Projet BINSEC. Automatiser l analyse de sécurité au niveau binaire. Airbus group, CEA, IRISA, LORIA, Uni. Joseph Fourier. p. Le Projet BINSEC Automatiser l analyse de sécurité au niveau binaire Airbus group, CEA, IRISA, LORIA, Uni. Joseph Fourier p. 1/22 Introduction Panorama de BINSEC Cadre de travail Projet ANR INS, appel

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

GlobalScape Secure FTP Server 3.0.2 Buffer Overflow

GlobalScape Secure FTP Server 3.0.2 Buffer Overflow GlobalScape Secure FTP Server 3.0.2 Buffer Overflow muts@whitehat.co.il Traduction française: jerome[at]athias.fr http://www.athias.fr/jerome/doc/ Qu est-ce que le Serveur FTP Sécurisé GlobalScape?...

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

Jeu d instructions NIOS II

Jeu d instructions NIOS II Jeu d instructions NIOS II 1 Formats d instructions Le processeur NIOS II a un jeu d instructions de type RISC. Il possède 32 registres de 32 bits, notés r0 à r31, avec r0 0. Les instructions sont de longueur

Plus en détail

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Initiation à la sécurité

Initiation à la sécurité Initiation à la sécurité UE Systèmes informatiques 12 septembre 2011 Julien Raeis - http://raeis.iiens.net/ Présentation Ingénieur IIE 2005 Carrière dans la sécurité des systèmes Consultant en sécurité

Plus en détail

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

Principe de fonctionnement des périphériques des ordinateurs en vue de la programmation. Patrick Cégielski Principe de fonctionnement des périphériques des ordinateurs en vue de la programmation Patrick Cégielski Juin 2012 Pour Irène et Marie Legal Notice Copyright c 2012 Patrick Cégielski Université Paris

Plus en détail

REALISATION D UN MAILLAGE

REALISATION D UN MAILLAGE MODE D EMPLOI REALISATION D UN MAILLAGE AVEC ICEM 4.08 Hervé Neau Août 2000 Version 1.0 SOMMAIRE 1 : INTRODUCTION... 2 2 : PRINCIPE DE FONCTIONNEMENT... 2 3 : INSTALLATION D ICEM 4.08... 3 4 : LANCEMENT

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 10 août 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 langage

Plus en détail

Le système de gestion des fichiers, les entrées/sorties.

Le système de gestion des fichiers, les entrées/sorties. Le système de gestion des fichiers, les entrées/sorties. Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 19

Plus en détail

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier Cours de C Petits secrets du C & programmation avancée Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Affectations étendues a+=expression a=a+expression

Plus en détail

GESTION DES FICHIERS C/UNIX

GESTION DES FICHIERS C/UNIX Licence IG Page 1 sur 6 GESTION DES FICHIERS C/UNIX Introduction Deux modes d appel - Par la bibliothèque standard C (appel de haut niveau) - Par appels système (bas niveau) Nécessite les includes suivant

Plus en détail

PIC : COURS ASSEMBLEUR

PIC : COURS ASSEMBLEUR PIC : COURS ASSEMBLEUR I) Fonctions de base d une machine informatique Contenir de façon permanente les tâches à exécuter (mémoire programme) en ROM ou sur support magnétique. Contenir de façon temporaire

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Exécutif temps réel Pierre-Yves Duval (cppm)

Exécutif temps réel Pierre-Yves Duval (cppm) Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications

Plus en détail

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet. 1- Optimiser le poids de votre image : Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet. Tous les types d utilisateurs (auteur, publicateur,

Plus en détail

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU N de série Siège social 107, rue Henri Barbusse BP305-92111 CLICHY Cedex 1 Sommaire Description 1. Installation 2. Mise

Plus en détail

Vous allez le voir au cours de ce premier chapitre, 1. Découvrir l ipad

Vous allez le voir au cours de ce premier chapitre, 1. Découvrir l ipad 1. Découvrir l ipad Vous allez le voir au cours de ce premier chapitre, l utilisation de l ipad est très intuitive et, surtout, votre tablette obéit au doigt et à l œil. Vous ne pourrez bientôt plus vous

Plus en détail

Les attaques par corruption de mémoire Synopsis Mickael Deloison 22/10/2008

Les attaques par corruption de mémoire Synopsis Mickael Deloison 22/10/2008 Les attaques par corruption de mémoire Synopsis Ce document traite des failles permettant des attaques par corruption de mémoire, les attaques par buffer overflow (dépassement de buffer) étant les plus

Plus en détail

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur.

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur. C.F.A.O. : Conception et Fabrication Assistées par Ordinateur. La CFAO réunit dans une même démarche informatique les actions de conception et de fabrication d un objet. La technique utilisée permet à

Plus en détail

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que CQP 112 Introduc/on à la programma/on Thème 2 : Architecture d un système informa/que Département d informa/que CQP 112 : Introduc/on à la programma/on Plan 1. Historique des ordinateurs 2. Composants

Plus en détail

Introduction aux buffer overflow, CS335

Introduction aux buffer overflow, CS335 Introduction aux buffer overflow, CS335 http ://www.phrack.org/archives/49/p49-14 1. Smashing the stack for fun and profit by Aleph One November 1996 Aleph1 United Kingdom : www.aleph1.co.uk Mail : aleph1@securityfocus.com

Plus en détail

Les fichiers. Chapitre 4

Les fichiers. Chapitre 4 Chapitre 4 Les fichiers Jusqu à maintenant tous les programmes que nous avons conçus travaillaient sur des données qui étaient perdues après chaque session de travail. On peut cependant, c est bien naturel,

Plus en détail

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE Arborescence du cédérom (page 2) Lancement du Cédérom et configuration minimale de votre ordinateur (page 3). Loupe, page

Plus en détail