Cours architectures des ordinateurs

Documents pareils
Rappels d architecture

Architecture des ordinateurs

Compilation (INF 564)

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programmation assembleur : aperçu

CM2 L architecture MIPS32

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Chapitre 10 Arithmétique réelle

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

Le codage informatique

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

Licence Sciences et Technologies Examen janvier 2010

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Le langage C. Séance n 4

Exécution des instructions machine

IV- Comment fonctionne un ordinateur?

Algorithme. Table des matières

Les chaînes de caractères

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

Conversion d un entier. Méthode par soustraction

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

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

1 Introduction au codage

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

Conventions d écriture et outils de mise au point

Rappels Entrées -Sorties

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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


Jeux de caracte res et encodage (par Michel Michaud 2014)

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

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

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

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

Logiciel de Base. I. Représentation des nombres

CAISSE ENREGISTREUSE ELECTRONIQUE SE-G1

I- Définitions des signaux.

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

TP1 : Initiation à Java et Eclipse

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

clavier espagnol Figure 1 - deux types de claviers AZERTY ou QWERTY

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

NOTICE TELESERVICES : Créer mon compte personnel

Jeu d instructions NIOS II

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Informatique Générale

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

Procédure d installation de mexi backup

Structure d un programme

Algorithmique et Programmation, IMA

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

Les opérations binaires

Représentation d un entier en base b

TP 1. Prise en main du langage Python

Flowcode - Mode d'emploi

Présentation du cours

Mise à jour : Octobre 2011

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Traduction des Langages : Le Compilateur Micro Java

Microprocesseur + Logiciel

Introduction à l algorithmique et à la programmation (Info 2)

TP, première séquence d exercices.

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

ALGORITHMIQUE ET PROGRAMMATION En C

La programmation des PIC en C. Les fonctions, les interruptions.

Chapitre 1 I:\ Soyez courageux!

GPA770 Microélectronique appliquée Exercices série A

Introduction à NetCDF

Architecture des ordinateurs Introduction à l informatique

as Architecture des Systèmes d Information

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

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

Une version javascript sera disponible directement dans le cours prochainement.

Architecture matérielle des systèmes informatiques

1. Structure d'un programme FORTRAN 95

Glossaire des nombres

Sélection du contrôleur

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

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Salle de technologie

Cours 14 Les fichiers

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

Notions fondamentales du langage C# Version 1.0

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

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

Utilisation d objets : String et ArrayList

QUESTION 1 {2 points}

Structure du format BMP, sa lecture, sa construction et son écriture

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Transcription:

Université KASDI MERBAH Ouargla Faculté des Nouvelles Technologies de l Information et de la Communication Département d Informatique et Technologie de l information Cours architectures des ordinateurs Cours 3: Langage d assemblage du MIPS R3000 (Partie 1) Enseignante: Chafika Benkherourou Année universitaire: 2015-2016 1 Introduction: Ecrire un programme directement en langage machine (0 et 1) est une tâche très difficile. Déchiffrer la signification d'instructions codées numériquement est fatigant pour les humains. Au lieu d utiliser le langage machine, on peut programmer avec le langage d assemblage. Le langage d assemblage est la représentation symbolique du code binaire des instructions. Il est proche du langage machine et lisible par les humains. 2 1

Programmation en langage d assemblage: 3 Programmation en langage d assemblage: Par exemple, l'instruction qui additionne le contenu des registres $t3 et $t4 et de stocker le résultat dans $t6 est codée par : 00000001011011000111000000100000 Et pour ne pas utiliser beaucoup de place, on peut les réduire en hexadécimal: 016c7020 Elle est représentée en langage assembleur comme suit : add $t6, $t3, $t4 Ici, la signification de l'instruction est beaucoup plus claire qu'en code machine. 4 2

Le langage MIPS: Le langage MIPS est le langage d assemblage exécuté par le processeur MIPS R3000. Il est proche du langage machine. Pour écrire un programme en langage Mips il faut suivre les règles suivantes: 5 Format d un programme MIPS: Un programme Mips est composé de deux parties: Data section : contient la déclaration de données. Text section: contient le code du programme. 6 3

Format d un programme MIPS: 7 Format d un programme MIPS: 8 4

Les commentaires: Les commentaires permettent de donner plus d explication sur le code Ils commencent par un # ou un ; et s achèvent à la fin de la ligne courante. Exemple : # Ceci est un commentaire ; Ceci est un commentaire 9 Déclaration de données: Les données (constantes et variables) doivent être déclarées dans «.Data» section. Les données doivent commencer par une lettre suivie des lettres, chiffres ou caractères spéciaux. Le format général de la déclaration d une donnée est: Exemple: 10 5

Déclaration de données: Les données en Mips sont de différents types: 11 Déclaration de données: Déclaration des entiers : Une valeur entière décimale est notée 253. Une valeur entière hexadécimale est notée 0xFA (préfixée par zéro suivi de x). En hexadécimal, les lettres de A à F peuvent être écrites en majuscule ou en minuscule. Les entiers sont déclarés par :.word,.half,.byte Exemple : 12 6

Déclaration de données: Les chaînes de caractères : Les chaînes de caractères sont déclarées par:.ascii,.asciiz Remarque:.asciiz termine la chaîne de caractères par NULL (0). Le but est de faire savoir au compilateur la fin de la chaîne. Exemple : la déclaration suivante défini une chaîne de caractères «message» de type asciiz et qui a comme contenu «hello world». «\n»: est un retour à la ligne 13 Déclaration de données: Déclaration des nombres réels : Les nombres réels sont déclarés par :.float,.double Exemple : Les déclarations suivantes sont utilisées pour définir la variable «pi» sur 32 bits par le type.float et l initialiser à 3,14159. Et la variable «tao» qui prend le type.double et sera enregistrée sur 64 bits. Elle est initialisée à 6,28318. 14 7

Déclaration de données: Déclaration des constantes: Une constante est une valeur fixe et ne change pas durant le déroulement du programme. Exemple : 15 Les instructions du langage MIPS R3000 16 8

Les instructions du langage Mips: Pour pouvoir faire des programmes exécutables sur la machine MIPS R3000, on dispose d'un certain nombre d'instructions qui forment le langage de la machine. Le jeu d'instructions est "orienté registres". Cela signifie que les instructions utilisent les registres pour le transfert et le rangement des données. Le processeur possède 57 instructions qui se répartissent en 4 classes : Instructions de lecture/écriture mémoire (Load and Store) Instructions arithmétiques/logiques entre registres (calcul) Instructions de branchement (Saut) Appels système (Syscall) 17 Les instructions du langage MIPS R3000 Les instructions de lecture/écriture (transfert entre mémoire et registres) 18 9

Les instructions de lecture/écriture Ces instructions transfèrent les données entre la mémoire et les registres. L opération de chargement (Load) permet de lire une donnée de la mémoire et la charger dans un registre. L opération de sauvegarde (Store) permet d écrire le contenu d un registre dans la mémoire. Les instructions de lecture/écriture 1. Les instruction de chargement: (Load) Lw - Load Word - Lw Rd, mem Charge le contenu de l adresse mémoire dans le registre Rd. Exemple: Lw $t0, var1 10

Les instructions de lecture/écriture 1. Les instruction de chargement: (Load) Li - Load immediate - Li Rd, imm Charge la valeur immédiate «imm» (constante) dans le registre Rd. Exemple: Li $t0, 27 Après l exécution $t0=27 Les instructions de lecture/écriture 1. Les instruction de chargement: (Load) La - Load address- La Rd, adr Charge l adresse de la donnée dans le registre Rd. 11

Les instructions de lecture/écriture 2. Les instruction de sauvegarde: (Store) Sw - Store Word - Sw Rs, mem Sauvegarde le contenu du registre source Rs dans la mémoire. Exemple: Les instructions de lecture/écriture 2. Les instruction de sauvegarde: (Store) Move Rd, Rs Copie le contenu du registre Rs dans le registre Rd. Exemple: Cette instruction donne au registre $t0 la valeur 42 ensuite copie le contenu de $t0 dans $t1. $t1 =42 Remarque: Il n y a pas d instruction move permettant de faire copier une donnée d une cellule mémoire vers une autre. 12

Les instructions du langage MIPS R3000 Les appels système (Syscall) 25 Les appels système Syscall Pour exécuter certaines fonctions système, principalement les entrées/sorties (lire ou écrire un nombre, ou un caractère), il faut utiliser des appels système. Pour exécuter un appel système, il faut chercher: L argument dans le registre $a0 ou $a1. Le numéro de l appel système est contenu dans le registre $v0 Syscall 13

Ecrire un entier: ( Print_int ) Les appels système Syscall Il faut mettre l entier à écrire dans le registre $a0 et exécuter l appel système numéro 1. Exemple: Lire un entier : (Read_int) Les appels système Syscall Consiste à exécuter l appel système numéro 5 et récupérer le résultat dans le registre $v0. Exemple: 14

Les appels système Syscall Lire une chaîne de caractères : (Read_string) Il faut: Adresse du début de la chaîne et la passer dans $a0 La longueur maximum et la mettre dans $a1 Exécuter l appel système numéro 8. Le résultat sera mis dans l espace pointé. Exemple: Les appels système Syscall Ecrire une chaîne de caractères: (Print_string) Une chaîne de caractères étant identifiée par une adresse de début de la chaîne. Il faut passer cette adresse dans $a0 et exécuter l appel système numéro 4 pour l afficher. Exemple: 15

Les appels système Syscall Quitter le programme: L appel système numéro 10 effectue la sortie du programme Les appels système 32 16