Programmation et Architecture COBOL
Programmation et Architecture COBOL
Architecture logicielle
Architecture et Programmation Applications
[Archi/Lycée]
http://fr.wikipedia.org/wiki/Langage_assembleur
Système d’Exploitation (OS)
Architecture matérielle
Nicolas Bredèche
Processeur(s) Mémoire Périphériques
Maître de Conférences
Université Paris-Sud Ressources bibliographiques utilisées pour ce cours :
Architecture de Processeur
3
Architecture logicielle
Applications
Architecture de Processeur
Système d’Exploitation (OS) Micro-architecture
Firmware Drivers Compilateur Logique numérique
Architecture matérielle
Cours 2 • Architecture externe de processeur «Instruction Set Architecture (ISA)»
• Spécification fonctionnelle pour le programmeur
Processeur(s) Mémoire Périphériques
• Eléments:
‣ Jeu d’instructions
Portes logiques, circuits ‣ Registres visibles
Cours 1 ‣ Organisation de la mémoire
Electronique et câblage
‣ Organisation des E/S
5 6
Objectif du module
• Acquérir un...
• Savoir
‣ Architecture du point de vue de la programmation
‣ Langage machine
‣ Langage assembleur
• Savoir faire
‣ Ecrire un programme en assembleur
Plan du Cours #2
source: wikipedia
11 12
ENIAC (1946)
Les premiers ordinateur à tubes
source: wikipedia
15 16
source: wikipedia
19 20
Synthèse
Architecture de Processeur
• Informatique = Information + Automatique
• Ordinateur
‣ Machine de traitement de l’information
‣ Récupérer, stocker et traiter de l’information
- texte, son, image, instructions
- codage sous forme binaire
source: wikipedia
23 24
• Types d’instructions
• Une instruction, c’est...
• calculs arithmétiques et logiques
‣ un «opcode» : son code opération
• écriture et lecture de données en mémoire ‣ un ou des opérande(s) : ses paramètre(s)
• transfert de contrôle (tests et branchements)
• Types d’architecture • Une instruction à un coût
27 28
Programme Illustration
• Un programme = des instructions élémentaires compréhensible pour
le programmeur
• actions très simples, exécutées par le processeur langage de haut niveau 3+1
‣ opérations simples, écrire/lire la mémoire, sauts conditionnels
• Assembleur (ASM)
langage machine 00000001 00000011 00000001
• un langage de bas niveau, mais lisible
compréhensible par
Registres
• Les registres
‣ petites mémoires internes très rapides (notion de mot, dont la taille dépend du processeur)
exemple avec le
‣ le nombre de registres dépend de l’architecture
jeu d’instructions x86 ‣ le registre «accumulateur» stocke le résultat des opérations (ici: AX)
source: http://fr.wikipedia.org http://fr.wikibooks.org/wiki/Programmation_Assembleur_x86/Registres
31 32
36
Langage Machine
Assembleur
Assembleur
39 40
43 44
exemple
et aussi ROL, ROR, MUL, DIV...
Polycopié d’Emmanuel Viennet (Univ. Paris 13) Polycopié d’Emmanuel Viennet (Univ. Paris 13)
45 46
47 48
Les interruptions
Deux exemples
Retour au DOS
51 52
Polycopié d’Emmanuel Viennet (Univ. Paris 13) Polycopié d’Emmanuel Viennet (Univ. Paris 13)
53 54
Polycopié d’Emmanuel Viennet (Univ. Paris 13) Polycopié d’Emmanuel Viennet (Univ. Paris 13)
55 56
Polycopié d’Emmanuel Viennet (Univ. Paris 13) Polycopié d’Emmanuel Viennet (Univ. Paris 13)
57 58
Polycopié d’Emmanuel Viennet (Univ. Paris 13) Polycopié d’Emmanuel Viennet (Univ. Paris 13)
59 60
Polycopié d’Emmanuel Viennet (Univ. Paris 13) Polycopié d’Emmanuel Viennet (Univ. Paris 13)
61 62
Programme convertissant les majuscules en minuscules Programme convertissant les majuscules en minuscules
Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13) Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13)
63 64
Programme convertissant les majuscules en minuscules Programme convertissant les majuscules en minuscules
Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13) Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13)
65 66
Programme convertissant les majuscules en minuscules Programme convertissant les majuscules en minuscules
Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13) Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13)
67 68
Programme convertissant les majuscules en minuscules Programme convertissant les majuscules en minuscules
Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13) Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13)
69 70
Programme convertissant les majuscules en minuscules Programme convertissant les majuscules en minuscules
Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13) Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13)
71 72
Programme convertissant les majuscules en minuscules Programme convertissant les majuscules en minuscules
Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13) Astuce: forcer le 5ème bit à 0 permet de passer en minuscule (cf. table ASCII) Poly d’E.Viennet (Univ. Paris 13)
73
Synthèse
• Assembleur
• Assembleur et Langage Machine (bijectif)
• Un point de passage obligé
‣ compilation d’un langage de haut niveau au langage machine
• Et aussi...
• Optimisation... Vie Artificielle et Assembleur
‣ des opérations: réduire le nombre cycles
‣ des compilateurs: mieux traduire
• Machine virtuelle (ex.: Java)
‣ bytecode, portabilité, compilation à la volée
• Code embarqué, firmware
‣ mémoire, vitesse... mais moins facile à programmer
i/o buffer
stack
AX
Le programme ancêtre
BX (extrait de Artificial Life, 1994, C. Adami)
CX
DX
finite memory (loop) registers
contains self-replicator programs 1. le programme “ancètre”
début - reproduction - procédure de copie - fin
un pointeur par programme
TIERRA 2. mutation possible lors de la duplication
Thomas Ray, 1988 3. The Reaper: supprime le plus vieux (ie. lent) si besoin de place (ressources CPU et mémoire limitée)
source: adami98
1.variantes de l’ancêtre 1.variantes de l’ancêtre
(en rouge) (en rouge)
cf. http://life.ou.edu/ (images: Marc Cygnus) cf. http://life.ou.edu/ (images: Marc Cygnus)
cf. http://life.ou.edu/ (images: Marc Cygnus) cf. http://life.ou.edu/ (images: Marc Cygnus)
Propriétés émergentes
Fin du cours #2
TIERRA : les premiers parasites
• Dynamiques de l’évolution
• Course aux armements
• Equilibres ponctuées
• Phénomènes observés
• Compression, hôtes-parasites, symbioses
source: adami98