Architecture des ordinateurs

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Architecture des ordinateurs"

Transcription

1 Architecture des ordinateurs (2 ème partie : assembleur 80x86) Vincent Vidal IUT Lens Architecture des ordinateurs p. 1

2 Organisation Durée : 8 semaines. Cours 1h, TP 3h Intervenants TP : Coste, Loukil, Porquet, Roussel, Vidal Évaluation : 1 DS 1 Partiel x contrôles de TP Environnement : sous linux, assembleur 32bits gnu assembleur (as) Architecture des ordinateurs p. 2

3 Qu est-ce que l assembleur? (1) Langage de (très) bas niveau permettant l écriture de programmes rapides et d interfaces vers des périphériques (drivers) Utilisé à l heure actuelle pour : Écriture de drivers Écriture des portions de programmes optimisées Écriture de programmes embarqués Démos graphiques pour les concours Bien sûr : on peut tout faire en assembleur... Architecture des ordinateurs p. 3

4 Qu est-ce que l assembleur? (2) Mémoire Lang. machine Assembleur 00002D4A 6C insb 00002D4B F63 imul sp,[bp+si+0x63],word 0x635f 00002D jnc 0x2dc D52 5F pop di 00002D53 696E imul bp,[bp+0x69],word 0x D58 5F pop di 00002D59 5F pop di 00002D5A bound si,[bp+di+0x73] 00002D5D 5F pop di Architecture des ordinateurs p. 4

5 Plan du cours (1) Algorithmique en C++, ou comment se passer des : Instructions de boucle (for, while,... ) Instructions de condition (if, switch... ) Paramètres des procédures Variables locales Basiques de l assembleur : Les variables Les registres La pile Les instructions Les appels système Architecture des ordinateurs p. 5

6 Plan du cours (2) Compilation en assembleur, ou comment traduire : Les boucles Les conditions Les procédures Optimisation, ou comment exploiter au mieux : Les registres La mémoire Les instructions Architecture des ordinateurs p. 6

7 Algorithmique pour l assembleur (1) Objectif : montrer comment on peut, en C++, se passer : des structures de contrôle habituelles (for, while, if, switch... ) des arguments des procedures, en utilisant une pile des variables locales, au moyen de la pile Moyen : définition d un langage simple basé sur C++, que nous appellerons C : définition des labels définition d instructions de saut et de comparaison définition d une pile et des procédures associées définition de procédures d affichage simples Architecture des ordinateurs p. 7

8 Algorithmique pour l assembleur (2) ATTENTION Ce que nous allons voir par la suite en C (en particulier les instructions de saut) ne doit en aucun cas être utilisé ailleurs qu en cours et TP d assembleur!!! Architecture des ordinateurs p. 8

9 Les boucles en C Les structures de contrôle for, while et do{...}while seront remplacées par l utilisation conjointe : des labels des instructions de saut des structures conditionnelles Architecture des ordinateurs p. 9

10 Les labels Identificateur suivi de :, se plaçant devant une ligne de code. Chaque label doit être unique. (...) cout << "Ceci est "; mon_label_1: cout << "un exemple "; mon_label_2: cout << "pas très long."; (...) Architecture des ordinateurs p. 10

11 Les sauts inconditionnels (1) jmp(<label>) Cette instruction (JuMP) effectue un saut vers le label passé en argument : la prochaine instruction à exécuter sera celle qui suit ce label. Le saut est dit inconditionnel car il est effectué dès que l instruction jmp est rencontrée. Nous verrons par la suite des instructions de saut conditionnel. Architecture des ordinateurs p. 11

12 Les sauts inconditionnels (2) Exemple : cout << "Un "; jmp(ici); cout << "petit "; ici: cout << "saut."; produit l affichage suivant : Un saut. Architecture des ordinateurs p. 12

13 Les boucles for en C (1) En C++, la somme des entiers de 1 à 10 : int somme=0; for(int i=1;i<=10;i++) {somme=somme+i;} cout << somme; Architecture des ordinateurs p. 13

14 Les boucles for en C (2) En C, la somme des entiers de 1 à 10 : int somme=0; int i=1; boucle: if (i>10) jmp(fin_boucle); somme=somme+i; i++; jmp(boucle); fin_boucle: cout << somme; Architecture des ordinateurs p. 14

15 Les boucles while en C (1) En C++, le calcul de la plus grande puissance de 17 strictement inférieure à 5423 : int n=1; while (n*17 < 5423) { n=n*17; } Architecture des ordinateurs p. 15

16 Les boucles while en C (2) En C, le calcul de la plus grande puissance de 17 strictement inférieure à 5423 : int n=1; boucle: if (n*17 >= 5423) jmp(fin_boucle); n=n*17; jmp(boucle); fin_boucle: Architecture des ordinateurs p. 16

17 Les boucles do{...}while en C (1) En C++, la saisie d un entier non nul : int entier; do { cin >> entier; } while (entier==0); Architecture des ordinateurs p. 17

18 Les boucles do{...}while en C (2) En C, la saisie d un entier non nul : int entier; boucle: cin >> entier; if (entier==0) jmp(boucle); Architecture des ordinateurs p. 18

19 Les structures conditionnelles en C Les structures conditionnelles if et switch seront remplacées par l utilisation conjointe : de l instruction de comparaison des labels des sauts conditionnels Architecture des ordinateurs p. 19

20 Instruction de comparaison (1) cmp(<operande1>,<operande2>) Cette instruction compare les deux opérandes et met à jour une variable appelée flag. Cette variable est : négative si la première opérande est strictement inférieure à la seconde nulle si les deux opérandes sont égales positive si la première opérande est strictement supérieure à la seconde Nous l utiliserons uniquement pour comparer des entiers ou des caractères. Architecture des ordinateurs p. 20

21 Instruction de comparaison (2) Exemple : cmp(12,56); cout << "Le flag est "; if (flag<0) cout << "négatif."; else if (flag>0) cout << "positif."; else cout << "nul."; produit l affichage suivant : Le flag est négatif. Architecture des ordinateurs p. 21

22 Instruction de comparaison (3) Exemple : cmp(56,12); cout << "Le flag est "; if (flag<0) cout << "négatif."; else if (flag>0) cout << "positif."; else cout << "nul."; produit l affichage suivant : Le flag est positif. Architecture des ordinateurs p. 22

23 Instruction de comparaison (4) Exemple : cmp(12,12); cout << "Le flag est "; if (flag<0) cout << "négatif."; else if (flag>0) cout << "positif."; else cout << "nul."; produit l affichage suivant : Le flag est nul. Architecture des ordinateurs p. 23

24 Les sauts conditionnels (1) je(<label>) Cette instruction (Jump if Equal) effectue un saut vers le label si flag = 0 jne(<label>) Cette instruction (Jump if Not Equal) effectue un saut vers le label si flag 0. Architecture des ordinateurs p. 24

25 Les sauts conditionnels (2) jl(<label>) Cette instruction (Jump if Less) effectue un saut vers le label si flag < 0 jle(<label>) Cette instruction (Jump if Less or Equal) effectue un saut vers le label si flag 0. Architecture des ordinateurs p. 25

26 Les sauts conditionnels (3) jg(<label>) Cette instruction (Jump if Greater) effectue un saut vers le label si flag > 0 jge(<label>) Cette instruction (Jump if Greater or Equal) effectue un saut vers le label si flag 0. Architecture des ordinateurs p. 26

27 Les sauts conditionnels (4) Exemple : int x=12; cout << "Un "; cmp(x,12) jle(ici); cout << "petit "; ici: cout << "saut."; produit l affichage suivant : Un saut. Architecture des ordinateurs p. 27

28 Les sauts conditionnels (5) Exemple : int x=12; cout << "Un "; cmp(56,x) jl(ici); cout << "petit "; ici: cout << "saut."; produit l affichage suivant : Un petit saut. Architecture des ordinateurs p. 28

29 Les sauts conditionnels (6) Exemple : int x= Z,y= A ; cout << "Un "; cmp(x,y) jg(ici); cout << "petit "; ici: cout << "saut."; produit l affichage suivant : Un saut. Architecture des ordinateurs p. 29

30 La conditionnelle if-then-else en C (1) En C++, calculer le plus grand de deux entiers : int a=4,b=10,max; if (a>b) {max=a;} else {max=b;} Architecture des ordinateurs p. 30

31 La conditionnelle if-then-else en C (2) En C, calculer le plus grand de deux entiers : int a=4,b=10,max; cmp(a,b); jle(cas_else); cas_then: max=a; jmp(fin_if); cas_else: max=b; fin_if: (...) Architecture des ordinateurs p. 31

32 La conditionnelle switch en C (1) En C++, associer les codes 2,5,3 aux lettres a,b,c, sinon 666 : char lettre= b ; int code; switch (lettre) { case a : code=2; break; case b : code=5; break; case c : code=3; break; default: code=666;} Architecture des ordinateurs p. 32

33 La conditionnelle switch en C (2) En C, associer les codes 2,5,3 aux lettres a,b,c, sinon 666 : char lettre= b ; int code; cmp(lettre, a ); je(cas_a); cmp(lettre, b ); je(cas_b); cmp(lettre, c ); je(cas_c); jmp(default); Architecture des ordinateurs p. 33

34 La conditionnelle switch en C (3) cas_a: code=2; jmp(fin_cas); cas_b: code=5; jmp(fin_cas); cas_c: code=3; jmp(fin_cas); default: code=666; fin_cas: (...) Architecture des ordinateurs p. 34

35 Synthèse boucles+conditionnelles (1) Reprenons l exemple de la somme des entiers de 1 à 10. En C++ : int somme=0; for(int i=1;i<=10;i++) {somme=somme+i;} cout << somme; Architecture des ordinateurs p. 35

36 Synthèse boucles+conditionnelles (2) Ce qui nous donne en C : int somme=0; int i=1; boucle: cmp(i,10); jg(fin_boucle); somme=somme+i; i++; jmp(boucle); fin_boucle: cout <<somme; Architecture des ordinateurs p. 36

37 Synthèse boucles+conditionnelles (3) Reprenons l exemple du calcul de la plus grande puissance de 17 strictement inférieure à En C++ : int n=1; while (n*17 < 5423) { n=n*17; } Architecture des ordinateurs p. 37

38 Synthèse boucles+conditionnelles (4) Ce qui nous donne en C : int n=1; boucle: cmp(n*17,5423); jge(fin_boucle); n=n*17; jmp(boucle); fin_boucle: (...) Architecture des ordinateurs p. 38

39 Connecteurs logiques (1) Les connecteurs && (et logique), (ou logique) et! (négation) seront remplacés par l utilisation conjointe : de l instruction de comparaison des labels des sauts conditionnels Il est impératif de bien connaître le sens des connecteurs : cond1 && cond2 : vrai si cond1 et cond2 sont vrais cond1 cond2 : vrai si cond1 est vrai, ou cond2 est vrai, ou les deux sont vrais!cond : vrai si cond est faux Architecture des ordinateurs p. 39

40 Connecteurs logiques (2) En C++, tester si un entier est plus grand que deux autres entiers : if (x <= z && y <= z) cout << "z est le + grand"; else cout << "z n est pas le + grand"; Architecture des ordinateurs p. 40

41 Connecteurs logiques (3) En C, tester si un entier est le plus grand de trois entiers : cmp(x,z); jg(cas_else); cmp(y,z); jg(cas_else); cout << "z est le + grand"; jmp(fin_if); cas_else: cout << "z n est pas le + grand"; fin_if: Architecture des ordinateurs p. 41

42 Connecteurs logiques (4) En C++, tester si un entier n est pas le plus petit de trois entiers : if (x <= z y <= z) cout << "z n est pas le + petit"; else cout << "z est le + petit"; Architecture des ordinateurs p. 42

43 Connecteurs logiques (5) En C++, tester si un entier n est pas le plus petit de trois entiers : cmp(x,z); jle(cas_then); cmp(y,z); jg(cas_else); cas_then: cout << "z n est pas le + petit"; jmp(fin_if); cas_else: cout << "z est le + petit"; fin_if: Architecture des ordinateurs p. 43

44 Connecteurs logiques (6) Une autre possibilité : cmp(x,z); jle(cas_then); cmp(y,z); jle(cas_then); cout << "z est le + petit"; jmp(fin_if); cas_then: cout << "z n est pas le + petit"; fin_if: Architecture des ordinateurs p. 44

45 Les sous-programmes en C Les appels aux sous-programmes ne se feront plus directement. On utilisera l instruction suivante : call(<nom-sous-programmme>) Cette instruction exécute le sous-programme passé en paramètre. Elle place une information sur la pile correspondant en assembleur à l adresse de la prochaine instruction à exécuter après l exécution du sous-programme (en C : cette valeur est 666). Architecture des ordinateurs p. 45

46 La pile (1) Pile : partie de la mémoire de l ordinateur, permettant de sauvegarder temporairement des informations, passer des paramètres aux sous-programmes, créer des variables locales, sauvegarder le contexte lors de l appel aux sous-programmes,... Architecture des ordinateurs p. 46

47 La pile (2) push(<valeur>) Cette instruction dépose la valeur passée en argument au sommet de la pile. Cette valeur peut être une valeur immédiate (un entier ou un caractère), ou bien une variable dont le contenu sera placé sur la pile (variable entier, caractère, pointeur). Le pointeur esp indiquant le sommet de la pile est automatiquement décrémenté de 1. Architecture des ordinateurs p. 47

48 La pile (3) pop(<variable>) Cette instruction retire la valeur placée au sommet de la pile et la stocke dans la variable passée en paramètre. Le pointeur esp indiquant le sommet de la pile est automatiquement incrémenté de 1. Architecture des ordinateurs p. 48

49 La pile (4) adresse contenu pointeur de pile 2C56 2C57 2C58 2C59 2C5A 2C5B int x=523 ; char c= A ; push(x) ; Architecture des ordinateurs p. 49

50 La pile (5) adresse contenu pointeur de pile 2C56 2C57 2C58 2C59 2C5A 2C5B 523 esp int x=523 ; char c= A ; push(x) ; push(c) ; Architecture des ordinateurs p. 49

51 La pile (6) adresse contenu pointeur de pile 2C56 2C57 2C58 2C59 2C5A A esp 2C5B 523 esp+1 int x=523 ; char c= A ; push(x) ; push(c) ; push(1200) ; Architecture des ordinateurs p. 49

52 La pile (7) adresse contenu pointeur de pile 2C56 2C57 2C58 2C esp 2C5A A esp+1 2C5B 523 esp+2 int x=523 ; char c= A ; push(x) ; push(c) ; push(1200) ; push( F ) ; Architecture des ordinateurs p. 49

53 La pile (8) adresse contenu pointeur de pile 2C56 2C57 2C58 F esp 2C esp+1 2C5A A esp+2 2C5B 523 esp+3 int x=523 ; char c= A ; push(x) ; push(c) ; push(1200) ; push( F ) ; pop(c) ; /*c == F */ Architecture des ordinateurs p. 49

54 La pile (9) adresse contenu pointeur de pile 2C56 2C57 2C58 F 2C esp 2C5A A esp+1 2C5B 523 esp+2 int x=523 ; char c= A ; push(x) ; push(c) ; push(1200) ; push( F ) ; pop(c) ; /*c == F */ pop(x) ; /*x = 1200*/ Architecture des ordinateurs p. 49

55 La pile (10) adresse contenu pointeur de pile 2C56 2C57 2C58 F 2C C5A A esp 2C5B 523 esp+1 int x=523 ; char c= A ; push(x) ; push(c) ; push(1200) ; push( F ) ; pop(c) ; /*c == F */ pop(x) ; /*x = 1200*/ Architecture des ordinateurs p. 49

56 Le passage des paramètres en C (1) Les passage des paramètres pour les sous-programmes va maintenant être effectué au moyen de la pile : Avant l appel : on empile les paramètres. Pendant l appel : on accède aux paramètres au moyen du pointeur de pile esp. Après l appel : on dépile les paramètres avec pop ou en incrémentant le pointeur de pile esp. Architecture des ordinateurs p. 50

57 Le passage des paramètres en C (2) Pendant un appel à call(sous-programme) : 666 esp Paramètre N esp+1... Paramètre 2 esp+n-1 Paramètre 1 esp+n Architecture des ordinateurs p. 51

58 Le passage des paramètres en C (3) void print_char(char c) { cout << c; } int main() { print_char( A ); } Architecture des ordinateurs p. 52

59 Le passage des paramètres en C (4) void print_char() { cout << (char) esp[1]; } int main() { push( A ); // on empile le param call(print_char); esp++; // on dépile le param } Architecture des ordinateurs p. 53

60 Le passage des paramètres en C (5) Pendant l appel à call(print_char) : 666 esp A esp+1 Architecture des ordinateurs p. 54

61 Le passage des paramètres en C (6) void soustraction(int a, int b) { cout << (a - b); } int main() { soustraction(123,44); } Architecture des ordinateurs p. 55

62 Le passage des paramètres en C (7) void soustraction() { cout << esp[2] - esp[1]; } int main() { push(123); // empile les params push(44); call(soustraction); esp+=2; // dépile les 2 params} Architecture des ordinateurs p. 56

63 Le passage des paramètres en C (8) Pendant l appel à call(soustraction) : 666 esp 44 esp esp+2 Architecture des ordinateurs p. 57

64 Les variables locales en C (1) Les variables locales seront maintenant définies elles aussi au moyen de la pile, en décrémentant le pointeur de sommet de pile esp d autant de cases mémoire que nécessaire. En plus de esp dénotant le sommet de la pile, on utilisera un second pointeur pour retenir l emplacement de esp au moment de l appel à la procédure. Ce second pointeur est appelé ebp. Architecture des ordinateurs p. 58

65 Les variables locales en C (2) Pendant l appel à un sous-programme, avec N paramètres et M variables locales (en ayant fait ebp=esp avant de créer les var. locales) : Var loc M ebp-m esp... Var loc 1 ebp-1 esp+m ebp esp+m Paramètre N ebp+1 esp+m Paramètre 1 ebp+n esp+m +N Architecture des ordinateurs p. 59

66 Les variables locales en C (3) void moyenne(int a, int b, int c) { int somme=(a + b + c); cout << somme / 3; } int main() { moyenne(3,12,56);} Architecture des ordinateurs p. 60

67 Les variables locales en C (4) void moyenne() { ebp=esp; esp--; // crée une var locale ebp[-1]=ebp[1]+ebp[2]+ebp[3]; cout << ebp[-1] / 3; esp++; //dépile la var locale} int main() { push(3); push(12); push(56); call(moyenne); esp+=3;} Architecture des ordinateurs p. 61

68 Les variables locales en C (5) Pendant l appel à call(moyenne) et création d une variable locale : 71 ebp-1 esp 666 ebp esp+1 56 ebp+1 esp+2 12 ebp+2 esp+3 3 ebp+3 esp+4 Architecture des ordinateurs p. 62

69 Les variables locales en C (6) void moyenne() { ebp=esp; esp--; // crée une var locale ebp[-1]=ebp[1]+ebp[2]+ebp[3]; cout << ebp[-1]/3; esp++; //dépile la var locale} int main() { push(3); push(12); push(56); call(moyenne); esp+=3;} Architecture des ordinateurs p. 63

70 Les variables locales en C (7) Quelques recommandations : Toujours effectuer ebp=esp en entrant dans un sous programme utilisant des arguments. Toujours (sauf cas spéciaux) dépiler les arguments en sortie d un sous-programme, en effectuant ebp+=n, où N est le nombre de paramètres. Architecture des ordinateurs p. 64

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

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

Programmation assembleur sur l architecture x86

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

Plus en détail

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

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

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

Cours d Analyse, Algorithmique Elements de programmation

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

Plus en détail

Langage C notes de cours

Langage C notes de cours Langage C notes de cours K. El Omari IUT GTE, UPPA 1 Présentation générale 1.1 Introduction La programmation par le langage C (ainsi que par d autres langages dit compilés) est basée sur : 1. la rédaction

Plus en détail

Instructions assembleur

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

Plus en détail

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

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

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

Principes de la programmation impérative

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

Plus en détail

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

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS 1. PRÉSENTATION. Le langage C a fait son apparition en 1972 pour le développement du système d exploitation Unix. Il est devenu un standard de la norme ANSI en 1983.

Plus en détail

Chap. II : Initiation au Langage Machine

Chap. II : Initiation au Langage Machine UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie du cours, nous allons étudier la programmation en langage machine d un microprocesseur. L étude complète

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

I2 - Partie 1 : Architecture matérielle Langage machine

I2 - Partie 1 : Architecture matérielle Langage machine I2 - Partie 1 : Architecture matérielle Langage machine N. Prcovic 04.91.28.89.51 nicolas.prcovic@univ-cezanne.fr I2 - Partie 1 :Architecture matériellelangage machine p.1/40 L ordinateur en tant que machine

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

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

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

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

Premiers exemples de traitements

Premiers exemples de traitements #include #include Premiers exemples de traitements void main() float b(0.0); float c(0.0); float delta(0.0); cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) cout

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

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle Cours 3 : Instructions qui changent l ordre d exécution séquentiel 1 Cours 3 Instructions qui changent l ordre d exécution séquentiel La conditionnelle: instructions si et selon Les boucles Comment raisonner

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

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

Cours C++ Lorsque je lance Dev C++, il apparaître l'écran ci-contre.

Cours C++ Lorsque je lance Dev C++, il apparaître l'écran ci-contre. Cours C++ Définition : Le langage C est un langage de programmation inventé par MM. Kernighan et Ritchie au début des années 70. Au début des années 90, Bjarne Stroustrup fait évoluer le langage vers le

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers Programmation en Python - Cours 2 : Premiers programmes Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Utilisation en mode interactif Ecriture d un programme

Plus en détail

Algorithmique. Mode d application

Algorithmique. Mode d application I - Généralités Algorithmique T ale S Définition: Un algorithme est une suite finie d instructions permettant la résolution systématique d un problème donné. Un algorithme peut-être utilisé pour décrire

Plus en détail

Assembleur x86. P. Ezéquel

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

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

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

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

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

Travaux Pratiques d Informatique 1

Travaux Pratiques d Informatique 1 Faculté Polytechnique de Mons Service d Informatique Travaux Pratiques d Informatique 1 par Mohammed BENJELLOUN Avec la participation de : J-F Bauwens, Assistant S. Mahmoudi, Assistant E. Malengreau, Assistante

Plus en détail

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

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

Plus en détail

Chap. V : Les interruptions

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

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes ISMIN 1A Programmation 1 : Examen de programmation C Réponses Partie 1. Questions ouvertes 1. Soit la déclaration suivante, char tab[] = "". Que contient le tableau tab? Réponse : tab[0] = \0. tab est

Plus en détail

TL N 1 Systèmes Informatiques RÉALISATION D'UN MICROPROCESSEUR

TL N 1 Systèmes Informatiques RÉALISATION D'UN MICROPROCESSEUR 1 2 ème Année RENNES 2003-2004 TL N 1 Systèmes Informatiques RÉALISATION D'UN MICROPROCESSEUR 1. OBJECTIF Il s agit de concevoir un processeur simple, de le simuler et de l implanter dans un composant

Plus en détail

Architecture matérielle et logicielle

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

Plus en détail

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

Programmation Répartie - Langage C

Programmation Répartie - Langage C frederic.guinand@univ-lehavre.fr IUT Le Havre Plan les bases quelques rappels de langage C les structures de contrôle conditionnelles les structures de contrôle itératives les tableaux les pointeurs les

Plus en détail

Algorithmique Partie 1

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

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

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

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

Plus en détail

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

Plus en détail

1. 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. 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étail

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

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

Plus en détail

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

Algorithmique - Programmation 1. Cours 10

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

Plus en détail

Algorithmie ISI301 TP 1 : Python et premiers algorithmes

Algorithmie ISI301 TP 1 : Python et premiers algorithmes Algorithmie ISI301 TP 1 : Python et premiers algorithmes 1 Python : apprentissage Pour avoir une vision plus large des différentes possibilités du langage Python, nous ne pouvons que vous conseiller d

Plus en détail

Département Informatique L3 Mention Informatique Jean-Michel Richer Architecture des Ordinateurs jean-michel.richer@univ-angers.

Département Informatique L3 Mention Informatique Jean-Michel Richer Architecture des Ordinateurs jean-michel.richer@univ-angers. Département Informatique L3 Mention Informatique Jean-Michel Richer Architecture des Ordinateurs jean-michel.richer@univ-angers.fr 2015/2016 Travaux Dirigés 1 Représentation de l information En informatique,

Plus en détail

Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts

Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts Olivier BOEBION Mars 2004 1 Les expressions conditionnelles et les structures de contrôle 1.1 La commande test La commande interne

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

1 de 1. Algorithmique. Récursivité. Florent Hivert. Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert

1 de 1. Algorithmique. Récursivité. Florent Hivert. Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 1 de 1 Algorithmique Récursivité Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 1 Récursivité et Récurrence Deux notions très proche : mathématiques : récurrence

Plus en détail

Jeu d instructions et modes d adressage MIPS

Jeu d instructions et modes d adressage MIPS Jeu d instructions et modes d adressage MIPS Vincent Risch, mai 2008, révision mai 2014 I.U.T., Aix-Marseille Université Jeu d instructions et modes d adressage MIPS p. 1 MIPS : Introduction Architecture

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

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

Bases d algorithmique

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

Plus en détail

Cours d algorithmique pour la classe de 2nde

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

Plus en détail

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

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

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

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

Plus en détail

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

SE202 : déroulement du cours et bases de compilation. Samuel Tardieu Année scolaire 2015/2016

SE202 : déroulement du cours et bases de compilation. Samuel Tardieu Année scolaire 2015/2016 SE202 : déroulement du cours et bases de compilation Samuel Tardieu Année scolaire 2015/2016 1/44 Samuel Tardieu Année scolaire 2015/2016 Organisation du cours 2/44 Samuel Tardieu Année scolaire 2015/2016

Plus en détail

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte:

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte: PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, Tableaux, opérateurs Entrées sorties de base Structures de contrôle Algorithmes de recherche Algorithmes de

Plus en détail

UE C avancé cours 1: introduction et révisions

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

3. Opérateurs et instructions. Opérateurs Expression et instruction Structures de contrôle structures alternatives structures répétitives

3. Opérateurs et instructions. Opérateurs Expression et instruction Structures de contrôle structures alternatives structures répétitives 1 3. Opérateurs et instructions Opérateurs Expression et instruction Structures de contrôle structures alternatives structures répétitives Opérateurs 2 Affectation: = identificateur = résultat d une expression

Plus en détail

Objectifs. Pointeurs et tableaux. Arithmétique des pointeurs et sizeof. sizeof. Exemple : liste chaînées. Cast. Débordement de tampons

Objectifs. Pointeurs et tableaux. Arithmétique des pointeurs et sizeof. sizeof. Exemple : liste chaînées. Cast. Débordement de tampons du cours d aujourd hui Programmation «orientée système» LANGAGE C POINTEURS (5/5) des pointeurs Complément (et mise en garde) sur Exemple pratique : listes Forçage de type (casting) Laboratoire d Intelligence

Plus en détail

Informatique. Programmation en Python.

Informatique. Programmation en Python. BCPST 1 B 13 septembre 2015 Informatique. Programmation en Python. Ce document est un support de cours, il vous permet d avoir sa structure et ses éléments les plus importants. Au cours des séances en

Plus en détail

Eléments du langage. Eléments du langage PHP. Variables. Variables

Eléments du langage. Eléments du langage PHP. Variables. Variables Eléments du langage Eléments du langage PHP Séparation des instructions Comme en C, C++, Perl, les instructions doivent être séparées par un point virgule. Les commentaires // Ceci est un commentaire sur

Plus en détail

Langage C. E. Boucharé

Langage C. E. Boucharé Langage C E. Boucharé Table des Matières Introduction.............................................................................. 1 Chapitre 1. Les types de données de C....................................................

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

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

Plus en détail

Expressions, types et variables en Python

Expressions, types et variables en Python Expressions, types et variables en Python 2015-08-26 1 Expressions Les valeurs désignent les données manipulées par un algorithme ou une fonction. Une valeur peut ainsi être : un nombre, un caractère,

Plus en détail

UEO11 Cours/TDn 2 Algorithmique : bases - 2007-2008. 3- Algorithmique...1 3.1 Définition : algorithmique...1. Critère algorithmique élémentaire

UEO11 Cours/TDn 2 Algorithmique : bases - 2007-2008. 3- Algorithmique...1 3.1 Définition : algorithmique...1. Critère algorithmique élémentaire UEO11 Cours/TDn 2 Algorithmique : bases - 2007-2008 Table des matières 3- Algorithmique...1 3.1 Définition : algorithmique...1 Critère algorithmique élémentaire...1 3.2 De l algorithme au programme...2

Plus en détail

3ETI, Entrainement Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Entrainement Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2012-2013 (entrainement) durée 1h20 Tous documents et calculatrices autorisés. Le sujet comporte 5 pages Le temps approximatif ainsi que le barème

Plus en détail

Epidémiologie, l urne de Pólya, partie II

Epidémiologie, l urne de Pólya, partie II Epidémiologie, l urne de Pólya, partie II Se mettre par groupe de deux. Traiter la fiche dans l ordre. Un compte de rendu de TP devra être rendu avec les réponses écrites aux questions, les recherches

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

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

Compilation. Introduction & architecture MIPS. Sandrine Blazy (d après le cours de François Pottier) 20 octobre 2008

Compilation. Introduction & architecture MIPS. Sandrine Blazy (d après le cours de François Pottier) 20 octobre 2008 Compilation Introduction & architecture MIPS Sandrine Blazy (d après le cours de François Pottier) - 2 e année 20 octobre 2008 S.Blazy (www.ensiie.fr/ blazy) Compilation 20 octobre 2008 1 / 49 1 Introduction

Plus en détail

Rendu de travaux I, Algo - langage C

Rendu de travaux I, Algo - langage C IFIP 33 avenue de la République 75011 PARIS Rendu de travaux I, Valérie Amiot RP 50 2001-2002 SOMMAIRE I. Pourquoi sous C? II. Présentation du jeu 1) But du jeu III. Analyse fonctionnelle IV. Fonctionnalités

Plus en détail

Cours Assembleur 8086

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

Plus en détail

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

Logiciel de Base : examen de première session

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

Plus en détail

Chapitre 5 : Instructions

Chapitre 5 : Instructions Chapitre 5 : Instructions Informatique de base 2013-2014 Sup Galilée 1 / 23 Qu est-ce qu une instruction? Une instruction est un ordre donné à l ordinateur de réaliser une suite d actions dont chacune

Plus en détail

Traduction des arbres programmatiques en C

Traduction des arbres programmatiques en C Traduction des arbres programmatiques en C Table des matières 1 Premier exemple : helloworld.c 1 2 Méthode de programmation 2 3 Déclaration de variables 2 4 Structures de contrôle 3 5 Opérateurs C 5 6

Plus en détail

Jeu d instruction et Pipeline NSY 104

Jeu d instruction et Pipeline NSY 104 Jeu d instruction et Pipeline NSY 104 Les jeux d instructions Définitions Partie de l architecture avec laquelle le programmeur ou le concepteur de compilateur est en contact. Ensemble des instructions

Plus en détail

Fascicule de Génie Electrique (Terminale S option SI)

Fascicule de Génie Electrique (Terminale S option SI) Le langage C Ressource Centre d intérêt CI10 : Traitement de Thématique I11 - Les systèmes numériques : Mise en œuvre d un microcontrôleur avec des composants logiciels réutilisables. 1 Les constantes

Plus en détail

Introduction au langage C - types et variables

Introduction au langage C - types et variables Chapitre 2 Introduction au langage C - types et variables 1 Le Langage C Le langage C est un langage de bas niveau dans le sens où il permet l accès à des données que manipulent les ordinateurs (bits,

Plus en détail

Chapitre 1 Introduction

Chapitre 1 Introduction Chapitre 1 Introduction Jean Privat Université du Québec à Montréal INF7330 Construction de logiciels Diplôme d études supérieures spécialisées en systèmes embarqués Automne 2012 Jean Privat (UQAM) 01

Plus en détail

INITIATION A LA PROGRAMMATION EN C

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

Plus en détail

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

Projet de Machines Virtuelles

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

Plus en détail

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