Chapitre 5 Adressage des opérandes, boucles, tableaux et pointeurs

Documents pareils
Chapitre 10 Arithmétique réelle

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

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

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

KL5121. Pour activer des sorties en fonction de la position d'un codeur

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)

Architecture des ordinateurs

Partie 7 : Gestion de la mémoire

Estimation des charges. «Le travail se dilate jusqu à remplir le temps disponible»

Structure d un programme

Conception de circuits numériques et architecture des ordinateurs

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

Microprocesseur + Logiciel

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

Cours d algorithmique pour la classe de 2nde

Rappels d architecture

Utilisez les outils de la fiche méthode «étude d une affiche de film». Vous pouvez faire part d autres éléments concernant l étude de cette œuvre.

Compilation (INF 564)

Programmation assembleur : aperçu

CM2 L architecture MIPS32

Conventions d écriture et outils de mise au point

Cours 1 : Qu est-ce que la programmation?

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

Cours d Informatique

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

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

ACTIVITÉ DE PROGRAMMATION

Définitions. Numéro à préciser. (Durée : )

Représentation d un entier en base b

Présentation du PL/SQL

Algorithmique et Programmation, IMA

Examen Médian - 1 heure 30

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

TB45-Classic. (PROPULSION HYBRIDE SERIE et DIESEL-ELECTRIQUE) TideBreaker

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Corrigé des TD 1 à 5

Programmation en langage C

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Programmation parallèle et distribuée

Programme détaillé BTS INFORMATIQUE DE GESTION DIPLÔME D ETAT. Objectifs de la formation. Les métiers. Durée de la formation

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

Licence Sciences et Technologies Examen janvier 2010

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Programmes des classes préparatoires aux Grandes Ecoles

Master Informatique Aix-Marseille Université

Algorithme. Table des matières

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

CODE INTERNATIONAL DE SIGNAUX

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

données en connaissance et en actions?

Projet de programmation (IK3) : TP n 1 Correction

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Propagation sur réseau statique et dynamique

Java Licence Professionnelle CISII,

Programmation parallèle et distribuée

Présentation du cours

Système de Gestion de Fichiers

Compression Compression par dictionnaires

Twincat PLC Temperature Controller. Régulation de Température à l aide de TwinCAT PLC.

Concours Architecture Éphémère

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN


W4 - Workflow La base des applications agiles

Vérification formelle de la plate-forme Java Card

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

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

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Algorithmique I. Algorithmique I p.1/??

Machines virtuelles Cours 1 : Introduction

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Jeu d instructions NIOS II

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

Exécution des instructions machine

Initiation à l algorithmique

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

S LICENCE INFORMATIQUE Non Alt Alt SS1 S2 S3 S4 S5 S6 Parcours : IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

Cours Bases de données

CONNAISSANCE DE SOI APPRENDRE A AVOIR CONFIANCE EN SOI

Initiation à la programmation en Python

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Représentation des Nombres

Gestion mémoire et Représentation intermédiaire

Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche. Camp des Cactus Stanstead 16:30 18:30 FOOTBALL CADET D2

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Préparer un état de l art

Informatique Générale

Cours 7 : Utilisation de modules sous python

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Limitations of the Playstation 3 for High Performance Cluster Computing

TABLE DES MATIÈRES POURQUOI LA DICTÉE? AVANT DE COMMENCER LA DICTÉE DÉMARRER VOTRE ENREGISTREMENT VENIR À BOUT DE VOTRE MANQUE DE CONFIANCE

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

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

COMMUNAUTE ECONOMIQUE ET MONETAIRE DE L AFRIQUE CENTRALE LA COMMISSION

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

Programme awk------introduction rapide

Transcription:

Chapitre 5 Adressage des opérandes, boucles, tableaux et pointeurs Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 1 / 23

Plan 1 Boucles et structures de contrôles 2 Adressage des opérandes 3 Adressages calculés et tableaux 4 Adressages indirects et pointeurs 5 Autres adressages Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 2 / 23

Plan 1 Boucles et structures de contrôles 2 Adressage des opérandes 3 Adressages calculés et tableaux 4 Adressages indirects et pointeurs 5 Autres adressages Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 3 / 23

Structures de contrôles Les langages procéduraux (et supérieurs) if(cond) instrs if(cond) instrs else instrs while(cond) instrs do instr while(cond) for(instr ; cond ; instr) instrs opérateurs booléens (and or not &&!) En assembleur BR BRcond Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 4 / 23

Goto vs. programmation structurée Structures de contrôles Pour les humains Pour écrire des algorithmes (et des recettes de cuisine) Gotos Pour les machines Pour écrire des livres dont vous êtres le héros Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 5 / 23

Programmer en assembleur Principe Simuler les structures de contrôles Comment faire Transformer les structures de contrôles en BR et BRcond Éviter d utiliser des BR et BRcond autrement Objectif Le code écrit doit être le plus linéaire possible Éviter le pire (code spaghetti) Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 6 / 23

Exercices Conditions Écrire un programme qui demande (poliment) un nombre ; indique s il est négatif, compris entre 0 et 100 ou plus grand que 100 ; puis dit au revoir. Boucles Écrire un programme qui compte de 1 jusqu à 100 E-S Écrire un programme qui lit un ligne et transforme les a en 4, les e en 3 et les i en 1. Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 7 / 23

Plan 1 Boucles et structures de contrôles 2 Adressage des opérandes 3 Adressages calculés et tableaux 4 Adressages indirects et pointeurs 5 Autres adressages Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 8 / 23

Rappel L assembleur Attribue des adresses relatives : Aux instructions Aux données À l exécution Les adresses réelles (absolues) utilisées peut être différentes des adresses relatives Le chargeur Doit charger le programme quelque part en mémoire Doit se débrouiller pour que le programme fonctionne Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 9 / 23

Modes d adressages Spécificateur d opérande opérande L opérande est la valeur utilisée par l instruction Le spécificateur d opérande est un paramètre de l instruction Mode d adressage Le mode d adressage est un paramètre de l instruction Il explique comment obtenir l opérande à partir du spécificateur Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 10 / 23

Adressage immédiat L opérande telle quelle L opérande est dans l instruction elle même Pas d accès mémoire supplémentaire opérande = spécificateur d opérande Exemples LDA 456,i ; A 456 CHARO *,i ; print( * ) Utilisation Constantes Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 11 / 23

Adressage direct L adresse effective de l opérande L opérande est en mémoire à l adresse effective désignée par le spécificateur Plusieurs octets peuvent être lus ou modifiés opérande = mem[spécificateur] Exemples LDA val,d ; A mem[val] CHARI char,d ; mem[char] <- getchar() ; Utilisations Variables globales Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 12 / 23

Plan 1 Boucles et structures de contrôles 2 Adressage des opérandes 3 Adressages calculés et tableaux 4 Adressages indirects et pointeurs 5 Autres adressages Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 13 / 23

Adressage indexé Une adresse relative de l opérande L adresse effective est calculée à l exécution Le spécificateur désigne une adresse de base Un registre d index indique le décalage opérande = mem[spécificateur + index] Exemples LDX j,d ; X mem[j] LDBYTEA vec,x ; mem[vec + X] (ou "vec[j]" en C) Attention Il faut contrôler la valeur du registre index Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 14 / 23

Adressage basé Une adresse relative de l opérande (bis) Un registre de base indique une adresse Le spécificateur désigne le décalage opérande = mem[base + spécificateur] Exemples Pas d adressage basé en Pep/8 Utilisation Relocation dynamique (chargeur) Astuce : adressage indexé adressage basé Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 15 / 23

Tableaux Tableaux en assembleur Une suite de valeurs en mémoire L adresse du tableau est l adresse de la première case Attention C est au programmeur de gérer la longueur du tableau la taille des éléments du tableau (octets ou mots) Exercice Écrire un programme qui calcule la somme des éléments d un tableau Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 16 / 23

Plan 1 Boucles et structures de contrôles 2 Adressage des opérandes 3 Adressages calculés et tableaux 4 Adressages indirects et pointeurs 5 Autres adressages Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 17 / 23

Adressage indirect L adresse de l adresse L adresse effective de l opérande est à l adresse effective désignée par le spécificateur Il y a donc deux accès mémoire. opérande = mem[mem[spécificateur d opérande]] Exemple LDA dataptr,n ; A mem[mem[dataptr]] Exercices Simuler l adressage indirect avec l adressage indexé Simuler l adressage indexé avec l adressage indirect Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 18 / 23

Pointeurs On manipule une adresse En assembleur, les pointeurs ne sont pas typés En Pep/8 Les adresses sont sur un mot Attention : pointeur en mémoire ou adressage indexé Exercice Écrire un programme qui épelle un mot en utilisant l alphabet phonétique de l OTAN Alpha Bravo Charlie Delta Echo Foxtrot Golf Hotel India Juliet Kilo Lima Mike November Oscar Papa Romeo Quebec Sierra Tango Uniform Victor Whiskey X-ray Yankee Zulu Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 19 / 23

Adressages indirects multiples L adresse de l adresse de l adresse de... On précise le nombre d indirection Un accès en mémoire par niveau d indirection Exemple Pas d indirection multiple en Pep/8 Exercice Simuler une indirection triple en Pep/8 en utilisant que l adressage immédiat et l adressage indexé opérande = mem[mem[mem[mem[spécificateur]]]] Même question en utilisant que des adressages directs et indirects Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 20 / 23

Plan 1 Boucles et structures de contrôles 2 Adressage des opérandes 3 Adressages calculés et tableaux 4 Adressages indirects et pointeurs 5 Autres adressages Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 21 / 23

Adressages sur la pile Les choses sont sur la pile Les adresses sont relatives au pointeur de pile (SP) 4 adressages de plus Direct sur la pile Indirect sur la pile Indexé sur la pile Indirect indexé sur la pile Plus tard Chapitre sur les sous programmes Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 22 / 23

Segmentation et Pagination Mécanismes évolués Architectures modernes Utilisés par les systèmes d exploitation Plus tard Cours INF3172 Principes de systèmes d exploitation Cours INF4170 Architecture des ordinateurs Jean Privat (UQAM) 05 Adressage et boucles INF2170 Automne 2013 23 / 23