ASSEMBLEUR. Lycée lissan eddine ibn_elkhatib laayoune Filière BTS DSI. Module N 3 BTS DSI
|
|
- Quentin Lacroix
- il y a 7 ans
- Total affichages :
Transcription
1 Lycée lissan eddine ibn_elkhatib laayoune Filière BTS DSI ASSEMBLEUR Module N 3 BTS DSI 1 Pr H.LAARAJ haslaaraj@gmail.com /2016
2 L OBJECTIF DE CE COURS L objectif de ce cours est de savoir: Le fonctionnement interne d un ordinateur. Comment le processeur exécute les instructions stockées dans la RAM. Quelles sont les opérations élémentaires que le microprocesseur pourra exécuter. Programmer avec des langages de bas niveau proche de langage binaire compris par le matériel. Comment le processeur exécute les conditions «if» et les boucles «for,while,» de langage de haut niveau (C,VB, ) 2
3 Partie I Introduction à l assembleur Instruction mov Instructions des opérations (add,div,and,or, ) Instructions de branchement (jmp,jnz, ) Instruction de comparaison (cmp) Appel des fonctions (invoke,call) 3
4 I-INTRODUCTION À L ASSEMBLEUR: BTS DSI 4
5 I.1 DÉFINITION DE L ASSEMBLEUR: est le langage de programmation de plus bas niveau. Cela signifie qu il est trop proche du matériel, qui oblige le programmeur à se soucier de concepts proches du fonctionnement de la machine, comme la mémoire, processeur. transforme un fichier source contenant des instructions, en un fichier exécutable que le processeur peut comprendre. Les programmes faits en ASM sont plus petits, plus rapides et beaucoup plus efficaces que ceux fait avec des compilateurs(c,java,vb, ) 5
6 Langage humain Langage de programmation : Haut niveau (Par exemple, le C) Langage Assembleur Compilation Assemblage Langage Machine : (code binaire) 6
7 7
8 I.2 LE CHOIX DE LANGAGE ASSEMBLEUR Vu que l assembleur est qualifié comme étant le langage de programmation le plus bas niveau, il dépend donc fortement du type de processeur. Ainsi il n'existe pas un langage assembleur, mais un langage assembleur par type de processeur. Dans notre cours on va utiliser assembleur MASM32 (Macro Assembleur de Microsoft) pour la famille de processeurs x86 32bits. MASM32 maintenu par Steve Hutchesson permet de programmer directement et relativement aisément des applications 32 bits fonctionnant sous Windows 8
9 II- LE PROCESSEUR(CPU) ET LA MÉMOIRE(RAM) BTS DSI 9
10 II.1 FONCTIONNEMENT D UN PROGRAMME Processeur RAM A155 EAX A BD46B5 code EBX 56D3507E A00 EIP A A D3507E data 10
11 II.2 LES REGISTRES Il existe plusieurs types de registres et chacun a son utilité. registres généraux (EAX, EBX, ECX, EDX) Ils servent à manipuler des données, à transférer des paramètres lors de l appel de fonction DOS et à stocker des résultats intermédiaires. registres d offset ou pointeur (EIP, ESI, EDI, ESP, EBP) Ils contiennent une valeur représentant un offset à combiner avec une adresse de segment registres de segment(cs, DS, SS, ES, FS, GS) Ils sont utilisés pour stocker l adresse de début d un segment. Il peut s agir de l adresse du début des instructions du programme, du début des données ou du début de la pile. Un registre de flag Il contient des bits qui ont chacun un rôle indicateur. 11
12 II.3 LES REGISTRES GÉNÉRAUX EAX -- accumulateur -- sert à effectuer des calculs arithmétiques ou à envoyer un paramètre à une interruption EBX -- registre auxiliaire de base -- sert à effectuer des calculs arithmétiques ou bien des calculs sur les adresses ECX -- registre auxiliaire (compteur) -- sert généralement comme compteur dans des boucles EDX -- registre auxiliaire de données -- sert à stocker des données destinées à des fonctions Ceci est leur utilisation théorique, mais dans la pratique ils peuvent être utilisés à d'autres usages. 12
13 II.3 REGISTRE EAX EAX(32 bits) AX(16 bits) AH(8bits) AL(8bits) 13
14 II.4 JEU D INSTRUCTIONS D UN CPU Décrit l ensemble des opérations élémentaires que le microprocesseur pourra exécuter. Transfert de données: charger ou sauver en mémoire (mov, ) Opérations arithmétiques (add,mul,div, ) Opérations logiques( and,or, ) Contrôle de séquence : - Branchement (jmp, jnz ) «c est le saute» - Test (cmp, ) «c est la comparaison» 14
15 III- LANGAGE MASM32 BTS DSI 15
16 III.1 DÉCLARATION DE VARIABLES Les variables se déclarent de la manière suivante: en 8bits : nom_variable DB valeur en 16bits : nom_variable DW valeur en 32bits : nom_variable DD valeur De manière générale: DB (Declare Byte) : 1 byte (8 bits) DW (Declare Word) : 1 word (16 bits) DD (Declare Double) : 2 words (32 bits) Les valeurs peuvent être écrites en: - décimal: 1, 2, 3, 123, 45 - hexadécimal : 1h,2h,3h,12h,0Fh,0AD4h (noter la présence du 0 quand le premier chiffre du nombre en hexadécimal commence par une lettre) - binaire : 1b,0b,1010b,111101b Exemple: var1 db 6 ; var1 est un byte initialisé à 6 en décimal var2 db 0FFh ; var2 est un byte initialisé à FF en hexadécimal var3 dw 67h ; var3 est un word initialisé à 67 (16 bits) var4 dd 67A3h ; var3 est un double word initialisé à 67A3 (32 bits) 16
17 III.2 STRUCTURE DE CODE MASM32 ; entête de code ***************************.386 ; processeur = Pentium.model flat, stdcall ; un seul segment de 4Go ; déclaration des variables*****************.data var1 dd ; code masm32***************************.code start: ; les instructions de base masm32 end start 17
18 III.3 INSTRUCTION MOV mov destination, source L'instruction la plus utilisée est l'instruction mov, qui copie la valeur d'un opérande source dans un opérande destination. La syntaxe est la suivante : mov reg, reg (registre à registre) mov reg, mem (mémoire à registre) mov mem, reg (registre à mémoire) mov reg, imed (registre à valeur) mov mem, imed (mémoire à valeur) NOTE: Pas de transfert de mémoire à mémoire 18
19 III.4 INSTRUCTIONS DE BASE ARITHMÉTIQUE Incrémentation INC EAX ; EAX <- EAX + 1 INC ma_variable Décrémentation DEC EAX DEC ma_variable Addition ADD EAX, 5 ; EAX <- EAX + 5 ADD BH, var ; BH <- BH + bar ADD var, ECX ; var <- var + ECX Soustraction SUB EAX, 5 ; EAX <- EAX 5 SUB BH,var ; BH <- BH var SUB var, CX ; var <- var CX Multiplication MUL EBX Division DIV EBX ; EAX <- EBX * EAX ; EAX <- EAX / EBX ;Il faut que EDX=0 19
20 EXEMPLE1: Programme masm32 qui calcule somme de 6A+B5 et stock le résultat dans EAX.386.model flat, stdcall.data ; variables globales initialisées x dd 6Ah y dd 0B5h.code start: mov EAX, x add EAX, y end start 20
21 III.5 INSTRUCTIONS DE BASE LOGIQUE AND bit à bit MOV AL, 0101b ; AL <- 5 MOV BL, 1001b ; BL <- 9 AND AL, BL ; AL <- AL AND BL; AL vaut 0001b, soit 1 OR bit à bit MOV AH, 0101b ; AH <- 5 MOV BH, 1001b ; BH <- 9 Or AH, BH ; AH <- AH OR BH; AH vaut 1101b, soit 13 21
22 III.6 APPEL D'UNE FONCTION invoke fonction a, b, c ; appelle fonction(a, b, c) ;Le résultat d'une fonction est toujours dans eax Remarque: pour appeller une fonction qui utilise des bibliothèques, il faut les importer par le mot clé include ou bien includelib include pour inclure les biblios.inc includelib pour inclure les biblios.lib 22
23 III.6.2- fonction prédéfini d affichage à l écran Syntaxe : invoke StdOut, ADDR msg Avec msg : le texte à afficher à l écran Remarque: pour utiliser la fonction StdOut, il faut importer les bibliotheques : include \masm32\include\kernel32.inc include \masm32\include\masm32.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\masm32.lib 23
24 EXEMPLE2: Code masm32 qui afficher un message à l écran.386 ; processeur = Pentium.model flat, stdcall ; un seul segment, appel standard ; include \masm32\include\kernel32.inc include \masm32\include\masm32.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\masm32.lib ; data msg db "Bonjour : ",0.code start: invoke StdOut, ADDR msg ici: jmp ici end start 24
25 III.6.3 fonction de la conversion de hexadécimal to ascii Syntaxe : invoke dwtoa, eax, ADDR z La valeur hexadécimal de eax sera converti en ascii Exemple: eax = F -> z =15 25
26 EXEMPLE3 : Code masm32 qui calcule et affiche la somme de 2 nombres.data ; variables globales initialisées x dd 10 y dd 11.data? z dd? ; variable globale non initialisée.code start: mov eax, x add eax, y invoke dwtoa, eax, ADDR z invoke StdOut,ADDR z ici: jmp ici end start 26
27 III.7- LE BRANCHEMENT : III.7.1 Introduction En informatique, un branchement est une opération consistant à se déplacer au sein d'un code exécuté par un processeur, en «sautant» à une adresse identifiée au lieu de poursuivre l'exécution du code séquentiellement. il n'existe que deux types de branchements : les branchements inconditionnels, qui permettent d'aller à une adresse de manière systématique. les branchements conditionnels, qui sont dépendant d'une information particulière. Dans la grande majorité des cas, ces informations sont récupérées dans le registre flag du microprocesseur. 27
28 III.7.2 Instructions de branchement inconditionnel JMP étiquette_de_destination L'instruction JMP permet d'effectuer un saut inconditionnel, c'est-àdire que cette instruction va stocker dans le registre IP l'adresse de l'instruction que l'on veut exécuter. L'opérande de cette instruction (étiquette_de_destination) est donc l'adresse de l'instruction à laquelle on veut sauter. Une fois l'instruction de branchement exécutée le processeur lit le contenu du registre IP et saute donc directement à l'adresse de l'instruction que l'on vient de définir JMP FIN FIN: (ne pas oublier les : ) Rq: jmp change la valeur du compteur ordinal (IP : Instruction Pointer). 28
29 III.7.3 Le registre Flag Les bits de cet ensemble sont appelés "indicateurs". Les instructions arithmétiques, logiques et de comparaison modifient la valeur des indicateurs. Les instructions conditionnelles testent la valeur des indicateurs et agissent en fonction du résultat. Les bits les plus importants: -ZF : Zero Flag - Indicateur zéro Si le résultat d'une opération est nul (égal à 0) ZF passera à 1. -SF : Sign Flag - Indicateur de signe SF passe à 1 quand le résultat est négatif. -CF : Carry Flag - Indicateur de retenue CF=1 s'il y a une retenue de générée, sinon CF = 0, 29
30 EXEMPLE Sur un processeur de 8bits, donner le résultat des opérations suivantes et positionner les indicateurs 25h+5Ah=? ZF= SF= CF= B5h+4Ah=? ZF= SF= CF= FEh+02h=? ZF= SF= CF= 70h+E0h=? ZF= SF= CF= 30
31 III.7.4 Instructions de comparaison CMP destination, source Compare la source et la destination; soustrait la source à la destination et met 1 dans le «flag» (drapeau) zero (ZF) si le résultat est nul et 1 dans le «flag» sign (SF) si le résultat est négatif. CMP EAX, EBX ; met 'ZF' a 1 si EAX=EBX ; met 'SF' a 1 si EAX < EBX 31
32 III.7.5 Instructions de branchement conditionnel Suit une instruction de comparaison (CMP) et réalise le saut en fonction des drapeaux, c'est-à-dire du résultat de la comparaison. Sinon passe à l'instruction suivante. JZ DEBUS ; saute à DEBUS si le flag ZF est à 1 JNZ PLACE ; saute à place si le flag ZF est à 0 JS RET ; saute à RET si le flag SF est à 1 JNS START ; saute à START si le flag SF est à 0 En jouant sur l'ordre des registres on peut réaliser toutes les comparaisons (>, <, >=, <=, =,! =). 32
33 III.7.6 La condition : if MOV AL, op1 MOV BL, op2 ; ou autres registres CMP AL, BL ou BL, AL J?? vrai ; instructions du cas_faux JMP fin vrai: ; instruction du cas_vrai fin: où J?? est un des branchements possibles (JZ, JNZ, JS ou JNS) en fonction de la condition : condition traduction explication op1 = op2 CMP AL, BL puis JZ... op1-op2 = 0 op1!= op2 CMP AL, BL puis JNZ... op1-op2!= 0 op1 < op2 CMP AL, BL puis JS... op1-op2 < 0 op1 > op2 CMP BL, AL puis JS... op2-op1 < 0 op1 >= op2 CMP AL, BL puis JNS... op1-op2 >= 0 op1 <= op2 CMP BL, AL puis JNS... op2-op1 >= 0 33
34 EXEMPLE4: Code masm32 qui vérifier si un nombre est null.data x dd 60 msg1 db "nombre est null ",0 msg2 db "nombre est non null ",0.code start: mov eax,x cmp eax,0 jz alors invoke StdOut, ADDR msg2 jmp fin: alors: invoke StdOut, ADDR msg1 fin: ici: jmp ici end start 34
35 III.7.7 Les boucles (avec compteur ) pour i de 1 à limite faire bloc_à_répéter Fin pour La boucle pour se traduit comme suit : MOV registre1, 1 ; compteur i MOV registre2, N pour: CMP registre1, registre2 JNS fin ; registre 1 > registre2 ;bloc_à_répéter INC registre1 ; incrémentation de i JMP pour fin: 35
36 EXEMPLE5: Code masm32 qui affiche BTS 6 fois.data msg db "BTS ",0.code start: mov ebx, 0 rpt: cmp ebx,6 jns fin ; deplacer vers fin si ebx > = 6 invoke StdOut, ADDR msg inc ebx jmp rpt fin: ici: jmp ici end start 36
37 III.8 INSTRUCTION LEA lea calcule l'adresse effective de l'opérande source et place le résultat dans l'opérande destination. lea reg, mem C'est la façon de mettre dans un registre l'adresse d'une variable. Exemple: l'instruction : lea eax, var1 place dans eax l'adresse mémoire de la variable var1. Remarque : Ceci n a généralement d intérêt que si var1 est une variable de type tableau. 37
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étailStructure 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étailAssembleur 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étailArchitecture 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étail4. 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étailArchitecture 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étailMICROINFORMATIQUE 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étailDU 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étailAtelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques
Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques CTIA04 Page 1 1. Les types de données sous S7 300 Il existe plusieurs types de données utilisées pour la programmation
Plus en détailLogiciel 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étailINITIATION 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étailAssembleur. 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étailConception 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étailDé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étailOrdinateurs, 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étailCours 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étailLicence 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étailArchitecture des ordinateurs TD1 - Portes logiques et premiers circuits
Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice
Plus en détail1/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étailSSTIC 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étailDE 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étailIN 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étailArchitecture 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étailRappels 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étailDé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étailCours 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É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étailChapitre 10 Arithmétique réelle
Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013
Plus en détailCM2 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étailQualité du logiciel: Méthodes de test
Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution
Plus en détailLe 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étailInitiation à 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étailDé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étailLa 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étailInfo0101 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étailLe 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étailASR1 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étailCompilation (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étailMachines 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étailBases 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étailIV- 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étailArchitecture des ordinateurs Introduction à l informatique
Architecture des ordinateurs Introduction à l informatique 17 septembre 2004 1 2 3 4 5 6 Les interrupteurs... 0V 5V Ce sont des composants électroniques qui laissent pser un courant principal lorsque la
Plus en détailExé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étailCQP 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étailLes 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étailTD 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étailCours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
Plus en détailStructure 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étailClaude Delannoy. 3 e édition C++
Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détailUE 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étailIntroduction...6. Assembleur, philosophieet atouts...8. Avantages et inconvénients de l assembleur...9. Que programmer en Assembleur?.
Table des matières Introduction.....6 Assembleur, philosophieet atouts...8 Avantages et inconvénients de l assembleur...9 Que programmer en Assembleur?.10 Chapitre 1 : Notions de base....10 Les systèmes
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailProcédure de sauvegarde pour AB Magique
Procédure de sauvegarde pour AB Magique Importance de la copie de sauvegarde : Il est très important de saisir l utilité d une copie de sauvegarde de votre logiciel AB Magique. Si un problème informatique
Plus en détailAlgorithmique 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étailPARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH
PARAGON Disk Wiper Guide de l utilisateur Paragon Technology GmbH, System Programmierung Copyright Paragon Technology GmbH Publié par : Paragon Technology GmbH System Programming Pearl-Str. 1 D-79426 Buggingen
Plus en détailCours 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étailProgrammation Classique en langage C
DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailProgrammation 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étailRé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étailRé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étailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailInformatique Générale
Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html
Plus en détailEPREUVE 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étailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détailNotions fondamentales du langage C# Version 1.0
Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage
Plus en détailJeu 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étailAVERTISSEMENT. D'autre part, toute contrefaçon, plagiat, reproduction encourt une poursuite pénale. LIENS
AVERTISSEMENT Ce document est le fruit d'un long travail approuvé par le jury de soutenance et mis à disposition de l'ensemble de la communauté universitaire élargie. Il est soumis à la propriété intellectuelle
Plus en détailIntroduction à 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étailPrésentation du cours
Thibault HILAIRE thibault.hilaire@lip6.fr François PECHEUX francois.pecheux@lip6.fr Informatique générale 1 (Python) Introduction Présentation du cours AGRAL-MTX-GM 2014-2015 20h de cours, 40h de TP/projets
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailGestion 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étailCours 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étailLangage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289
Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailPlaying 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étailReprésentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
Plus en détailGPA770 Microélectronique appliquée Exercices série A
GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément
Plus en détailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en détailLogiciel de Base. I. Représentation des nombres
Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats
Plus en détailCONFIGURATION DE L AUTOMATE SIEMENS
CONFIGURATION DE L AUTOMATE SIEMENS Créer un projet Dans le bureau de Windows, double-cliquer sur l icône «SIMATIC Manager» : Cliquer ensuite sur l icône «nouveau» : Choisir un nom de projet et valider
Plus en détailChap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
Plus en détailArchitecture 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étailALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
Plus en détailLes 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étailInformatique 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étail1 Description générale de VISFIELD
Guide d utilisation du logiciel VISFIELD Yann FRAIGNEAU LIMSI-CNRS, Bâtiment 508, BP 133 F-91403 Orsay cedex, France 11 décembre 2012 1 Description générale de VISFIELD VISFIELD est un programme écrit
Plus en détailProjet Active Object
Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques
Plus en détailCours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailAlgorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
Plus en détail1 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étailNETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1
NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR Logiciel TIJARA Manuel d'utilisateur "TIJARA" 1 SOMMAIRE Introduction Première partie Chapitre 1 : Installation et démarrage Chapitre 2 : Architecture
Plus en détailChaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.
Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires. Il est important de savoir les identifier, de connaître
Plus en détailUtilisation de la Plateforme Office365 et d Oultlook Web App
Utilisation de la Plateforme Office365 et d Oultlook Web App 1. Sommaire 1. Sommaire... 1 2. Accéder à la messagerie Office 365 en passant par Internet... 2 3. La boîte de réception... 4 3.1. Présentation
Plus en détailTechniques de stockage. Techniques de stockage, P. Rigaux p.1/43
Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation
Plus en détailLes opérations binaires
Les opérations binaires Compétences associées A2 : Analyser et interpréter une information numérique Objectifs Etre capable: - De coder les nombres entiers en code complément à 2. - De résoudre les opérations
Plus en détailGlobalScape 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étailProgrammation en langage C
Programmation en langage C Anne CANTEAUT INRIA - projet CODES B.P. 105 78153 Le Chesnay Cedex Anne.Canteaut@inria.fr http://www-rocq.inria.fr/codes/anne.canteaut/cours C 2 Table des matières 3 Table des
Plus en détail