Conception et exploitation des processeurs

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

Download "Conception et exploitation des processeurs"

Transcription

1 Chargés de cours : Frédéric Pétrot et Sébastien Viardot Année universitaire Structure du cours C1 C2 C3 au VHDL aux langages d'assemblage pour les ISA x86 et MIPS Conventions pour les appels de fonctions en assembleur x86 et MIPS 2 / à l'assembleur x86 3 à l'assembleur MIPS 4 3 / 32

2 Étude du langage d'assemblage de 2 processeurs Intel x86 (pentium) ISA hégémonique, desktops, laptops et serveurs Constructeur Intel a, compatibilité ascendante depuis 1979 Machine CISC : Complex Instruction Set Computer a wwwintelcom MIPS R3000 ISA symbolique RISC : Reduced Instruction Set Computer Constructeur MIPS a, 1988 Importante part de marché dans l'embarqué (networking en particulier), mais nettement moins que ARM b, favori des smartphones et autres tablettes a wwwmipscom b wwwarmcom 4 / 32 CISC Intel x86 jeu d'instruction prolique, 425 en 2004 sans les extensions multimédia et 64 bits destiné à être programmé par un humain vise un code compréhensible et dense nombreux modes d'adressage opérandes peuvent être des cases mémoire registres spécialisés par le matériel cherche à optimiser la taille du programme par l'utilisation d'instructions complexes 5 / 32 RISC MIPS R3000 jeu d'instruction minimaliste, 65 dans le R3000, moins de 80 dans ses évolutions destiné à être la cible d'un compilateur instruction de taille xe menant à une occupation mémoire du programme plus grande registres à usage général, utilisation logicielle conventionnelle un mode d'adressage unique, architecture load/store opérande = registre 6 / 32

3 Programmation assembleur Langage traduit en binaire compréhensible par la machine Transformation fondamentalement syntaxique caractéristiques diérentes important de connaître les deux types Attention! Ne pas confondre les 2 assembleurs!!! 7 / 32 à l'assembleur x à l'assembleur x86 3 à l'assembleur MIPS 4 8 / 32 à l'assembleur x86 ISA x86 : Registres Registre bits bits Remarque 32 bits 15 à 8 7 à 0 %eax %ax parfois spécialisé %ah %al %ebx %bx parfois spécialisé %bh %bl %ecx %cx parfois spécialisé %ch %cl %edx %dx parfois spécialisé %dh %dl %esi %si parfois spécialisé %edi %di parfois spécialisé %esp %sp pointeur de pile %ebp %bp pointeur de contexte %eip %ip pointeur d'instruction %eflags %flags registre des indicateurs Considérés comme registres à usage général durant ce cours Attention, ils peuvent être utilisés implicitement par certaines instructions que nous n'étudierons pas 9 / 32

4 à l'assembleur x86 ISA x86 Adresses Sur 32 bits, de 0x0000_0000 à 0xFFFF_FFFF Données Sur 32, 16 ou 8 bits Instruction contient information de taille Organisation mémoire little endian Valeur 0x stockée en 0xDEAD_BEEC Adresse 0xDEADBEEC 0xDEADBEED 0xDEADBEEE 0xDEADBEEF Valeur 0x78 0x56 0x34 0x12 10 / 32 à l'assembleur x86 Sous-ensemble pour commencer, Suxes Précisent la taille de la valeur manipulée par l'instruction l (long) : 32 bits w (word) : 16 bits b (byte) : 8 bits Copies entre éléments mémorisants mov suxe source, destination entre registres : movl %eax, %ebx registre vers mémoire : movb %al, v ebx eax mem[v] 70 al mémoire vers registre : movw u, %bx bx 150 mem[u] 150 constante vers registre : movb $45, %dh dh const vers mém : movl $0x1234, t mem[t] 310 0x mémoire vers mémoire : impossible 11 / 32 à l'assembleur x86 Les plus courantes, Arithmétiques addw %ax, %bx bx bx + ax subb $20, %al al al 20 negl %eax eax eax shll $1, %eax eax eax shrl $4, %ebx ebx 0 4 ebx 314 sarl $12, %ebx ebx ebx Logiques andw $0xD0D0, %cx orb $0xFA, %al xorl %eax, %eax notl %ecx cx cx and 0xD0D0 al al or 0xFA eax eax xor eax ecx ecx 12 / 32

5 à l'assembleur x86 Les plus courantes, Comparaisons cmpl $5, %eax eags ags(eax 5) testb $0x01, %bl eags ags(1 and bl) Branchements Décision prise en fonction du contenu des ags jmp label jxx label ip label adresse instruction suivante ip label si xx est vraie, si non xx 13 / 32 à l'assembleur x86 Les plus courantes, Branchements Comparaison Entiers naturels Entiers signés > ja, jnbe jg, jnle jae, jnb jge, jnl < jb, jnae jl, jnge jbe, jna jle, jng = je, jz jne, jnz n not, a above, b below, g greater, l less, e equal, z zero 14 / 32 à l'assembleur MIPS 1 2 à l'assembleur x86 3 à l'assembleur MIPS 4 15 / 32

6 à l'assembleur MIPS ISA MIPS Registre Remarque 32 bits $0 registre trash (peut être écrit, zéro en lecture) $1-$30 non spécialisés $31 contient l'adresse de retour de fonction Adresses Sur 32 bits, de 0x0000_0000 à 0xFFFF_FFFF Données Sur 32, 16 ou 8 bits Seules les instructions de chargement ou de stockage mémoire contiennent information de taille Organisation mémoire little endian 16 / 32 à l'assembleur MIPS ISA MIPS Sous-ensemble pour commencer, Suxes pour les chargements/stockages mémoire Précisent la taille de la valeur manipulée par l'instruction w (word) : 32 bits h (half) : 16 bits b (byte) : 8 bits Copies entre éléments mémorisants entre registres : add $3, $2, $0 $3 $2 reg vers mém : sw $12, 96($5) mem[$5 + 96] 310 $12 mém vers reg : lb $2, -15($1) $ mem[$1 15] 70 const vers reg : ori $3, $0, 0xBEEF $ xBEEF const vers demi-mot poids fort reg : lui $4, 0xDEAD $4 0xDEAD 0 16 const vers mém : impossible mém vers mém : impossible 17 / 32 à l'assembleur MIPS Les plus courantes, Arithmétiques add $4, $12, $23 $4 $12 + $23 sub $14, $9, $30 $14 $9 $30 addi $2, $17, -1 $2 $17 1 sllv $1, $12, $7 $1 $12 31 $ $740 sra $4, $3, 9 $4 $ $3 319 Logiques and $14, $9, $30 $14 $9 and $30 ori $4, $3, 0xFF $4 $3 or x00FF xori $1, $12, 0xAAAA $1 $12 xor xAAAA nor $4, $12, $23 $4 $12 or $23 18 / 32

7 à l'assembleur MIPS Les plus courantes, Comparaisons sltu $4, $12, $23 slti $2, $17, -1 $ si 0 $12 < 0 $23, 0 32 sinon $ si $17 < xFFFF, 0 32 sinon Branchements inconditionnels (sauts) j label pc label jr $31 pc $31 19 / 32 à l'assembleur MIPS Les plus courantes, Branchements conditionnels beq $2, $3, label pc label si $2 = $3, adresse instruction suivante sinon bne $2, $3, label pc label si $2 $3, adresse instruction suivante sinon blez $2, label pc label si $2 0, adresse instruction suivante sinon bgtz $2, label pc label si $2 > 0, adresse instruction suivante sinon 20 / à l'assembleur x86 3 à l'assembleur MIPS 4 21 / 32

8 if C : int x = ; if (x == 5) x += 2; else x -= 4; x86 : ; x est dans %eax if: cmpl $5, %eax jne else addl $2, %eax jmp endif else: subl $4, %eax endif: MIPS : ; x est dans $4 if: li $1, 5 bne $4, $1, else addi $4, $4, 2 j endif else: addi $4, $4, -4 endif: 22 / 32 while C : int x = ; while (x > 5) x -= 1; x86 : while: cmpl $5, %eax jle endwhile subl $1, %eax jmp while endwhile: MIPS : while: slti $1, $4, 6 bne $1, $0, endwhile addi $4, $4, -1 j while endwhile: 23 / 32 for, équivalent structuré du while x86 : C : int x = ; unsigned int i; for (i = 0; i < 5; i++) x = x + 4; movl $0, %ecx for: cmpl $5, %ecx jae endfor addl $4, %eax addl $1, %ecx jmp for endfor: MIPS : li $2, $0 for: slti $1, $2, 5 beq $1, $0, endfor addi $4, $4, 4 addi $2, $2, 1 j for endfor: 24 / 32

9 Premier programme : pgcd C : int main(void) unsigned a, b; a = 15; b = 10; while (a!= b) if (a < b) b = b - a; else a = a - b; return 0; x86 : globl main main: enter $0, $0 movl $15, %ecx movl $10, %edx while: cmpl %ecx, %edx je endwhile if: jb else subl %ecx, %edx jmp endif else: subl %edx, %ecx endif: jmp while endwhile: leave movl $0, %eax ret MIPS : globl main main: addi $4, $0, 15 addi $5, $0, 10 while: beq $4, $5, endwhile if: slt $1, $4, $5 beq $1, $0, else sub $5, $5, $4 j endif else: sub $4, $4, $5 endif: j while endwhile: addi $2, $0, 0 jr $31 25 / 32 Éclaircissements globl main étent la visibilité de l'étiquette main aux autres chiers prologue et épilogue de fonction minimaux : x86 enter $0,$0 leave ; retourne zéro movl $0, %eax ret MIPS ; retourne zéro addi $2, $0, 0 ; $31 contient l'adresse ; de retour de la fonction jr $31 Permet de faire tourner vos premiers programmes Clarication complète au Cours 3! 26 / 32 Vue mémoire 1 2 à l'assembleur x86 3 à l'assembleur MIPS 4 27 / 32

10 Vue mémoire Exécutable en mémoire Exécutable constitué de 4 parties Code Directive text En lecture seulement Commence en bas de la mémoire Données connues statiquement Directive data Variables globales initialisées au lancement En lecture/écriture Directive lcomm Variables globales non explicitement initialisées, initialisées à zéro au lancement En lecture/écriture 28 / 32 Vue mémoire Exécutable en mémoire Données connues statiquement Directive rodata Constantes initialisées au lancement En lecture seulement Placées à la suite du code Données allouées dynamiquement Pile Variables globales dont les adresses sont dénies à l'exécution Placées à la suite des données initialisées Gérée par le matériel et/ou le logiciel lors des appels de fonctions Commence à la n de la mémoire 29 / 32 Vue mémoire Résumé 0xFFFFFFFF 0x 0x pile tas bss 0x data 0x données rodata 0x 0x code text 0x 0x x x 0x code text 0x rodata 0x données data bss tas 0x 0x pile 0x 0xFFFFFFFF 30 / 32

11 Informations techniques 1 2 à l'assembleur x86 3 à l'assembleur MIPS 4 31 / 32 Informations techniques Informations techniques Nom de chier Historiquement xs : assembleur xs : préprocesseur C avant assembleur Maintenant comportement identique : cpp+asm Génération du binaire gcc -gstabs -o x xs -gstabs : ajoute les information permettant de déverminer -o file : donne le nom file au chier produit 32 / 32

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

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

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

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

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

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

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

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

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

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

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

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

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

Optimisation de code

Optimisation de code Optimisation de code Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Optimisation de code 1 / 77 But L optimisation cherche à améliorer

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

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

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

Éléments d architecture des ordinateurs : travaux pratiques d assembleur sur PC Intelx86 sous Linux

Éléments d architecture des ordinateurs : travaux pratiques d assembleur sur PC Intelx86 sous Linux Éléments d architecture des ordinateurs : travaux pratiques d assembleur sur PC Intelx86 sous Linux Laboratoire d Informatique fondamentale de Lille Université des sciences et technologies de Lille F-59655

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

SOMMAIRE. B - Les interruptions - Instructions 4 - Les flags - Les sauts conditionnels - CMP A - Les flags - Les indicateurs

SOMMAIRE. B - Les interruptions - Instructions 4 - Les flags - Les sauts conditionnels - CMP A - Les flags - Les indicateurs SOMMAIRE 1 - Les bases indispensables pour débuter A - Définition de l'assembleur B - Le language hexadécimal C Le calcul binaire D Conversion binaire ó hexadécimal E - Le processeur et ses registres a

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

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

Structure d un programme

Structure d un programme 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é

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

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

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

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

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

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

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

LES INSTRUCTIONS DU 8051

LES INSTRUCTIONS DU 8051 LES INSTRUCTIONS DU 8051 Comme les microprocesseurs plus classiques le 8051 possède des instructions que l'on peut classer en: - Instructions de transfert de données - arithmétiques et logiques - de saut

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

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

Élaboration d une représentation intermédiaire pour l exécution concolique et le marquage de données sous Windows

Élaboration d une représentation intermédiaire pour l exécution concolique et le marquage de données sous Windows Élaboration d une représentation intermédiaire pour l exécution concolique et le marquage de données sous Windows Sébastien LECOMTE cyberaware@laposte.net SSTIC 06 juin 2014 Plan 1 Introduction 2 Représentation

Plus en détail

Projet 1 ENS Lyon L3IF

Projet 1 ENS Lyon L3IF Projet 1 ENS Lyon L3IF Génération de code Sébastien Briais 8 janvier 2008 Dans cette partie, vous allez devoir implémenter le générateur de code pour l émulateur DLX risc-emu. À rendre pour le 18 janvier

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

A) Le Logiciel : le Software

A) Le Logiciel : le Software A) Le Logiciel : le Software 1) Mise en route d'une machine : RESET Un microprocesseur ne peut exécuter qu'une suite d'instructions qu'il doit aller extraire de sa mémoire. Cette suite d'instructions est

Plus en détail

La vie des programmes

La vie des programmes La vie des programmes Fabienne Carrier Stéphane Devismes Université Joseph Fourier, Grenoble I 2 février 2009 Carrier, Devismes (Grenoble I) La vie des programmes 2 février 2009 1 / 31 Plan 1 Introduction

Plus en détail

Chap. I : Architecture de base d un ordinateur

Chap. I : Architecture de base d un ordinateur UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

Plus en détail

Exécution des instructions machine

Exécution des instructions machine Exécution des instructions machine Eduardo Sanchez EPFL Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr]

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

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

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

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

Types et langages de programmation. Algorithmique et Programmation Unisciel/K.Zampieri

Types et langages de programmation. Algorithmique et Programmation Unisciel/K.Zampieri Types et langages de programmation Algorithmique et Programmation Unisciel/K.Zampieri 1 Généalogie partielle des langages de programmation FORTRAN BASIC PL/1 PROLOG ALGOL60 COBOL C PASCAL ADA MODULA-2

Plus en détail

Éviter les failles de sécurité dès le développement d'une application 2 ème Partie

Éviter les failles de sécurité dès le développement d'une application 2 ème Partie Éviter les failles de sécurité dès le développement d'une application 2 ème Partie Notre série d'articles essaye de mettre en lumière les principales failles de sécurité susceptibles d'apparaître dans

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

Interprétation et compilation Licence Informatique troisième année. Jean Méhat jm@univ-paris8.fr Université de Paris 8 Vincennes Saint Denis

Interprétation et compilation Licence Informatique troisième année. Jean Méhat jm@univ-paris8.fr Université de Paris 8 Vincennes Saint Denis Interprétation et compilation Licence Informatique troisième année Jean Méhat jm@univ-paris8.fr Université de Paris 8 Vincennes Saint Denis 5 avril 23 Copyright (C) 2009 Jean Méhat Permission is granted

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

Langages de programmation et compilation

Langages de programmation et compilation École Normale Supérieure Langages de programmation et compilation Jean-Christophe Filliâtre Cours 2 / 5 octobre 2015 Jean-Christophe Filliâtre Langages de programmation et compilation 2015 2016 / cours

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

Chap. I : Architecture de base d un ordinateur

Chap. I : Architecture de base d un ordinateur UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

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

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

Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001

Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001 Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001 L examen dure 3 heures. Le sujet comporte 7 pages dont 3 pages de rappels sur le LC-2 et la microprogrammation. Tous

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

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

Architecture des Ordinateurs IFIP - Cycle Apprentissage. Cécile Germain-Renaud

Architecture des Ordinateurs IFIP - Cycle Apprentissage. Cécile Germain-Renaud Architecture des Ordinateurs IFIP - Cycle Apprentissage Cécile Germain-Renaud 2 Chapitre 1 Introduction 1.1 Le modèle de Von Neumann L ordinateur est une machine électronique, qui traite l information

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

Croisière au cœur d un OS Étape 6 : Multitâche et changement de contexte

Croisière au cœur d un OS Étape 6 : Multitâche et changement de contexte Croisière au cœur d un OS Étape 6 : Multitâche et changement de contexte Résumé Allocateur de pages physiques 4 Pagination 4Go Au cours de cet article et du suivant, nous vous proposons la mise en place

Plus en détail

ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes

ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes On utilise le jeu d instructions ARM. ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes PROGRAMMATION ASSEMBLEUR PREMIERE PARTIE Soit

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

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

É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

L ASSEMBLEUR INTEL. Institut Universitaire de Technologie d Amiens Support de cours, 1999/2000 L Assembleur INTEL. Cyril CAUCHOIS

L ASSEMBLEUR INTEL. Institut Universitaire de Technologie d Amiens Support de cours, 1999/2000 L Assembleur INTEL. Cyril CAUCHOIS L ASSEMBLEUR INTEL Institut Universitaire de Technologie d Amiens Support de cours, 1999/2000 L Assembleur INTEL Cyril CAUCHOIS Table des matières Table des matières Chapitre 1 1 1 RAPPEL : LES SYSTÈMES

Plus en détail

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...

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

Licence Fondamentale SMI (semestre 3)

Licence Fondamentale SMI (semestre 3) Cours Programmation I (chapitres 1&2) Licence Fondamentale SMI (semestre 3) Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2014/2015 2014/2015 Pr. Ben Mamoun 1 Plan du cours (1) 1. Introduction

Plus en détail

Exemple: le processeur MIPS

Exemple: le processeur MIPS Exécution des instructions machine Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr] adresse (donnée, instruction

Plus en détail

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

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu Travaux d études et de recherches Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu Étudiant : Luc Michel Encadrants : Frédéric Pétrot Nicolas Fournel 23 mai 2010 TABLE DES MATIÈRES

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Codage de l'information

Codage de l'information Organisation des ordinateurs et assembleur Codage de l information Chapitre 3 Codage de l'information Les cellules de mémoire ne contiennent pas vraiment des valeurs décimales : elles contiennent en fait

Plus en détail

Introduction aux systèmes informatiques Structure d un ordinateur

Introduction aux systèmes informatiques Structure d un ordinateur Introduction aux systèmes informatiques Structure d un ordinateur Michel Salomon IUT de Belfort-Montbéliard Département d informatique Michel Salomon Intro. aux sys. info. 1 / 36 Qu est-ce qu un système

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

Comment concevoir un ordinateur? Quelques questions à considérer

Comment concevoir un ordinateur? Quelques questions à considérer Comment concevoir un ordinateur? Quelques questions à considérer Unité d entrée Unité de traitement Unité de sortie Comment coder les données Entiers, réels, caractères Comment restituer les résultats

Plus en détail

Cours de compilation

Cours de compilation Cours de compilation 1 Introduction Un compilateur est un logiciel de traduction d un langage source vers un langage cible. D ordinaire le langage source est un langage de programmation évolué, comme C++

Plus en détail

Déprotection semi-automatique de binaire

Déprotection semi-automatique de binaire Déprotection semi-automatique de binaire Yoann Guillot & 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

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

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

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

Gestion mémoire et Représentation intermédiaire

Gestion mémoire et Représentation intermédiaire Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,

Plus en détail

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1 INF6500 : Structures des ordinateurs Sylvain Martel - INF6500 1 Cours 1 : Processeur et unité centrale de traitement Sylvain Martel - INF6500 2 Instructions Pipeline Type d instructions RISC CISC (Hybride)

Plus en détail

Vulnérabilité Microsoft Windows GDI (MS07-017) De l analyse à l exploitation

Vulnérabilité Microsoft Windows GDI (MS07-017) De l analyse à l exploitation Vulnérabilité Microsoft Windows GDI (MS07-017) De l analyse à l exploitation 1 Introduction Un process devant utiliser des objets ou des fonctions liés à l'affichage a à sa disposition une bibliothèque

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

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

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

Analyse du fonctionnement d'un programme suspect

Analyse du fonctionnement d'un programme suspect Analyse du fonctionnement d'un programme suspect Bartosz Wójcik Il faut bien réfléchir avant de lancer un fichier téléchargé sur Internet. Bien que tous ne soient pas dangereux, il est facile de tomber

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

Algorithmique et Programmation I

Algorithmique et Programmation I Algorithmique et Programmation I Séance 1 Notions Générales Année universitaire 2006/2007 Semestre 1 1 Bienvenue Séances: o Cours: Notions théoriques o Travaux Dirigés (TD): Exercices o Travaux Pratiques

Plus en détail

Génération de code : langages objets Gestion mémoire 2 novembre 2011

Génération de code : langages objets Gestion mémoire 2 novembre 2011 Génération de code : langages objets Gestion mémoire 2 novembre 2011 1 Compilation d un langage objet Représentation des classes et des objets Héritage multiple Appartenance à une classe 2 Environnement

Plus en détail

Paradigme de programmation Impératif

Paradigme de programmation Impératif Paradigme de programmation Impératif La programmation impérative est caractérisée par, la programmation avec un état et des commandes qui modifient l état : Programmation impérative Procédurale = Programmation

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Systèmes Informatiques TD 3: langage C opérations élémentaires

Systèmes Informatiques TD 3: langage C opérations élémentaires Systèmes Informatiques TD 3: langage C opérations élémentaires P. Bakowski bako@ieee.org Opérateurs logiques/arithmétiques Le langage C offre une liste importante d opérateurs logiques et arithmétiques.

Plus en détail

Architecture des Ordinateurs. Partie II:

Architecture des Ordinateurs. Partie II: Architecture des Ordinateurs Partie II: Le port Floppy permet le raccordement du lecteur de disquette àla carte mère. Remarque: Le lecteur de disquette a disparu il y a plus de 6 ans, son port suivra.

Plus en détail

Chap. 2 - Structure d un ordinateur

Chap. 2 - Structure d un ordinateur Architecture des ordinateurs Michèle Courant S2-27 octobre 2004 Chap. 2 - Structure d un ordinateur 2.1 Processeur ou unité centrale (CPU) 2.1.1 Organisation du CPU 2.1.2 Exécution d une instruction 2.1.3

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