Architecture des ordinateurs. Langage d assemblage. Processeur et Programmation D un point de vue de la programmation, le processeur offre



Documents pareils
Rappels d architecture

Compilation (INF 564)

CM2 L architecture MIPS32

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

Jeu d instructions NIOS II

Exécution des instructions machine

Conception de circuits numériques et architecture des ordinateurs

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Gestion mémoire et Représentation intermédiaire

Programmation assembleur : aperçu

Licence Sciences et Technologies Examen janvier 2010

Architecture des ordinateurs

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

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

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

Structure d un programme

Architecture des Ordinateurs. Partie II:

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Microprocesseur + Logiciel

Architecture : Circuits numériques et éléments d architecture

ASR1 TD7 : Un microprocesseur RISC 16 bits

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

TD Architecture des ordinateurs. Jean-Luc Dekeyser


Fonctionnement et performance des processeurs

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

La mémoire. Un ordinateur. L'octet. Le bit

Architecture des ordinateurs

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Plan du cours. Historique du langage Nouveautés de Java 7

Le langage C. Séance n 4

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Cours d initiation à la programmation en C++ Johann Cuenin

Conventions d écriture et outils de mise au point

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

UE Programmation Impérative Licence 2ème Année

Cours Informatique Master STEP

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Introduction à l algorithmique et à la programmation M1102 CM n 3

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Présentation du cours

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours d algorithmique pour la classe de 2nde

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

Algorithmique et Programmation, IMA

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)

TP 1. Prise en main du langage Python

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Claude Delannoy. 3 e édition C++

Représentation des Nombres

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

PIC : COURS ASSEMBLEUR

Aide - mémoire gnuplot 4.0

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

Représentation d un entier en base b

Programmation en Java IUT GEII (MC-II1) 1

Initiation à l algorithmique

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

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Solution du challenge SSTIC Emilien Girault ANSSI/COSSI/DTO/BAI 06/06/13

Bases de programmation. Cours 5. Structurer les données

Algorithme. Table des matières

Chapitre VI- La validation de la composition.

Codage d information. Codage d information : -Définition-

Logiciel de Base. I. Représentation des nombres

V- Manipulations de nombres en binaire

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

IV- Comment fonctionne un ordinateur?

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Introduction à MATLAB R

Architecture des ordinateurs Introduction à l informatique

Initiation au HPC - Généralités

Traduction des Langages : Le Compilateur Micro Java

Programmation C. Apprendre à développer des programmes simples dans le langage C

as Architecture des Systèmes d Information

Présentation du langage et premières fonctions

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Aide à l installation et à la migration en HelloDoc 5.60

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

MS SQL Express 2005 Sauvegarde des données

Une version javascript sera disponible directement dans le cours prochainement.

EES : Engineering Equation Solver Fiche récapitulative - Marie-Sophie Cabot

Logiciels DSPiy. DSPiyStudio logiciels et format des fichiers. incomplet

Menu Fédérateur. Procédure de réinstallation du logiciel EIC Menu Fédérateur d un ancien poste vers un nouveau poste

Cours 1 : La compilation

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Introduction au langage C

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

IFT2880 Organisation des ordinateurs et systèmes

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Concept de machine virtuelle

Transcription:

Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Langage d assemblage jtalbot@cmiuniv-mrsfr L3 Informatique - Université de Provence () Architecture des ordinateurs 211 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 212 / 256 Processeur et Programmation D un point de vue de la programmation, le processeur offre un certain jeu d instructions qu il sait exécuter un certain nombre de registres : utilisable/modifiable directement par le programme : registres de travail - pointeur de segment registres vu par le jeu d instructions modifiable indirectement par le programme : compteur ordinal - pointeur de pile - registre d instruction - registre d états registres manipulés implicitement par le jeu d instructions Langage machine (I) Le langage machine est le langage directement interprétable par le processeur Le langage est défini par un ensemble d instructions que le processeur exécute directement Chaque instruction correspond à un nombre (codé selon le cas sur un octet, un mot de 16 bits, : le format de l instruction) et se décompose en une partie codant l opération à exécuter appelé opcode ou code opération une partie pour les opérandes un certain nombre de manière d accéder à la mémoire : modes d adressage Code op Operandes L3 Informatique - Université de Provence () Architecture des ordinateurs 213 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 214 / 256

Langage machine (II) Un programme en langage machine est une suite de mots codant opérations et opérandes adresse programme 0x2024 00F1 0x2026 00AA 0x2028 00F1 0x202A 0B28 0x202C 00F1 0x202E 0C91 0x2030 0001 Chaque processeur possède son propre langage machine Jeu d instructions Le jeu d instructions est l ensemble des opérations élémentaires qu un processeur peut accomplir Le type de jeu d instructions d un processeur détermine son architecture Deux types d architectures RISC (Reduced Instruction Set Computer) PowerPC, MIPS, Sparc CISC (Complex Instruction Set Computer) Pentium L3 Informatique - Université de Provence () Architecture des ordinateurs 215 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 216 / 256 RISC/CISC (I) RISC : CISC : jeu d instructions de taille limitée instructions simples format des instructions petit et fixé modes d adressage réduits jeu d instructions de taille importante instructions pouvant être complexes format d instructions variables (de 1 à 5 mots) modes d adressages complexes RISC/CISC (II) CISC programmation de plus haut niveau programmation plus compacte (écriture plus rapide et plus élégante des applications) moins d occupation en mémoire et à l exécution complexifie le processeur taille des instructions élevée et variable : pas de structure fixe exécution des instructions : complexe et peu performante RISC instructions de format standard traitement plus efficace possibilité de pipeline plus efficace programmes plus volumineux compilation plus compliquée L3 Informatique - Université de Provence () Architecture des ordinateurs 217 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 218 / 256

Modes d adressage (I) Les instructions du langage machine manipulent des données Selon où ces données se trouvent, on parle de différents modes d adressage Code op Operandes Comment interpréter Operandes pour trouver les données de l instruction Code op? adressage implicite : l instruction opère sur une donnée qui se trouve à un emplacement précis et déterminé manipulation du registre d états (Pentium) adressage par registres : Operandes contient le(s) numéro(s) du (des) registre(s) où se trouvent les données manipulées par l instruction L3 Informatique - Université de Provence () Architecture des ordinateurs 219 / 256 Modes d adressage (II) adressage direct (ou direct restreint) : Operandes est l adresse (ou un fragment de l adresse) où se trouve la donnée en mémoire adressage relatif : Operandes contient un déplacement relatif par rapport à une adresse qui se trouve dans un registre précis (par exemple, le compteur ordinal PC) adressage indirect : Operandes contient le numéro d un registre dont le contenu est l adresse où se trouve la donnée en mémoire adressage (indirect) indexé : Operandes contient le numéro d un registre contenant une adresse a La donnée est en mémoire à l adresse a + i, où i est le contenu d un autre registre dans Operandes ou d un registre spécifique, appelé registre d index adressage immédiat : Operandes est la valeur utilisée par l instruction L3 Informatique - Université de Provence () Architecture des ordinateurs 220 / 256 D un programme de haut niveau à son exécution programme C c Compilateur module langage machine o Editeur de lien librairies langage machine o programme langage machine exe Chargeur mémoire L3 Informatique - Université de Provence () Architecture des ordinateurs 221 / 256 Cycle d exécution d une instruction 1 Récupérer (en mémoire) l instruction à exécuter : RI Mémoire[PC] L instruction à exécuter est présente en mémoire à l adresse contenue dans le compteur de programme PC et est placé dans le registre d instruction RI 2 Le compteur de programme est incrémenté : PC PC + 4 Par défaut, la prochaine instruction à exécuter est la suivante en mémoire (sauf si l instruction est un saut) 3 L instruction est décodée : On identifie les opérations qui vont devoir être réalisées pour exécuter l instruction 4 L instruction est exécutée : elle peut modifier les registres (opérations arithmétiques - lecture en mémoire), la mémoire (écriture), le registre PC (instructions de saut) L3 Informatique - Université de Provence () Architecture des ordinateurs 222 / 256

Assembleur Assembleur MIPS Le langage assembleur ou assembleur est le langage de programmation C est une version lisible par un humain du langage machine, obtenu en remplaçant les valeurs entières du langage machine par des mnémoniques (instruction du langage assembleur) Pour un même langage machine, il peut exister différents langages assembleur : variation sur la syntaxe Assembleur du processeur MIPS R2000 (processeur de type RISC) processeur MIPS : NEC, SGI, console (Sony PSP, PS2), AdslBox (FreeBox, NeufBox) Assembleur proche des autres assembleurs RISC assembleur : programme qui transforme du langage assembleur en langage machine L3 Informatique - Université de Provence () Architecture des ordinateurs 223 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 224 / 256 Processeur MIPS Mémoire Processeur 32 bits constitué de 32 registres de 32 bits une mémoire vive adressable de 2 32 octets un compteur de programmes PC (Program Counter) sur 32 bits un registre d instruction RI sur 32 bits le programme est stocké en mémoire l adresse de l instruction en cours d exécution est stockée dans le registre PC l instruction en cours d exécution est stockée dans le registre RI Mémoire de 2 32 octets = 2 30 mots de 32 bits Les mots mémoires sont adressés par des adresses qui sont des multiples de 4 bus d adresses de 32 bits bus de données de 8 bits NB : une instruction est codée sur 32 bits L3 Informatique - Université de Provence () Architecture des ordinateurs 225 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 226 / 256

Registres MIPS Les 32 registres du processeur MIPS sont : Arithmétique (I) Nom Numéro Description $zero 0 constante 0 $at 1 réservé à l assembleur $v0,$v1 2-3 résultats d évaluation $a0,,$a3 4-7 arguments de procédure $t0,,$t7 8-15 valeurs temporaires $s0,,$s7 16-23 sauvegardes $t8,$t9 24-25 temporaires $k0,$k1 26-27 réservé pour les interruptions $gp 28 pointeur global $sp 29 pointeur de pile $fp 30 pointeur de bloc $ra 31 adresse de retour Code C Assembleur A = B + C add $s0, $s1, $s2 Toutes les opérandes se trouvent dans des registres Le choix des registres est déterminé par le compilateur : ici, A $s0, B $s1, C $s2 Le résultat est placé dans $s0, la première opérande L3 Informatique - Université de Provence () Architecture des ordinateurs 227 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 228 / 256 Arithmétique (II) Pseudo-instruction move Comment traduire A=B? Code C A = B + C + D E = F - A Assembleur add $t0, $s1, $s2 add $s0, $t0, $s3 sub $s4, $s5, $s0 Ici, A $s0, B $s1, C $s2, D $s3, E $s4, F $s5 Toutes les opérations arithmétiques ont trois opérandes Nécessaire car une instruction doit se coder sur un nombre borné de bits Sachant que A $s0, B $s1 et que le registre $0 vaut toujours 0 on peut écrire : add $s0, $0, $s1 Il vaut mieux utiliser l instruction move : Code C Assembleur A = B move $s0, $s1 move est une pseudo-instruction : sa traduction en langage machine est celle de add $s0, $0, $s1 L3 Informatique - Université de Provence () Architecture des ordinateurs 229 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 230 / 256

Pseudo-instruction li li r, imm (load immediate) charge la valeur imm (sur 32 bits) dans le registre r est assemblé comme où lui r, immh ori r, imml immh,imml sont respectivement les 16 bits de poids fort et de poids faible de imm lui r, immh (load upper immediate) utilise les 16 bits de immh pour initialiser les 16 bits de poids fort du registre r, les 16 bits de poids faible étant mis à 0 ori r, imml : réalise un ou logique entre les 16 bits de imml (étendus à 32 bits en mettant ceux de poids fort à 0) et le contenu de r, le résultat étant placé dans r L3 Informatique - Université de Provence () Architecture des ordinateurs 231 / 256 Lecture-Ecriture dans la mémoire principale Les deux instructions lw (load word = lecture) et sw (store word = écriture) permettent les échanges entre la mémoire centrale et les registres syntaxe lw $2, 10($3) copie dans le registre $2 la valeur située dans la mémoire principale à l adresse m obtenue en ajoutant 10 au nombre stocké dans la registre $3 sw $2, 15($1) copie la valeur présente dans le registre $2 dans dans la mémoire principale à l adresse m obtenue en ajoutant 15 au nombre stocké dans la registre $1 L3 Informatique - Université de Provence () Architecture des ordinateurs 232 / 256 Branchements conditionnels (I) Branchements conditionnels (II) Syntaxe bne $t0, $t1, Label Si la valeur contenue dans le registre $t0 n est pas égale à celle stockée dans le registre $1 alors la prochaine instruction à exécuter est celle placée après l étiquette Label beq $t0, $t1, Label Si la valeur contenue dans le registre $t0 est égale à celle stockée dans le registre $1 alors la prochaine instruction à exécuter est celle placée après l étiquette Label Code C if (i==j) h =i+j ; Ici, i $s0, j $s1, h $s2 Assembleur bne $s0, $s1, Test add $s2, $s0, $s1 Test : L3 Informatique - Université de Provence () Architecture des ordinateurs 233 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 234 / 256

Branchements inconditionnels (I) Branchements inconditionnels (II) Syntaxe j Label La prochaine instruction à exécuter est celle placée après l étiquette Label : PC Label jr registre La prochaine instruction à exécuter est celle à l adresse se trouvant dans le registre registre : PC registre jal Label La prochaine instruction à exécuter est celle placée après l étiquette Label et l adresse de l instruction suivant l instruction courante (adresse de retour) est stockée dans $ra : $ra PC + 4, PC Label L3 Informatique - Université de Provence () Architecture des ordinateurs 235 / 256 Code C if (i!=j) h =i+j else h =i-j Ici, i $s4, j $s5, h $s6 Assembleur beq $s4, $s5, Lab1 add $s6, $s4, $s5 j Lab2 Lab1 :sub $s6, $s4, $s5 Lab2 : L3 Informatique - Université de Provence () Architecture des ordinateurs 236 / 256 Branchements inconditionnels (III) Appel de sous-programmes (I) L instruction jal SP permet d exécuter le sous-programme de label SP, la sauvegarde de l adresse de retour étant réalisée par cette instruction (dans le registre $31) Code C t2=0 while (t1!= 0){ t2 = t2 + t1 t1=t1-1 } Assembleur li $t2, 0 li $t3, 1 while :beq $t1, $0, done add $t2, $t1, $t2 sub $t1, $t1, $t3 j while done : Cependant, Le sous-programme peut affecter les valeurs contenues dans les registres au moment de l appel : pas de notion de variables locales et de portée/masquage de variables La sauvegarde de l adresse de retour dans un registre ne permet pas l enchaînement des appels à des sous-programmes, encore moins des sous-programmes récursifs L3 Informatique - Université de Provence () Architecture des ordinateurs 237 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 238 / 256

Appel de sous-programmes (II) Solution : Sauvegarder la valeur des registres (en mémoire) de l appelant et restaurer ces valeurs à l issue de l appel Sauvegarder l adresse de retour du programme appelant en mémoire On sauvegarde les (une partie des) registres en mémoire dans une pile Les registres $a0-$a3 sont ceux qui ne sont pas sauvegardés car ils contiennent lors de l appel la valeur des paramètres effectifs et au retour les valeurs retournés par le sous-programme Appel de sous-programmes : pile Une pile est une mémoire qui se manipule via deux opérations : push : empiler un élément (le contenu d un registre) au sommet de la pile pop : dépiler un élément (et le récupérer dans un registre) Ces deux instructions n existent pas en assembleur MIPS, mais elles peuvent être simulées en utilisant les instructions sw et lw en stockant l adresse du sommet de pile dans le registre $sp (le pointeur de pile) Traditionnellement, la pile croît vers les adresses les moins élevées L3 Informatique - Université de Provence () Architecture des ordinateurs 239 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 240 / 256 Appel de sous-programmes : politique de gestion de la pile Deux politiques de sauvegarde des registres : sauvegarde par l appelant : le programme appelant sauvegarde tous les registres sur la pile (avant l appel) sauvegarde par l appelé : le programme appelant suppose que tous les registres seront préservés par le sous-programme appelé Quelque soit la politique utilisée, un sous-programme doit rendre la pile intacte Appel de sous-programmes : exemple B debut de B sw $s0,0($sp) sauvegarde de $s0 sw $s1,-4($sp) sauvegarde de $s1 sw $ra,-8($sp) sauvegarde de l adresse de retour de B li $t0,12 add $sp,$sp,-12 ajustement du sommet de pile jal C appel du sous-programme C lw $ra,4($sp) restauration de l adresse de retour de B lw $s1,8($sp) restauration de $s1 lw $s0,12($sp) sauvegarde de $s0 li $t0,12 add $sp,$sp,12 ajustement du sommet de pile jr $ra fin de B L3 Informatique - Université de Provence () Architecture des ordinateurs 241 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 242 / 256

Appel de sous-programmes : exemple De l assembleur à l exécution adresses hautes adresses basses $sp $s0 (B) $sp $s1 (B) $ra (B) $sp programme assembleur s Compilateur / Assembleur module langage machine o Editeur de lien librairies langage machine o programme langage machine exe Chargeur mémoire L3 Informatique - Université de Provence () Architecture des ordinateurs 243 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 244 / 256 Format d instructions MIPS (I) Rappel : les instructions du langage machine MIPS sont codées sur 32 bits Codage des instructions assembleur / Assemblage 2 6 = 64 opérateurs possibles 6 bits 26 bits Code op Opérandes Trois formats d instructions : Instructions de type immédiat (Format I) Instructions de type saut (Format J) Instructions de type registre (Format R) Les 6 bits du Code op détermine le format de l instruction L3 Informatique - Université de Provence () Architecture des ordinateurs 245 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 246 / 256

Format d instructions I (I) Format d instructions I (II) Format I : 6 bits 5bits 5bits 16 bits Code op rs rt immédiat/adresse rs : registre source rt : registre cible / condition de branchement immédiat/adresse : opérande immédiate ou déplacement d adresse Format I : op rs rt 16 bits lui $1, 100 15 0 1 100 lw $1, 100($2) 35 2 1 100 sw $1, 100($2) 43 2 1 100 beq $1, $2,100 4 1 2 100 bne $1, $2,100 5 1 2 100 L3 Informatique - Université de Provence () Architecture des ordinateurs 247 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 248 / 256 Format d instructions J Codage des adresses Les adresses dans les instructions ne sont pas sur 32 bits! Format J Pour les instructions de type I : 16 bits 6 bits 26 bits Code op adresse op adresse 26 bits j 1000 2 1000 jal 1000 3 1000 = Adresse = PC + signé(16 bits) * 4 adressage relatif Pour les instructions de type J : 26 bits = On obtient l adresse d un mot mémoire (de 32 bits) en ajoutant devant les 26 bits les 4 bits de poids fort de PC (Il faut multiplier par 4 pour l adresse d un octet) adressage direct restreint L3 Informatique - Université de Provence () Architecture des ordinateurs 249 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 250 / 256

Format d instructions R (I) Format R : 6 bits 5bits 5bits 5bits 5bits 6bits Code op rs rt rd sa fu rs : registre source 1 rt : registre source 2 rd : registre destination sa : nombre de décalage à effectuer (shift amount) fu : identificateur de la fonction Format d instructions R (II) Format R : op rs rt rd sa fu add $1,$2,$3 0 2 3 1 0 32 sub $1,$2,$3 0 2 3 1 0 34 slt $1,$2,$3 0 2 3 1 0 42 jr $31 0 31 0 0 0 8 sub $1,$2,$3 : soustrait $3 de $2 et place le résultat dans $1 slt $1,$2,$3 (set less than) : met $1 à 1 si $2 est inférieur à $3 et à 0 sinon L3 Informatique - Université de Provence () Architecture des ordinateurs 251 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 252 / 256 Exemple (I) Exemple (II) Programme chargé à l adresse 80000 et Tstart vaut 1000 Code C while (tab[i] == k) i = i+j ; Assembleur MIPS Loop : mul $9, $19, $10 lw $8, Tstart($9) bne $8, $21, Exit add $19, $19, $20 j Loop Exit : Adresse Contenu 80000 28 19 10 9 0 2 80004 35 9 8 1000 80008 5 8 21 2 80012 0 19 20 19 0 32 80016 5 20000 80020 avec i $19, j $20, k $21 et $10 est initialisé à 4 car PC { }} { 80008 + 4 + 2 4 20000 4 = 80000 L3 Informatique - Université de Provence () Architecture des ordinateurs 253 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 254 / 256

Mode d adressages (I) Mode d adressages (II) L3 Informatique - Université de Provence () Architecture des ordinateurs 255 / 256 L3 Informatique - Université de Provence () Architecture des ordinateurs 256 / 256