• Aucun résultat trouvé

Chapitre 6 Instructions Pep/8, factorisation et refactorisation

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 6 Instructions Pep/8, factorisation et refactorisation"

Copied!
23
0
0

Texte intégral

(1)

Chapitre 6

Instructions Pep/8, factorisation et refactorisation

Jean Privat

Université du Québec à Montréal

INF2170 — Organisation des ordinateurs et assembleur Automne 2013

(2)

Plan

1 Instructions machines

2 Instructions logiques

3 Instructions spéciales

4 Branchements et sous-programmes

(3)

Plan

1 Instructions machines

2 Instructions logiques

3 Instructions spéciales

4 Branchements et sous-programmes

(4)

Processeurs

Processeur = travailleur

Chacun à son jeu d’instructions Il existe des familles de processeur

Pep/8

Processeur simplifié 39 instructions 1 ou 3 octets

(5)

Code d’instruction

Un octet

Code d’opération (4 à 8 bits) Bits de paramètres

registre adressage ...

Exemples

0000 0000 : STOP 0001 101r : NEGr 0111 raaa : ADDr

(6)

Programmes non purs

Principe

Les instructions sont des octets en mémoire Or, on peut modifier les octets en mémoire Donc, on peu modifier les instructions lors de l’exécution

→le programme s’écrit lui-même

Programme dit « non pur »

Ses instructions se modifient à l’exécution Style à proscrire

(7)

Exercices : programmes non purs

Simulation accès indexé

Écrire un programme non pur qui affiche un chaîne en utilisant que les adressages directs et immédiats Idée : récrire des spécificateurs d’opérandes

Calculatrice juste-à-temps

Écrire un programme non pur qui demande un nombre d’opération n et un opérateur (+ ou -) ; puis demande n pairs d’opérandes et affiche pour chaque pair le résultats de l’opération

Idée : en fonction de l’opérateur, générer une fois pour toute l’instruction arithmétique adaptée

(8)

Plan

1 Instructions machines

2 Instructions logiques

3 Instructions spéciales

4 Branchements et sous-programmes

(9)

Instruction logiques

Opérations sur bits

Une valeur est un ensemble de bits

Utilisation

Traiter des tas de bits

Traites des valeurs via leur représentation binaire

(10)

Instructions bit-à-bit

Instruction NOTr

Inverse les bits (0→1 et 1→0) Exercice : ~0xEF01 = ?

Instruction ANDr

Fait le « et » binaire des opérandes (1 et 1 → 1, sinon 0)

Exercice : 0xEF01 & 0x7FAF = ?

Instruction ORr

Fait le « ou » binaire des opérandes (0 et 0 → 0, sinon 1)

Exercice : 0xEF01 | 0x7FAF = ?

(11)

Instruction bit-à-bit

Attention

NOTr, ANDr et ORr ne sont pas les connecteurs logiques booléens

NEGr 6= NOTr

Exercice

Écrire un programme qui transforme les minuscules en majuscules.

Dur : écrire un programme qui vérifie si un nombre est une puissance de 2

(12)

Instructions de décalage

Instruction ASLr : décalage à gauche Le bit de poids fort est rangé dans C Le nouveau bit de poids faible est 0 Exercice : 0xABCD << 1 = ?

Instruction ASRr : décalage à droite Le bit de poids faible est rangé dans C Le nouveau bit de poids fort vaut l’ancien Exercice : 0xABCD >> 1 = ?

(13)

Instructions de décalage

Attention

Travaillent en 16 bits signés

Exercices

Écrire un programme qui multiple un nombre par 100 Écrire un programme qui affiche le nombre de bits à 1 d’un nombre 16 bits signé

(14)

Instructions de décalage circulaire

Instruction ROLr : rotation à gauche Ancien bit fort → nouveau C

Ancien C → nouveau bit faible

Instruction RORr : rotation à droite Ancien C → nouveau bit fort

Ancien bit faible → C

En pratique

Peu d’usage car C est difficilement contrôlable en Pep/8

(15)

Plan

1 Instructions machines

2 Instructions logiques

3 Instructions spéciales

4 Branchements et sous-programmes

(16)

Instructions non réalisées

Instructions NOPn et NOP Ne font rien

12 spécificateurs d’instruction

Utilité

Place pour commentaires

Place pour code généré (programmes non purs) Appel systèmes

(17)

Instructions de transfert spéciaux

Instruction MOVSPA

Copie le pointeur de pile vers A

Instruction MOVFLGA Copie NZVC vers A

Attention

Vers A seulement

Dans un sens seulement

(18)

Plan

1 Instructions machines

2 Instructions logiques

3 Instructions spéciales

4 Branchements et sous-programmes

(19)

Instructions de branchement

Déjà vus : BR et BRcond

Branche (conditionelement) à une adresse PC ← opérande

Adressages

Immédiat ou indexé

Exercice

Écrire un programme qui affiche un menu fonctionnel (mais qui ne fait rien)

Idée : traduire un switch/case en BR indexé

(20)

Exercice

Sommes

Écrire un programme qui demande deux nombres affiche leur somme

demande deux autres nombres affiche leur somme

indique si cette dernière est la plus grande

(21)

Appel de sous-programmes

Instruction CALL

Empile la valeur du compteur ordinal (2 octets) Branche à l’adresse indiquée

Instruction RETn

Dépile n octets (pour l’instant 0)

Dépile 2 octets et branche à cette adresse

Utilisation

Sous-programmes (procédures et fonctions) Exercice

Refaire l’exercice précédent

(22)

Manipulation de pile

Instruction ADDSP Dépile des octets

Instruction SUBSP Empile des octets Plus tard

Semaine 8

(23)

Retour d’appel système

Instruction RETTR Retour de TRAP Encore plus tard

Semaine 11

Références

Documents relatifs

D Le dernier octet du code machine généré est 02 (hexadécimal) E Le premier octet du code machine est 32 (hexadécimal) F la valeur du symbole x est 07 (hexadécimal).. G Ce

Le temps de réponse peut alors devenir beaucoup plus long, voire prohibitif, au point que l’on soit obligé d’arrêter le calcul : ainsi la factorisation du nombre de Fermat

Remplissez cette partie uniquement si vous voulez retirer de l’argent de votre compte immobilisé parce que vous, votre conjoint ou une personne à charge avez besoin d’argent pour

réels positifs). Détermine la mesure des côtés de ce carré. Détermine la mesure du rayon de ce disque. Détermine le rayon de sa base si sa hauteur mesure

A l’équivalence les réactifs ont été introduits dans les proportions stœchiométriques, tous les ions hydroxyde présents ont réagi avec les ions oxonium versés.. Avantages :

Et bien qu’il y ait encore mainte belle page, très émouvante à la fois et très suggestive, dans le chapitre où le héros du livre nous raconte les longues

En déduire la concentration molaire C S en ions chlorure initialement présents dans la solution S, puis celle C 0 dans le

3- Ne cessant d’améliorer notre commande, nous avons constaté qu’un phénomène d’oscillation de l’eau autour d’un niveau provoque de nombreux démarrage et arrêt