Cours architectures des ordinateurs

Documents pareils
Rappels d architecture

CM2 L architecture MIPS32

Jeu d instructions NIOS II

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

Compilation (INF 564)

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

Les opérations binaires

Licence Sciences et Technologies Examen janvier 2010

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

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. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Microprocesseur + Logiciel

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

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

V- Manipulations de nombres en binaire

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Conception de circuits numériques et architecture des ordinateurs

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

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

Exécution des instructions machine

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

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Architecture des ordinateurs

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

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

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

Informatique Générale

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

IFT2880 Organisation des ordinateurs et systèmes

Cours d algorithmique pour la classe de 2nde

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Introduction au langage C

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

STAGE IREM 0- Premiers pas en Python

Chapitre 10 Arithmétique réelle

Le langage VHDL. Eduardo Sanchez EPFL

MS SQL Express 2005 Sauvegarde des données

Théorie de la Programmation

Rappels Entrées -Sorties

Représentation d un entier en base b

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Programmation en langage C

Enseignement secondaire technique

Interest Rate for Customs Purposes Regulations. Règlement sur le taux d intérêt aux fins des douanes CONSOLIDATION CODIFICATION

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Initiation à l algorithmique

Représentation des Nombres

Initiation à la programmation en Python

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

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

Architecture des ordinateurs

Cours 1 : La compilation

Introduction à MATLAB R

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

TD Architecture des ordinateurs. Jean-Luc Dekeyser

SQL Historique

PARIS ROISSY CHARLES DE GAULLE

IFT1215 Introduction aux systèmes informatiques

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

IV- Comment fonctionne un ordinateur?

Olivier Mondet

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

Environnements informatiques

1 Position du problème

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

TABLEAU CROISE DYNAMIQUE

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

Sujets de Travaux Dirigés et de Travaux Pratiques Pascal Ballet, Philippe Le Parc et François Monin

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO

Gestion de stock pour un magasin

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Déploiement OOo en environnement Windows Terminal Server

Comment consolider des données

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

OCL - Object Constraint Language

Java et les bases de données

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

L Elasticité Concept et Applications Chapitre 4

OpenPaaS Le réseau social d'entreprise

Instructions Mozilla Thunderbird Page 1

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Architecture de l ordinateur

Calcul scientifique précis et efficace sur le processeur CELL

TP3 : Creation de tables 1 seance

Traitement d un AVI avec Iris

Programmer en JAVA. par Tama

Architecture matérielle des systèmes informatiques

GUIDE Excel (version débutante) Version 2013

Langage SQL : créer et interroger une base

EXCEL PERFECTIONNEMENT CALCULS AVANCES

Encryptions, compression et partitionnement des données

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

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

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

Guide d'installation rapide TFM-560X YO.13

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 2) Enseignante: Chafika Benkherourou Année universitaire: 2015-2016 1 Les instructions du langage MIPS R3000 Les opérations arithmétiques et logiques 2 1

et logiques permettent de faire les 4 opérations de calcul (addition, multiplication, soustraction, division) ainsi que les opérations logiques (Or, And, or, xor..) et les opérations de décalage 1. Add add $rd, $rs, $rt Les contenus des registres $rs et $rt sont ajoutés pour former un résultat qui est placé dans le registre $rd. Exemple: L opération qui permet de faire la somme de 7 et 5 est: li $t1, 7 # load 1 into $t1 li $t2, 5 # load 1 into $t2 add $t0, $t1, $t2 # $t0 = $t1 + $t2 Exemple 2: On peut aussi faire une addition avec les constante au lieu du registre $t2: li $t1, 7 # load 1 into $t1 addi $t0, $t1, 5 # $t0 = $t1 + 5 2

Exemple 3: Faire la somme de deux nombres demandés à l utilisateur: 2. Sub sub $rd, $rs, $rt Le contenu du registre $rt est soustrait du contenu du registre $rs pour former un résultat qui est placé dans le registre $rd. Exemple: L opération qui permet de soustraire 10 de 25 est: li $t1,25 # load 1 into $t1 li $t2, 10 # load 1 into $t2 sub $t0, $t1, $t2 # $t0 = $t1 - $t2 3

3. mul mul $rd, $rs, $rt Les contenus des registres $rs et $rt sont multipliés pour former un résultat qui est placé dans le registre $rd. Exemple: L opération qui permet de multiplier 8 et 4 est: li $t1,8 # load 8 into $t1 li $t2, 4 # load 4 into $t2 mul $t0, $t1, $t2 # $t0 = $t1 * $t2 4. mult mult $rd, $rs mult permet de multiplier les contenus des registres $rs et $rt. Le résultat est placé dans les registres spéciaux : hi et lo. Les 32 bits de poids fort du résultat sont placés dans le registre $hi, et les 32 bits de poids faible dans $lo. Exemple: L opération qui permet de multiplier 8 et 4 est: li $t1, 8 # load 8 into $t1 li $t2, 4 # load 4 into $t2 mult $t0, $t1 # ($hi,$lo) = $t0 * $t1 4

5. Div div $rs, $rt Le contenu du registre $rs est divisé par le contenu du registre $rt. Le résultat de la division est placé dans le registre $lo, et le reste dans le registre $hi. 6. mfhi - Move from $hi - mfhi $rd Le contenu du registre spécialisé $hi qui est mis à jour par l opération de multiplication ou de division est recopié dans le registre général $rd. 5

7. mflo - Move from $lo - mfhi $rd Le contenu du registre spécialisé $lo qui est mis à jour par l opération de multiplication ou de division est recopié dans le registre général $rd. 1. And - Et logique - and $rd, $rs, $rt Les instructions logiques Un et bit-à-bit est effectué entre les contenus des registres $rs et $rt. Le résultat est placé dans le registre $rd. Exemple: $t8 = 1111 1111 1111 1111 1111 1111 1100 0000 $t9 = 0000 0000 0000 0000 0000 0000 0011 1111 Supposant que les registres $t8 et $t9 sont utilisés comme masques pour effectuer des opérations spécifiques. 6

Exemple: Les instructions logiques Pour faire une copies du registre $t0 dans le registre $t1 en mettant les 6 premiers bits à zéro, on utilise l instruction suivante: $t0 = 1000 1000 1111 0111 0001 0000 0100 0100 and $t8 = 1111 1111 1111 1111 1111 1111 1100 0000 $t1 = 1000 1000 1111 0111 0001 0000 0100 0000 et logiques 2. Or - Ou logique - Or $rd, $rs, $rt Un ou bit-à-bit est effectué entre les contenus des registres $rs et $rt. Le résultat est placé dans le registre $rd. 7

Exemple: Les instructions logiques Pour faire une copies du registre $t0 dans le registre $t1 en mettant les 6 premiers bits à un, on utilise l instruction suivante: $t0 = 1000 1000 1111 0111 0001 0000 0100 0100 or $t9 = 0000 0000 0000 0000 0000 0000 0011 1111 $t1 = 1000 1000 1111 0111 0001 0000 0111 1111 et logiques 3. Xor - Ou exclusif - Xor $rd, $rs, $rt Un ou bit-à-bit est effectué entre les contenus des registres $rs et $rt. Le résultat est placé dans le registre $rd. 8

Exemple: Les instructions logiques Pour faire une copies du registre $t0 dans le registre $t1 en inversant les 6 premiers bits, on utilise l instruction suivante: $t0 = 1000 1000 1111 0111 0001 0000 0100 0100 Xor $t9 = 0000 0000 0000 0000 0000 0000 0011 1111 $t1 = 1000 1000 1111 0111 0001 0000 0111 1011 4. neg - negatif - neg $rd,$rs Les instructions logiques Donne le contraire de $rs. $Rd= -($Rs) Exercice: li $t0,688 neg $t1,$t0 # $t1 = -688 move $a0,$t1 # pour imprimer $t1, il faut le placer dans $a0 li $v0, 1 # code pour print_int syscall 9

et logiques 4. Sll - Shift Left Logical - Action Décalage à gauche immédiat Syntaxe sll $rd, $rt, shamt Le registre $rt est décalé à gauche de la valeur immédiate shamt. Des zéros étant introduits dans les bits de poids faibles. Le résultat est placé dans le registre $rd. Rd <- Rt<<shamt et logiques Exemple: Sll $v1, $t3, 5 # $v1 = $t3 << 5 Supposons que $t3 contient la valeur : 0000000000011010 = 26, Après le décalage à gauche (Sll) le résultat 0000001101000000 est placé dans le registre $v1. L opération donne 832 10 = (26 * 32) = (26 * 2 5 ) Le Sll est utilisé pour réalisé la multiplication par des puissances de 2. 10

et logiques 11. Sra - Shift Right Logical arithmetic - Action: Décalage à droite arithmétique immédiat Syntaxe: sra $rd, $rt, shamt : Le registre $rt est décalé à droite de la valeur immédiate. Le résultat est placé dans le registre $rd. Exemple: $a0 contient la valeur 32 (11111111111111111111111111100000). On veut diviser $a0 par (4 =2 2 ). Le décalage arithmétique à gauche (Sra) par 2 positions peut effectuer cette opération. Le résultat = 8 (11111111111111111111111111111000). et logiques 12. Slt - Set if Less Than - Action: Comparaison signée registre registre Syntaxe: slt $rd, $rs, $rt : Le contenu du registre $rs est comparé au contenu du registre $rt. Si la valeur contenue dans $rs est inférieure à celle contenue dans $rt, alors $rd prend la valeur 1, sinon il prend la valeur 0. if ([rs] < [rt] ) then [rd] =1 else [rd] = 0 11

et logiques Autres instructions arithmétiques: Addu Subu Addiu Multu Divu Nor Ori Andi Xori Srav (Shift right arithmetical variable) Sltu (Set if Less Than Unsigned) Mthi (Move from Lo) Mtlo (Move to Lo) 12