FR2833729A1 - Machine universelle pour la simulation d'une architecture informatique a vocation generaliste - Google Patents
Machine universelle pour la simulation d'une architecture informatique a vocation generaliste Download PDFInfo
- Publication number
- FR2833729A1 FR2833729A1 FR0203260A FR0203260A FR2833729A1 FR 2833729 A1 FR2833729 A1 FR 2833729A1 FR 0203260 A FR0203260 A FR 0203260A FR 0203260 A FR0203260 A FR 0203260A FR 2833729 A1 FR2833729 A1 FR 2833729A1
- Authority
- FR
- France
- Prior art keywords
- sep
- machine
- level
- virtual
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45566—Nested virtual machines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Le dispositif de traitement d'information met en oeuvre des machines virtuelles imbriquées, c'est-à-dire qu'une machine est émulée par une autre, hiérarchiquement de la plus simple à la plus complexe, c'est-à-dire qu'une machine donnée émule totalement une autre machine plus compliquée et élaborée, chaque machine virtuelle ayant une architecture originale, c'est-à-dire se différenciant de l'architecture des autres machines de la hiérarchie de machines virtuelles, chaque machine virtuelle étant adaptée à exécuter un programme d'émulation ou de compilation dynamique simulant l'architecture virtuelle plus complexe de niveau immédiatement supérieur, une machine virtuelle d'un niveau donné dans la hiérarchie possédant donc une architecture plus simple que celles de toutes les machines virtuelles de niveau supérieur.Les langages machines des deux niveaux de machines virtuelles les plus bas de la hiérarchie sont spécifiquement conçus pour permettre l'exécution de toutes les opérations du niveau supérieur. Un niveau de la hiérarchie, constituant le sommet de la hiérarchie, n'émule aucun autre niveau de la hiérarchie.Tout niveau de la hiérarchie peut être lié à une machine réelle généraliste (la machine support) au moyen d'un programme exécutable d'émulation ou de compilation dynamique spécifique à cette machine réelle.Au moins une machine virtuelle dite " bimode " étant adaptée à être implémentée par un compilateur dynamique écrit pour une machine virtuelle d'un niveau inférieur ou une machine support réelle, et adaptée à être implémentée par un émulateur écrit pour une machine virtuelle d'un niveau inférieur ou une machine support réelle.
Description
<Desc/Clms Page number 1>
PROCEDE ET DISPOSITIF DE TRAITEMENT D'INFORMATION
La présente invention concerne un procédé et un dispositif de traitement d'informations. Elle s'applique, en particulier aux ordinateurs personnels, aux ordinateurs de réseau et aux serveurs informatiques.
La présente invention concerne un procédé et un dispositif de traitement d'informations. Elle s'applique, en particulier aux ordinateurs personnels, aux ordinateurs de réseau et aux serveurs informatiques.
De plus en plus d'outils utilisés quotidiennement fonctionnent grâce à un ou plusieurs microprocesseurs. C'est le cas d'un micro-ordinateur, mais aussi d'un téléphone portable, d'une automobile, d'un appareil électroménager, par exemple. Ces microprocesseurs remplissent un rôle essentiel ou accessoire au sein de ces outils. Ces microprocesseurs peuvent recevoir et/ou envoyer des informations aux périphériques auxquels ils sont connectés.
Depuis la naissance des microprocesseurs dans les années 1970, une multitude de modèles aux caractéristiques très différentes sont apparus sur le marché. Chaque fabricant de matériel électronique a amélioré ses produits, et fait des choix technologiques différents. Ce phénomène a été particulièrement prononcé pour les périphériques (cartes graphiques, imprimantes, capteurs, etc. ), qui se déclinent aujourd'hui sous des centaines de versions différentes.
Cette hétérogénéité constitue aujourd'hui un frein. En effet, les programmes doivent être adaptés en autant de versions qu'il y a de microprocesseurs et de périphériques. De plus, les programmes doivent pouvoir communiquer entre eux de façon transparente, ce qui requiert une adaptation spécifique à chaque interlocuteur différent.
Ces adaptations sont longues et coûteuses à réaliser.
Pour résoudre ces problèmes, l'émulation est une solution parfois retenue. Un émulateur est un programme, exécuté sur une machine A (machine support), qui simule l'architecture matérielle d'une machine B. On peut ainsi utiliser les programmes originellement conçus pour la machine B sur la machine A. On factorise donc le travail d'adaptation des programmes de la machine B vers la machine A. Mais un émulateur est un programme complexe et long à réaliser. Il ne permet de simuler qu'une architecture matérielle en particulier. Mais surtout, il dépend de l'architecture de la machine A. Le problème n'est donc que partiellement résolu, puisque cette architecture matérielle A peut devenir obsolète et être remplacée par un modèle différent A', a priori incapable d'exécuter directement les programmes écrits pour la machine A.
Les technologies Java (marque déposée) de Sun microsystems (marque déposée) ou VP (marque déposée) de Tao Group (marque déposée) se basent sur une machine
<Desc/Clms Page number 2>
virtuelle. Les techniques d'émulation permettent de mettre en oeuvre la machine virtuelle sur des architectures matérielles actuellement disponibles. Ces machines virtuelles ont été conçues comme de nouveaux standards de programmation. Elles sont destinées à uniformiser l'écriture et l'exécution des programmes en vue d'éliminer les incompatibilités.
On observe que le même genre de problème se rencontre en linguistique. La Commission Européenne engage des dépenses considérables pour la traduction des documents de travail qu'elle génère et pour ses réunions. Les langues officielles doivent être traduites entre elles ce qui implique une démultiplication des traductions. Si toutes les langues étaient d'abord traduites dans une langue commune C (l'Anglais ou l'Espéranto par exemple), puis retraduites depuis cette langue C vers chaque langue officielle, le nombre de traducteurs nécessaires serait extrêmement réduit. Dans ce cas, l'étape supplémentaire dans le processus de traduction peut entraîner un délai, mais moins de moyens sont nécessaires.
Cette solution peut être transposée au problème de l'hétérogénéité des architectures matérielles vu précédemment. Ainsi, la simulation de tous les programmes d'un ensemble de machines B, B', B",..., vers un ensemble de machines A, A', A",..., peut être simplifiée par l'utilisation d'une machine virtuelle C intermédiaire.
En effet, il suffit d'écrire les émulateurs des machines B, B', B",..., pour la machine virtuelle C. Il faut ensuite écrire sur un type de machine A, ou tout autre type de machine A', A",..., l'émulateur de machine virtuelle C. On peut ainsi exécuter tout programme écrit pour les machines B, B', B",..., sur toute machine A, A', A",...
Il y a factorisation du temps de travail puisque les programmes d'émulation de B, B', B",... vers C sont écrits une fois pour toutes. Cependant, l'émulateur C reste toujours complexe et long à écrire.
Chaque aspect de la présente invention vise à répondre à tout ou partie de ces inconvénients.
Selon un premier aspect, la présente invention vise un dispositif de traitement d'information, caractérisé par : - des machines virtuelles imbriquées, c'est-à-dire qu'une machine est émulée par une autre, hiérarchiquement de la plus simple à la plus complexe, c'est-à-dire qu'une machine donnée émule totalement une autre machine plus compliquée et élaborée, chaque machine virtuelle ayant une architecture originale, c'est-à-dire se différenciant de
<Desc/Clms Page number 3>
l'architecture des autres machines de la hiérarchie de machines virtuelles, chaque machine virtuelle étant adaptée à exécuter un programme d'émulation ou de compilation dynamique simulant l'architecture virtuelle plus complexe de niveau immédiatement supérieur, une machine virtuelle d'un niveau donné dans la hiérarchie possédant donc une architecture plus simple que celles de toutes les machines virtuelles de niveau supérieur ; - les langages machine des deux niveaux de machines virtuelles les plus bas de la hiérarchie sont spécifiquement conçus pour permettre l'exécution de toutes les opérations du niveau supérieur ; - un niveau de la hiérarchie, constituant le sommet de la hiérarchie, n'émule aucun autre niveau de la hiérarchie ; - tout niveau de la hiérarchie peut être lié à une machine réelle généraliste (la machine support) au moyen d'un programme exécutable d'émulation ou de compilation dynamique spécifique à cette machine réelle ; et - au moins une machine virtuelle dite"bimode"étant adaptée à être implémentée par un compilateur dynamique écrit pour une machine virtuelle d'un niveau inférieur ou une machine support réelle, et adaptée à être implémentée par un émulateur écrit pour une machine virtuelle d'un niveau inférieur ou une machine support réelle.
On rappelle que le processus de compilation dynamique traduit une fois pour toutes un ensemble d'instructions d'un langage machine donné dans le langage machine de la machine support au lieu de le traduire au fur et à mesure (l'interpréter).
L'avantage est que la compilation dynamique donne un résultat beaucoup plus efficace que l'émulation (le ralentissement induit par l'émulation du niveau un par une machine support réelle ou un niveau inférieur est réduit).
On note que le processus de compilation dynamique est connu depuis plusieurs années. L'innovation de la machine de niveau un est de proposer une architecture logicielle (ou matérielle) relativement simple mais spécialement conçue pour la compilation dynamique, tout en respectant les caractéristiques de la hiérarchie d'émulateurs.
Ainsi, selon son premier aspect, la présente invention vise un ensemble de machines virtuelles imbriquées hiérarchiquement dont la machine de base est une machine virtuelle C simplifiée à l'extrême, afin que le travail pour l'homme soit réduit au strict minimum lorsqu'il faut l'émuler sur des machines quelconques A, A', A",...
<Desc/Clms Page number 4>
En contrepartie, plus une machine virtuelle est d'un niveau hiérarchique bas, plus il est difficile de concevoir des programmes pour elle. C'est pourquoi elle exécute un émulateur qui va simuler une architecture plus complexe, d'un niveau supérieur, mais plus pratique à programmer pour l'humain. Il en est ainsi pour chaque machine virtuelle, jusqu'à ce que l'on atteigne le niveau de complexité adapté pour une utilisation donnée.
La simplification offerte par la présente invention a pour contrepartie un nombre plus élevé d'opérations à exécuter pour la machine support (plus faible efficacité).
Cependant la plus grande partie du travail pour disposer d'une machine virtuelle de complexité satisfaisante est effectuée par la machine support, puisque le programmeur n'a qu'à réaliser le programme d'émulation de la machine à la base de la hiérarchie. La présente invention reporte donc au niveau logiciel un maximum de la complexité d'une machine matérielle généraliste ordinaire, une machine généraliste étant une machine capable d'effectuer tout type d'opération mathématique.
Ainsi, conformément au premier aspect de la présente invention, une machine virtuelle C simplifiée à l'extrême est mise en oeuvre, afin que le travail pour l'homme soit réduit lorsqu'il faut l'émuler sur des machines quelconques A, A', A",...
Selon des caractéristiques particulières, une machine virtuelle à trente deux instructions est une machine bimode. Ainsi, cette machine satisfait trois objectifs : d'une part elle peut être simulée de façon suffisamment efficace par le niveau immédiatement inférieur (par exemple à quatre instructions) de la hiérarchie d'émulateurs ; d'autre part, elle possède un jeu d'instructions suffisamment riche pour permettre une programmation aisée de la plupart des problèmes algorithmiques courants ; enfin, elle dispose d'un langage machine facile à compiler dynamiquement sur n'importe quel type de machine support. Cette machine virtuelle bimode dispose de la plupart des opérations d'un processeur courant. L'exécution de tous les programmes de niveau supérieur peut reposer sur elle. La machine virtuelle bimode est simulée par un émulateur ou un compilateur dynamique, programme chargé de réaliser la traduction des opérations de la machine virtuelle de niveau un en opérations exécutables par la machine support.
Selon des caractéristiques particulières, la machine virtuelle bimode utilise les mêmes protocoles de gestion des périphériques que ceux utilisés par les machines virtuelle de niveau hiérarchique inférieur (par exemple à deux ou quatre instructions).
Selon des caractéristiques particulières, une machine virtuelle bimode possède deux espaces de mémoire distincts, l'un pour les données, dit"mémoire donnée", l'autre
<Desc/Clms Page number 5>
pour les programmes, dit"mémoire programme", pour être exécuté, un programme étant d'abord chargé en mémoire données, puis copié vers la mémoire programmes grâce à une instruction spécifique dite"de copie"de la machine bimode, la compilation dynamique intervenant exclusivement lors de l'exécution de cette instruction de copie.
Selon des caractéristiques particulières, une machine bimode met en oeuvre des opérations de rupture de séquence (instructions Jcc, JP et JAR, ainsi que le mécanisme d'interruption) permettant au compilateur dynamique de prévoir systématiquement la destination du saut induit par la rupture de séquence. Grâce à ces dispositions, le processus de compilation dynamique est significativement simplifié.
Selon des caractéristiques particulières, une machine bimode met en oeuvre une instruction répartissant la mémoire totale disponible entre les espaces de mémoire données et de mémoire programme. Ainsi, la quantité de mémoire disponible pour chaque espace mémoire peut être gérée.
Selon des caractéristiques particulières, une machine bimode met en oeuvre une mise à jour optionnelle d'indicateurs d'état. Ceci permet d'accélérer l'exécution des programmes de la machine virtuelle bimode lorsqu'ils sont compilés dynamiquement vers un niveau hiérarchique inférieur.
Selon des caractéristiques particulières, pour une machine virtuelle bimode, toutes les opérations relatives à la gestion et à l'accès à la mémoire respectent les contraintes d'un niveau hiérarchique inférieur.
Selon un deuxième aspect, la présente invention vise un procédé de traitement d'information, caractérisé par : - au moins deux machines virtuelles imbriquées, c'est-à-dire qu'une machine virtuelle est émulée par une autre, hiérarchiquement plus simple et qu'une machine donnée émule totalement une autre machine plus compliquée et élaborée, chaque machine virtuelle ayant une architecture originale, c'est-à-dire se différenciant de l'architecture des autres machines de la hiérarchie de machines virtuelles, - chaque machine virtuelle étant adaptée à exécuter un programme d'émulation ou de compilation dynamique simulant l'architecture virtuelle plus complexe de niveau immédiatement supérieur, une machine virtuelle d'un niveau donné dans la hiérarchie possédant donc une architecture plus simple que toutes les machines virtuelles de niveau supérieur et
<Desc/Clms Page number 6>
- au moins une machine virtuelle étant adaptée à être implémentée par un compilateur dynamique écrit pour une machine virtuelle d'un niveau inférieur ou une machine support réelle, et adaptée à être implémentée par un émulateur écrit pour une machine virtuelle d'un niveau inférieur ou une machine support réelle.
Les avantages, buts et caractéristiques particulières du deuxième aspect de la présente invention étant identiques à ceux du premier aspect, ils ne sont pas rappelés ici.
D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre.
Dans un but de concision, la description de la demande de brevet français (demande de brevet français numéro FR 01 16237, du 14 décembre 2001, titre"MACHINE
UNIVERSELLE POUR LA SIMULATION D'UNE ARCHITECTURE INFORMATIQUE A VOCATION GENERALISTE"), dont la présente demande revendique la date de dépôt ("priorité interne"), n'est pas reprise ici.
UNIVERSELLE POUR LA SIMULATION D'UNE ARCHITECTURE INFORMATIQUE A VOCATION GENERALISTE"), dont la présente demande revendique la date de dépôt ("priorité interne"), n'est pas reprise ici.
Dans un but de concision, la présente description ne porte que sur une machine virtuelle à trente deux instructions, appelée"machine virtuelle de niveau 1. 32","niveau
1. 32", "niveau 1" ou "machine virtuelle bimode". Cependant, la présente invention ne se limite pas à ce type de machine virtuelle.
1. 32", "niveau 1" ou "machine virtuelle bimode". Cependant, la présente invention ne se limite pas à ce type de machine virtuelle.
Conformément à la présente invention, le niveau 1.32 s'insère dans des machines virtuelles imbriquées, c'est-à-dire qu'une machine est émulée par une autre, hiérarchiquement de la plus simple à la plus complexe, c'est-à-dire qu'une machine donnée émule totalement une autre machine plus compliquée et élaborée, chaque machine virtuelle ayant une architecture originale, c'est-à-dire se différenciant de l'architecture des autres machines de la hiérarchie de machines virtuelles, chaque machine virtuelle étant adaptée à exécuter un programme d'émulation ou de compilation dynamique simulant l'architecture virtuelle plus complexe de niveau immédiatement supérieur, une machine virtuelle d'un niveau donné dans la hiérarchie possédant donc une architecture plus simple que celles de toutes les machines virtuelles de niveau supérieur.
Les langages machine des deux niveaux de machines virtuelles les plus bas de la hiérarchie sont spécifiquement conçus pour permettre l'exécution de toutes les opérations du niveau supérieur ; un niveau de la hiérarchie, constituant le sommet de la hiérarchie, n'émule aucun autre niveau de la hiérarchie.
<Desc/Clms Page number 7>
Tout niveau de la hiérarchie peut être lié à une machine réelle généraliste (la machine support) au moyen d'un programme exécutable d'émulation ou de compilation dynamique spécifique à cette machine réelle.
Conformément à la présente invention, le niveau 1.32 est prévu pour être compilé dynamiquement par un niveau inférieur ou une machine support réelle, en plus de pouvoir être émulé.
On rappelle que le processus de compilation dynamique traduit un programme une fois pour toutes dans le langage machine de la machine support au lieu de le traduire au fur et à mesure (l'interpréter). La compilation dynamique donne un résultat beaucoup plus efficace que l'émulation (le ralentissement induit par l'émulation du niveau un par une machine support réelle ou un niveau inférieur est réduit).
La machine de niveau un propose une architecture logicielle (ou matérielle) relativement simple mais spécialement conçue pour la compilation dynamique, tout en respectant les caractéristiques de la hiérarchie d'émulateurs exposée ci-dessus.
Préférentiellement, la machine de niveau 1.32 possède deux espaces de mémoire distincts, l'un pour les données, l'autre pour les programmes. Pour pouvoir être exécuté, un programme doit d'abord être chargé en mémoire données, puis copié vers la mémoire programmes grâce à une instruction spécifique. La compilation dynamique intervient exclusivement lors de l'exécution de cette instruction de copie.
D'autre part, la compilation dynamique est un processus d'ordinaire complexe qui pose un certain nombre de problèmes algorithmiques pour les processeurs actuellement disponibles. Le niveau 1.32 ayant été conçu dans l'optique d'être compilé dynamiquement, les inventeurs ont découvert des moyens permettant d'éviter la grande majorité de ces problèmes : - les opérations de rupture de séquence (instructions Jcc, JP et JAR, ainsi que le mécanisme d'interruption) sont aussi performantes que les opération équivalentes d'un processeur classique, mais permettent au compilateur dynamique de prévoir systématiquement la destination du saut induit par la rupture de séquence, ce qui simplifie significativement le processus de compilation dynamique ; - la mise en oeuvre de deux espaces de mémoire dédiés (mémoire données et mémoire programme) ; l'instruction PPC de transfert entre ces deux espaces ; l'instruction SMP répartissant la mémoire totale disponible entre ces deux espaces ;
<Desc/Clms Page number 8>
- la mise à jour des indicateurs d'état est optionnelle, mais permet d'accélérer l'exécution des programmes de niveau 1.32 lorsqu'ils sont compilés dynamiquement vers le niveau 0.4. ; toutes les opérations relatives à la gestion et à l'accès à la mémoire sont conçues pour respecter les contraintes du niveau hiérarchique inférieur (niveau 0.4), tout en permettant une programmation plus aisée.
On note que la gestion des périphériques pour ce niveau 1.32 est strictement équivalente à celle présentée dans la demande de brevet de priorité, contrairement à ce qui y est mentionné (stipulant que la gestion des périphériques différait légèrement pour le niveau un).
En référence au document de priorité, le niveau un représente un niveau intermédiaire de la hiérarchie de machines virtuelle, appelée"machine universelle". C'est le premier niveau de la hiérarchie disposant de la plupart des opérations d'un processeur courant. L'exécution de tous les programmes de niveau supérieur peut reposer sur lui. La machine virtuelle de niveau un est simulée par un émulateur ou un compilateur dynamique, programme chargé de réaliser la traduction des opérations de la machine virtuelle de niveau un en opérations exécutables par la machine support.
La machine de niveau un est conçue pour satisfaire trois objectifs. D'une part pouvoir être simulée de façon suffisamment efficace par le niveau immédiatement inférieur (niveau 0.4) de la hiérarchie d'émulateurs composant la machine universelle ; d'autre part, proposer un jeu d'instructions suffisamment riche pour permettre une programmation aisée de la plupart des problèmes algorithmiques courants ; enfin, avoir un langage machine facile à compiler dynamiquement sur n'importe quel type de machine support.
La machine de niveau un utilise les mêmes protocoles de gestion des périphériques que ceux utilisés par les machines de niveau inférieur (niveau zéro).
FORMAT DES DONNEES
L'unité élémentaire manipulable par la machine de niveau un est le mot de 16 bits. Les données ont une taille fixe de 16 bits. On note le bit de poids le plus faible (Least-Significant Bit, LSB) à droite du mot, et le bit de poids le plus fort (MostSignificant Bit, MSB) à gauche. Par convention, on numérote les bits du mot de 0 à 15, de droite à gauche. Les données sont enregistrées dans des fichiers au format binaire big endian (octet de plus fort poids stocké à l'adresse de plus faible numéro). Les
L'unité élémentaire manipulable par la machine de niveau un est le mot de 16 bits. Les données ont une taille fixe de 16 bits. On note le bit de poids le plus faible (Least-Significant Bit, LSB) à droite du mot, et le bit de poids le plus fort (MostSignificant Bit, MSB) à gauche. Par convention, on numérote les bits du mot de 0 à 15, de droite à gauche. Les données sont enregistrées dans des fichiers au format binaire big endian (octet de plus fort poids stocké à l'adresse de plus faible numéro). Les
<Desc/Clms Page number 9>
données sauvées dans la mémoire de la machine support peuvent être au format little endian ou big endian . En effet, les programmes exécutés sur la machine de niveau un n'ont pas la possibilité de le vérifier, et n'en sont pas affectés. Par contre, en environnement multiprocesseur, il faut s'assurer que tous les processeurs utilisent le même format de données pour le stockage en mémoire.
On rappelle que, par convention, un caractère $ précédant un nombre indique qu'il est exprimé en base hexadécimale.
ORGANISATION DE L'ESPACE D'ADRESSAGE
L'espace d'adressage de la machine de niveau un se partage en deux espaces disjoints aux fonctions différentes. Le premier est l'espace de mémoire programmes, dont la fonction est de stocker les programmes destinés à être exécutés. Ses adresses s'étendent de 0 à 232765-1. Le second est l'espace de mémoire données, dont la fonction est de stocker les données utilisées par les programmes pour leur fonctionnement. Ses adresses s'étendent de 0 à 232768-1.
L'espace d'adressage de la machine de niveau un se partage en deux espaces disjoints aux fonctions différentes. Le premier est l'espace de mémoire programmes, dont la fonction est de stocker les programmes destinés à être exécutés. Ses adresses s'étendent de 0 à 232765-1. Le second est l'espace de mémoire données, dont la fonction est de stocker les données utilisées par les programmes pour leur fonctionnement. Ses adresses s'étendent de 0 à 232768-1.
De plus, tout programme destiné à être exécuté doit être stocké en mémoire données avant d'être transféré vers la mémoire programmes.
La structure des registres de contrôle de la machine de niveau un entraîne une vision paginée des deux espaces de mémoire. Ainsi, ces espaces sont vus comme étant découpés en pages de 8 Kmots pour l'exécution des programmes, ainsi que pour la lecture ou l'écriture des données. Ces pages sont des plages d'adresses de taille fixe, situées les unes à la suite des autres, et couvrant l'ensemble de chaque espace de mémoire.
On définit par adresse valide, une adresse permettant d'accéder directement à une information 16 bits de façon bijective (exemples de supports de l'information : RAM, ROM, EEPROM,...). Une telle information n'est accessible que par le processeur virtuel. Toute autre adresse est dite adresse invalide, et provoque systématiquement l'exception si un programme tente d'y accéder.
Dans chaque espace de mémoire, on distingue un espace exploitable, ainsi qu'un espace inexploitable, disjoint du premier, et situé immédiatement après. Ces deux espaces recouvrent la totalité de chaque espace de mémoire.
L'espace exploitable correspond à l'ensemble des pages ne contenant que des adresses valides. L'espace inexploitable correspond à toutes les autres pages, uniquement composées d'adresses invalides.
<Desc/Clms Page number 10>
Chaque espace exploitable débute à l'adresse 0, se poursuit séquentiellement aux adresses 1, 2,3,..., et son adresse de fin dépend de la quantité de mémoire disponible ainsi que de sa répartition entre les deux espaces de mémoire. Chaque adresse pointe sur un mot de 16 bits.
On définit par"espace adressable données" l'espace exploitable de l'espace de mémoire données.
On définit par"espace adressable exécutable" l'espace exploitable de l'espace de mémoire programmes. Sa première page n'est pas accessible en écriture et n'est pas interruptible, car réservée au programme de gestion de l'exception, notamment appelé au démarrage de la machine.
Un ensemble de pages de mémoire données peut être transformé en une page de mémoire programmes. Inversement, une page de mémoire programmes peut être transformée en un ensemble de pages de mémoire données. La première page de chaque espace adressable est toujours valide et n'est pas transformable.
<tb>
<tb> Mode <SEP> Nom <SEP> du <SEP> registre <SEP> Taille <SEP> Rôle
<tb> d'accès
<tb> Lecture/Ro <SEP> à <SEP> R2047 <SEP> 16 <SEP> bits <SEP> 2048 <SEP> registres <SEP> internes <SEP> à <SEP> usage
<tb> Écriture <SEP> général.
<tb>
<tb> Mode <SEP> Nom <SEP> du <SEP> registre <SEP> Taille <SEP> Rôle
<tb> d'accès
<tb> Lecture/Ro <SEP> à <SEP> R2047 <SEP> 16 <SEP> bits <SEP> 2048 <SEP> registres <SEP> internes <SEP> à <SEP> usage
<tb> Écriture <SEP> général.
<tb>
Lecture/MER <SEP> 16 <SEP> bits <SEP> Registre <SEP> de <SEP> communication <SEP> avec <SEP> le
<tb> Écriture <SEP> (Mapper/Enumerator <SEP> Cartographe/Enumérateur.
<tb>
<tb> Écriture <SEP> (Mapper/Enumerator <SEP> Cartographe/Enumérateur.
<tb>
Register)
<tb> Écriture <SEP> MBR <SEP> 2048 <SEP> mots <SEP> Pointeur <SEP> de <SEP> base <SEP> d'accès <SEP> aux <SEP> données
<tb> (Memory <SEP> Base <SEP> Register) <SEP> en <SEP> mémoire.
<tb>
<tb> Écriture <SEP> MBR <SEP> 2048 <SEP> mots <SEP> Pointeur <SEP> de <SEP> base <SEP> d'accès <SEP> aux <SEP> données
<tb> (Memory <SEP> Base <SEP> Register) <SEP> en <SEP> mémoire.
<tb>
Implicite <SEP> IP <SEP> 13 <SEP> bits <SEP> Pointeur <SEP> d'instruction <SEP> dans <SEP> la <SEP> page <SEP> de
<tb> (Instruction <SEP> Pointer) <SEP> mémoire <SEP> programmes <SEP> en <SEP> cours
<tb> d'exécution.
<tb>
<tb> (Instruction <SEP> Pointer) <SEP> mémoire <SEP> programmes <SEP> en <SEP> cours
<tb> d'exécution.
<tb>
Implicite <SEP> PP <SEP> 2047 <SEP> mots <SEP> Pointeur <SEP> sur <SEP> la <SEP> page <SEP> de <SEP> mémoire
<tb> (Page <SEP> Pointer) <SEP> programmes <SEP> en <SEP> cours <SEP> d'exécution.
<tb>
<tb> (Page <SEP> Pointer) <SEP> programmes <SEP> en <SEP> cours <SEP> d'exécution.
<tb>
Implicite <SEP> 1 <SEP> 1 <SEP> bit <SEP> Indicateur <SEP> d'autorisation
<tb> (Interrupt <SEP> flag) <SEP> d'interruption. <SEP> L'interruption <SEP> est
<tb> autorisée <SEP> ou <SEP> inhibée <SEP> pour <SEP> la <SEP> totalité
<tb>
<tb> (Interrupt <SEP> flag) <SEP> d'interruption. <SEP> L'interruption <SEP> est
<tb> autorisée <SEP> ou <SEP> inhibée <SEP> pour <SEP> la <SEP> totalité
<tb>
<Desc/Clms Page number 11>
<tb>
<tb> d'une <SEP> page <SEP> de <SEP> mémoire <SEP> programmes.
<tb>
<tb> d'une <SEP> page <SEP> de <SEP> mémoire <SEP> programmes.
<tb>
Implicite <SEP> Z <SEP> 1 <SEP> bit <SEP> Indicateur <SEP> de <SEP> valeur <SEP> nulle.
<tb>
<tb>
(Zero <SEP> flag)
<tb> Implicite <SEP> N <SEP> 1 <SEP> bit <SEP> Indicateur <SEP> de <SEP> signe <SEP> négatif.
<tb>
<tb> Implicite <SEP> N <SEP> 1 <SEP> bit <SEP> Indicateur <SEP> de <SEP> signe <SEP> négatif.
<tb>
(Negative <SEP> flag)
<tb> Implicite <SEP> 0 <SEP> 1 <SEP> bit <SEP> Indicateur <SEP> de <SEP> dépassement <SEP> de
<tb> (Overflow <SEP> flag) <SEP> capacité <SEP> en <SEP> calcul <SEP> signé.
<tb>
<tb> Implicite <SEP> 0 <SEP> 1 <SEP> bit <SEP> Indicateur <SEP> de <SEP> dépassement <SEP> de
<tb> (Overflow <SEP> flag) <SEP> capacité <SEP> en <SEP> calcul <SEP> signé.
<tb>
Implicite <SEP> C <SEP> 1 <SEP> bit <SEP> Indicateur <SEP> de <SEP> retenue <SEP> en <SEP> calcul <SEP> non
<tb> (Carry <SEP> flag) <SEP> signé.
<tb>
<tb> (Carry <SEP> flag) <SEP> signé.
<tb>
Implicite <SEP> IV <SEP> 2047 <SEP> mots <SEP> Numéro <SEP> de <SEP> la <SEP> page <SEP> de <SEP> mémoire
<tb> (Interrupt <SEP> Vector) <SEP> programmes <SEP> à <SEP> appeler <SEP> en <SEP> cas
<tb> d'interruption.
<tb>
<tb> (Interrupt <SEP> Vector) <SEP> programmes <SEP> à <SEP> appeler <SEP> en <SEP> cas
<tb> d'interruption.
<tb>
Implicite <SEP> RI <SEP> 16 <SEP> bits <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> R2047 <SEP> pendant
<tb> (R2047 <SEP> Interrupt <SEP> backup) <SEP> le <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb>
<tb> (R2047 <SEP> Interrupt <SEP> backup) <SEP> le <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb>
Implicite <SEP> IPI <SEP> 13 <SEP> bits <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> IP <SEP> pendant <SEP> le
<tb> (Instruction <SEP> Pointer <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb>
<tb> (Instruction <SEP> Pointer <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb>
Interrupt <SEP> backup)
<tb> Implicite <SEP> PPI <SEP> 2047 <SEP> mots <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> PP <SEP> pendant <SEP> le
<tb> (Page <SEP> Pointer <SEP> Interrupt <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb> backup)
<tb> Implicite <SEP> ZI <SEP> 1 <SEP> bit <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> Z <SEP> pendant <SEP> le
<tb> (Zero <SEP> flag <SEP> Interrupt <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb> backup)
<tb> Implicite <SEP> NI <SEP> 1 <SEP> bit <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> N <SEP> pendant <SEP> le
<tb> (Negative <SEP> flag <SEP> Interrupt <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb> backup)
<tb> Implicite <SEP> 01 <SEP> 1 <SEP> bit <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> 0 <SEP> pendant <SEP> le
<tb> (Overflow <SEP> flag <SEP> Interrupt <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb> backup)
<tb> Implicite <SEP> CI <SEP> 1 <SEP> bit <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> C <SEP> pendant <SEP> le
<tb> (Carry <SEP> flag <SEP> Interrupt <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb> backup)
<tb>
<tb> Implicite <SEP> PPI <SEP> 2047 <SEP> mots <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> PP <SEP> pendant <SEP> le
<tb> (Page <SEP> Pointer <SEP> Interrupt <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb> backup)
<tb> Implicite <SEP> ZI <SEP> 1 <SEP> bit <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> Z <SEP> pendant <SEP> le
<tb> (Zero <SEP> flag <SEP> Interrupt <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb> backup)
<tb> Implicite <SEP> NI <SEP> 1 <SEP> bit <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> N <SEP> pendant <SEP> le
<tb> (Negative <SEP> flag <SEP> Interrupt <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb> backup)
<tb> Implicite <SEP> 01 <SEP> 1 <SEP> bit <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> 0 <SEP> pendant <SEP> le
<tb> (Overflow <SEP> flag <SEP> Interrupt <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb> backup)
<tb> Implicite <SEP> CI <SEP> 1 <SEP> bit <SEP> Sauvegarde <SEP> du <SEP> registre <SEP> C <SEP> pendant <SEP> le
<tb> (Carry <SEP> flag <SEP> Interrupt <SEP> déroulement <SEP> d'une <SEP> interruption.
<tb> backup)
<tb>
<Desc/Clms Page number 12>
CODAGE DES INSTRUCTIONS DU PROCESSEUR
Chaque instruction élémentaire de la machine de niveau un a une taille fixe de 32 bits, à l'exception de l'instruction JAR dont la taille est variable.
Chaque instruction élémentaire de la machine de niveau un a une taille fixe de 32 bits, à l'exception de l'instruction JAR dont la taille est variable.
Dans le tableau ci-dessous, les bits sont notés selon les conventions suivantes : 0 = bit devant être mis à zéro 1 = bit devant être mis à un x = bit réservé dont la valeur doit être nulle f = mise à jour des indicateurs Z et N o = mise à jour de l'indicateur 0 c = mise à jour de l'indicateur C i = autorisation de l'interruption pour la page de mémoire programmes concernée d = numéro du registre destination s = numéro du registre source b = numéro du registre contenant le mot de poids faible du pointeur de base mémoire r = numéro du registre v = valeur immédiate m = masque sur MBR j = code de condition du saut a = adresse absolue t = taille de la table 1 = largeur d'adressage e = mise à jour du registre destination
<tb>
<tb> Syntaxe <SEP> Codage
<tb> MOVE <SEP> Rd, <SEP> Rs, <SEP> ZNOC <SEP> OOOOOddddddddddd
<tb> focxxsssssssssss
<tb> LDI <SEP> Rd, <SEP> #immOOOOlddddddddddd
<tb> vvvvvvvvvvvvvvvv
<tb> PPC <SEP> Rb, <SEP> I <SEP> OOOlObbbbbbbbbbb
<tb> xxxxixxxxxxxxxxx
<tb> SMPRr <SEP> OOOlIrrrrrrrrrrr
<tb> xxxxxxxxxxxxxxxx
<tb>
<tb> Syntaxe <SEP> Codage
<tb> MOVE <SEP> Rd, <SEP> Rs, <SEP> ZNOC <SEP> OOOOOddddddddddd
<tb> focxxsssssssssss
<tb> LDI <SEP> Rd, <SEP> #immOOOOlddddddddddd
<tb> vvvvvvvvvvvvvvvv
<tb> PPC <SEP> Rb, <SEP> I <SEP> OOOlObbbbbbbbbbb
<tb> xxxxixxxxxxxxxxx
<tb> SMPRr <SEP> OOOlIrrrrrrrrrrr
<tb> xxxxxxxxxxxxxxxx
<tb>
<Desc/Clms Page number 13>
<tb>
<tb> LDR <SEP> Rd, <SEP> & masque, <SEP> ZN <SEP> 00100ddddddddddd
<tb> fxxmmminmmmmmmmmm
<tb> STR <SEP> Rs, <SEP> & masque, <SEP> ZN <SEP> OOlOlsssssssssss
<tb> fxxmmmmmmmmmmmmm
<tb> BLD <SEP> Rd, <SEP> & masque <SEP> OOllOdddxxxxxxxx
<tb> xxxmmmmmxxxxxxxx
<tb> BST <SEP> Rs, <SEP> & masque <SEP> 00111sssxxxxxxxx
<tb> xxxmmmmmxxxxxxxx
<tb> Jccadresse <SEP> OlOOOxxxxxxxjjjj
<tb> xxxaaaaaaaaaaaax
<tb> JP <SEP> Rr <SEP> OlOOlrrrrrrrrrrr
<tb> xxxxxxxxxxxxxxxx
<tb> JAR <SEP> Rr, <SEP> #imm, <SEP> pl,..., <SEP> pn <SEP> OlOlOrrrrrrrrrrr
<tb> xxxxxxxxxxxxxttt
<tb> LDB <SEP> Rb, <SEP> #imm <SEP> 01011bbbbbbbbbbb
<tb> xxxxxlllllllllll
<tb> LDM <SEP> Rs, <SEP> ZN <SEP> OllOOsssssssssss
<tb> fxxxxxxxxxxxxxxx
<tb> STM <SEP> Rd, <SEP> ZN <SEP> OllOlddddddddddd
<tb> fxxxxxxxxxxxxxxx
<tb> SIP <SEP> Rr <SEP> OlllOrrrrrrrrrrr
<tb> xxxxxxxxxxxxxxxx
<tb> RTI <SEP> Ollllxxxxxxxxxxx
<tb> xxxxxxxxxxxxxxxx
<tb> ADD <SEP> Rd, <SEP> Rs, <SEP> ZNOCT <SEP> 10000ddddddddddd
<tb> focexsssssssssss
<tb> ADC <SEP> Rd, <SEP> Rs, <SEP> ZNOCTlOOOIddddddddddd
<tb> focexsssssssssss
<tb> SUB <SEP> Rd, <SEP> Rs, <SEP> ZNOCT <SEP> 10010ddddddddddd
<tb> focexsssssssssss
<tb> SBB <SEP> Rd, <SEP> Rs, <SEP> ZNOCT <SEP> 10011ddddddddddd
<tb> focexsssssssssss
<tb> MUL <SEP> Rd, <SEP> Rs, <SEP> ZNT <SEP> lOlOOddddddddddd
<tb>
<tb> LDR <SEP> Rd, <SEP> & masque, <SEP> ZN <SEP> 00100ddddddddddd
<tb> fxxmmminmmmmmmmmm
<tb> STR <SEP> Rs, <SEP> & masque, <SEP> ZN <SEP> OOlOlsssssssssss
<tb> fxxmmmmmmmmmmmmm
<tb> BLD <SEP> Rd, <SEP> & masque <SEP> OOllOdddxxxxxxxx
<tb> xxxmmmmmxxxxxxxx
<tb> BST <SEP> Rs, <SEP> & masque <SEP> 00111sssxxxxxxxx
<tb> xxxmmmmmxxxxxxxx
<tb> Jccadresse <SEP> OlOOOxxxxxxxjjjj
<tb> xxxaaaaaaaaaaaax
<tb> JP <SEP> Rr <SEP> OlOOlrrrrrrrrrrr
<tb> xxxxxxxxxxxxxxxx
<tb> JAR <SEP> Rr, <SEP> #imm, <SEP> pl,..., <SEP> pn <SEP> OlOlOrrrrrrrrrrr
<tb> xxxxxxxxxxxxxttt
<tb> LDB <SEP> Rb, <SEP> #imm <SEP> 01011bbbbbbbbbbb
<tb> xxxxxlllllllllll
<tb> LDM <SEP> Rs, <SEP> ZN <SEP> OllOOsssssssssss
<tb> fxxxxxxxxxxxxxxx
<tb> STM <SEP> Rd, <SEP> ZN <SEP> OllOlddddddddddd
<tb> fxxxxxxxxxxxxxxx
<tb> SIP <SEP> Rr <SEP> OlllOrrrrrrrrrrr
<tb> xxxxxxxxxxxxxxxx
<tb> RTI <SEP> Ollllxxxxxxxxxxx
<tb> xxxxxxxxxxxxxxxx
<tb> ADD <SEP> Rd, <SEP> Rs, <SEP> ZNOCT <SEP> 10000ddddddddddd
<tb> focexsssssssssss
<tb> ADC <SEP> Rd, <SEP> Rs, <SEP> ZNOCTlOOOIddddddddddd
<tb> focexsssssssssss
<tb> SUB <SEP> Rd, <SEP> Rs, <SEP> ZNOCT <SEP> 10010ddddddddddd
<tb> focexsssssssssss
<tb> SBB <SEP> Rd, <SEP> Rs, <SEP> ZNOCT <SEP> 10011ddddddddddd
<tb> focexsssssssssss
<tb> MUL <SEP> Rd, <SEP> Rs, <SEP> ZNT <SEP> lOlOOddddddddddd
<tb>
<Desc/Clms Page number 14>
<tb>
<tb> fxxexsssssssssss
<tb> DIV <SEP> Rd, <SEP> Rs, <SEP> ZNT <SEP> 10101ddddddddddd
<tb> fxxexsssssssssss
<tb> AND <SEP> Rd, <SEP> Rs, <SEP> ZNT <SEP> lOllOddddddddddd
<tb> fxxexsssssssssss
<tb> OR <SEP> Rd, <SEP> Rs, <SEP> ZNT <SEP> 10111ddddddddddd
<tb> fxxexsssssssssss
<tb> XOR <SEP> Rd, <SEP> Rs, <SEP> ZN <SEP> 11000ddddddddddd
<tb> fxxxxsssssssssss
<tb> ASR <SEP> Rd, <SEP> #imm, <SEP> ZNCIlOOIddddddddddd
<tb> fxcxxxxxxxxxvvvv
<tb> LSL <SEP> Rd, <SEP> #imm, <SEP> ZNOC <SEP> 11010ddddddddddd
<tb> focxxxxxxxxxvvvv
<tb> LSR <SEP> Rd, <SEP> #imm, <SEP> ZNOC <SEP> 11011ddddddddddd
<tb> focxxxxxxxxxvvvv
<tb> ROL <SEP> Rd, <SEP> #imm, <SEP> ZNC <SEP> 11100ddddddddddd
<tb> fxcxxxxxxxxxvvvv
<tb> ROR <SEP> Rd, <SEP> #imm, <SEP> ZNC <SEP> 11101ddddddddddd
<tb> fxcxxxxxxxxxvvvv
<tb> RCL <SEP> Rd, <SEP> #imm, <SEP> ZNC <SEP> 11110ddddddddddd
<tb> fxcxxxxxxxxxvvvv
<tb> RCR <SEP> Rd, <SEP> #imm, <SEP> ZNC <SEP> lllllddddddddddd
<tb> fxcxxxxxxxxxvvvv
<tb>
<tb> fxxexsssssssssss
<tb> DIV <SEP> Rd, <SEP> Rs, <SEP> ZNT <SEP> 10101ddddddddddd
<tb> fxxexsssssssssss
<tb> AND <SEP> Rd, <SEP> Rs, <SEP> ZNT <SEP> lOllOddddddddddd
<tb> fxxexsssssssssss
<tb> OR <SEP> Rd, <SEP> Rs, <SEP> ZNT <SEP> 10111ddddddddddd
<tb> fxxexsssssssssss
<tb> XOR <SEP> Rd, <SEP> Rs, <SEP> ZN <SEP> 11000ddddddddddd
<tb> fxxxxsssssssssss
<tb> ASR <SEP> Rd, <SEP> #imm, <SEP> ZNCIlOOIddddddddddd
<tb> fxcxxxxxxxxxvvvv
<tb> LSL <SEP> Rd, <SEP> #imm, <SEP> ZNOC <SEP> 11010ddddddddddd
<tb> focxxxxxxxxxvvvv
<tb> LSR <SEP> Rd, <SEP> #imm, <SEP> ZNOC <SEP> 11011ddddddddddd
<tb> focxxxxxxxxxvvvv
<tb> ROL <SEP> Rd, <SEP> #imm, <SEP> ZNC <SEP> 11100ddddddddddd
<tb> fxcxxxxxxxxxvvvv
<tb> ROR <SEP> Rd, <SEP> #imm, <SEP> ZNC <SEP> 11101ddddddddddd
<tb> fxcxxxxxxxxxvvvv
<tb> RCL <SEP> Rd, <SEP> #imm, <SEP> ZNC <SEP> 11110ddddddddddd
<tb> fxcxxxxxxxxxvvvv
<tb> RCR <SEP> Rd, <SEP> #imm, <SEP> ZNC <SEP> lllllddddddddddd
<tb> fxcxxxxxxxxxvvvv
<tb>
DESCRIPTION DU JEU D'INSTRUCTIONS DU PROCESSEUR
Par convention, le symbole ± désigne la copie du terme situé à droite dans le terme situé à gauche. On parle d'affectation de variable.
Par convention, le symbole ± désigne la copie du terme situé à droite dans le terme situé à gauche. On parle d'affectation de variable.
<tb>
<tb> ADD
<tb> ADD <SEP> without <SEP> carry-Addition <SEP> sans <SEP> retenue
<tb> Syntaxe <SEP> : <SEP> ADD <SEP> Rd, <SEP> Rs, <SEP> ZNOCT
<tb> Description <SEP> : <SEP> Ajoute <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> avec <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Le <SEP> résultat
<tb>
<tb> ADD
<tb> ADD <SEP> without <SEP> carry-Addition <SEP> sans <SEP> retenue
<tb> Syntaxe <SEP> : <SEP> ADD <SEP> Rd, <SEP> Rs, <SEP> ZNOCT
<tb> Description <SEP> : <SEP> Ajoute <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> avec <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Le <SEP> résultat
<tb>
<Desc/Clms Page number 15>
<tb>
<tb> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd <SEP> si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné.
<tb>
<tb> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd <SEP> si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné.
<tb>
Opération <SEP> : <SEP> Rtmp <SEP> F <SEP> Rd <SEP> + <SEP> Rs <SEP> ; <SEP> Si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> Rd <SEP> < -Rtmp <SEP> ; <SEP> les <SEP> indicateurs
<tb> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de
<tb> l'addition.
<tb>
<tb> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de
<tb> l'addition.
<tb>
Codage <SEP> : <SEP> lOOOOddddddddddd <SEP> focexsssssssssss
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> ADC
<tb> ADd <SEP> with <SEP> Carry-Addition <SEP> avec <SEP> retenue
<tb> Syntaxe <SEP> : <SEP> ADC <SEP> Rd, <SEP> Rs, <SEP> ZNOCT
<tb> Description <SEP> : <SEP> Ajoute <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd, <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs, <SEP> ainsi <SEP> que
<tb> l'indicateur <SEP> de <SEP> retenue <SEP> C. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd <SEP> si <SEP> T <SEP> n'est
<tb> pas <SEP> mentionné.
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> ADC
<tb> ADd <SEP> with <SEP> Carry-Addition <SEP> avec <SEP> retenue
<tb> Syntaxe <SEP> : <SEP> ADC <SEP> Rd, <SEP> Rs, <SEP> ZNOCT
<tb> Description <SEP> : <SEP> Ajoute <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd, <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs, <SEP> ainsi <SEP> que
<tb> l'indicateur <SEP> de <SEP> retenue <SEP> C. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd <SEP> si <SEP> T <SEP> n'est
<tb> pas <SEP> mentionné.
<tb>
Opération <SEP> : <SEP> Rtmp <SEP> < -Rd <SEP> + <SEP> Rs <SEP> + <SEP> C <SEP> ; <SEP> Si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> Rd <SEP> v <SEP> Rtmp <SEP> ; <SEP> les
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le
<tb> résultat <SEP> de <SEP> l'addition.
<tb>
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le
<tb> résultat <SEP> de <SEP> l'addition.
<tb>
Codage <SEP> : <SEP> 100 <SEP> 0 <SEP> 1ddddddddddd <SEP> focexsssssssssss
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb>
<Desc/Clms Page number 16>
<tb>
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> SUB
<tb> SUBstract <SEP> without <SEP> borrow-Soustraction <SEP> sans <SEP> emprunt
<tb> Syntaxe <SEP> : <SEP> SUB <SEP> Rd, <SEP> Rs, <SEP> ZNOCT
<tb> Description <SEP> : <SEP> Soustrait <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs <SEP> au <SEP> contenu <SEP> du <SEP> registre <SEP> Rd. <SEP> Le <SEP> résultat
<tb> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd <SEP> si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné.
<tb>
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> SUB
<tb> SUBstract <SEP> without <SEP> borrow-Soustraction <SEP> sans <SEP> emprunt
<tb> Syntaxe <SEP> : <SEP> SUB <SEP> Rd, <SEP> Rs, <SEP> ZNOCT
<tb> Description <SEP> : <SEP> Soustrait <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs <SEP> au <SEP> contenu <SEP> du <SEP> registre <SEP> Rd. <SEP> Le <SEP> résultat
<tb> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd <SEP> si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné.
<tb>
Opération <SEP> : <SEP> Rtmp <SEP> < -Rd-Rs <SEP> ; <SEP> Si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> Rd <SEP> < -Rtmp <SEP> ; <SEP> les <SEP> indicateurs
<tb> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de <SEP> la
<tb> soustraction.
<tb>
<tb> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de <SEP> la
<tb> soustraction.
<tb>
Codage <SEP> : <SEP> lOOlOddddddddddd <SEP> focexsssssssssss
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> SBB
<tb> SuBstract <SEP> with <SEP> Borrow-Soustraction <SEP> avec <SEP> emprunt
<tb> Syntaxe <SEP> : <SEP> SBB <SEP> Rd, <SEP> Rs, <SEP> ZNOCT
<tb> Description <SEP> : <SEP> Soustrait <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs, <SEP> ainsi <SEP> que <SEP> l'indicateur <SEP> de <SEP> retenue <SEP> C
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> SBB
<tb> SuBstract <SEP> with <SEP> Borrow-Soustraction <SEP> avec <SEP> emprunt
<tb> Syntaxe <SEP> : <SEP> SBB <SEP> Rd, <SEP> Rs, <SEP> ZNOCT
<tb> Description <SEP> : <SEP> Soustrait <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs, <SEP> ainsi <SEP> que <SEP> l'indicateur <SEP> de <SEP> retenue <SEP> C
<tb>
<Desc/Clms Page number 17>
<tb>
<tb> (emprunt), <SEP> du <SEP> contenu <SEP> du <SEP> registre <SEP> Rd. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd
<tb> si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné.
<tb>
<tb> (emprunt), <SEP> du <SEP> contenu <SEP> du <SEP> registre <SEP> Rd. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd
<tb> si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné.
<tb>
Opération <SEP> : <SEP> Rtmp <SEP> < -Rd-Rs-C <SEP> ; <SEP> Si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> Rd <SEP> < -Rtmp <SEP> ; <SEP> les
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le
<tb> résultat <SEP> de <SEP> la <SEP> soustraction.
<tb>
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le
<tb> résultat <SEP> de <SEP> la <SEP> soustraction.
<tb>
Codage <SEP> : <SEP> 1OOllddddddddddd <SEP> focexsssssssssss
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> MUL
<tb> Unsigned <SEP> MULtiply-Multiplication <SEP> non <SEP> signée
<tb> Syntaxe <SEP> : <SEP> MUL <SEP> Rd, <SEP> Rs, <SEP> ZNT
<tb> Description <SEP> : <SEP> Multiplie <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> par <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Les <SEP> 16
<tb> bits <SEP> de <SEP> poids <SEP> fort <SEP> du <SEP> résultat <SEP> sont <SEP> placés <SEP> dans <SEP> le <SEP> registre <SEP> Rad- <SEP> ; <SEP> qui <SEP> précède <SEP> immédiatement
<tb> le <SEP> registre <SEP> destination <SEP> Rd. <SEP> Si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> les <SEP> 16 <SEP> bits <SEP> de <SEP> poids <SEP> faible <SEP> du
<tb> résultat <SEP> sont <SEP> placés <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd.
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> MUL
<tb> Unsigned <SEP> MULtiply-Multiplication <SEP> non <SEP> signée
<tb> Syntaxe <SEP> : <SEP> MUL <SEP> Rd, <SEP> Rs, <SEP> ZNT
<tb> Description <SEP> : <SEP> Multiplie <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> par <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Les <SEP> 16
<tb> bits <SEP> de <SEP> poids <SEP> fort <SEP> du <SEP> résultat <SEP> sont <SEP> placés <SEP> dans <SEP> le <SEP> registre <SEP> Rad- <SEP> ; <SEP> qui <SEP> précède <SEP> immédiatement
<tb> le <SEP> registre <SEP> destination <SEP> Rd. <SEP> Si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> les <SEP> 16 <SEP> bits <SEP> de <SEP> poids <SEP> faible <SEP> du
<tb> résultat <SEP> sont <SEP> placés <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd.
<tb>
Opération <SEP> : <SEP> R1-1 <SEP> (mod <SEP> 2048) <SEP> : <SEP> Rtmp <SEP> < -Rd <SEP> * <SEP> Rs <SEP> ; <SEP> Si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> Rd <SEP> < -Rtmp <SEP> ;
<tb> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> les <SEP> 16 <SEP> bits <SEP> de <SEP> poids
<tb> faible <SEP> du <SEP> résultat <SEP> de <SEP> la <SEP> multiplication, <SEP> éventuellement <SEP> placés <SEP> dans <SEP> Rd.
<tb>
<tb> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> les <SEP> 16 <SEP> bits <SEP> de <SEP> poids
<tb> faible <SEP> du <SEP> résultat <SEP> de <SEP> la <SEP> multiplication, <SEP> éventuellement <SEP> placés <SEP> dans <SEP> Rd.
<tb>
Codage <SEP> : <SEP> 101OOddddddddddd <SEP> fxxexsssssssssss
<tb>
<tb>
<Desc/Clms Page number 18>
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> RI <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> RI <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> poids <SEP> faible <SEP> du
<tb> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> DIV
<tb> Unsigned <SEP> DIVide-Division <SEP> non <SEP> signée
<tb> Syntaxe <SEP> : <SEP> DIV <SEP> Rd, <SEP> Rs, <SEP> ZNT
<tb> Description <SEP> : <SEP> Divise <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> RI <SEP> par <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Le <SEP> reste <SEP> est
<tb> placé <SEP> dans <SEP> le <SEP> registre <SEP> RI-l <SEP> qui <SEP> précède <SEP> immédiatement <SEP> le <SEP> registre <SEP> destination <SEP> Rd. <SEP> Si <SEP> T
<tb> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> le <SEP> quotient <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd.
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> RI <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> RI <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> poids <SEP> faible <SEP> du
<tb> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> DIV
<tb> Unsigned <SEP> DIVide-Division <SEP> non <SEP> signée
<tb> Syntaxe <SEP> : <SEP> DIV <SEP> Rd, <SEP> Rs, <SEP> ZNT
<tb> Description <SEP> : <SEP> Divise <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> RI <SEP> par <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Le <SEP> reste <SEP> est
<tb> placé <SEP> dans <SEP> le <SEP> registre <SEP> RI-l <SEP> qui <SEP> précède <SEP> immédiatement <SEP> le <SEP> registre <SEP> destination <SEP> Rd. <SEP> Si <SEP> T
<tb> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> le <SEP> quotient <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd.
<tb>
Opération <SEP> : <SEP> Rtmp <SEP> # <SEP> Rd <SEP> div <SEP> Rs <SEP> ; <SEP> Rd-1 <SEP> (mod <SEP> 2048) <SEP> # <SEP> Rd <SEP> mod <SEP> Rs <SEP> ; <SEP> Si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné,
<tb> alors <SEP> Rd <SEP> - <SEP> Rtmp <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> la
<tb> valeur <SEP> du <SEP> quotient <SEP> de <SEP> la <SEP> division, <SEP> éventuellement <SEP> placé <SEP> dans <SEP> Rd. <SEP> En <SEP> cas <SEP> de <SEP> division <SEP> par <SEP> 0
<tb> (Rs <SEP> = <SEP> 0), <SEP> aucune <SEP> opération <SEP> n'est <SEP> effectuée.
<tb>
<tb> alors <SEP> Rd <SEP> - <SEP> Rtmp <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> la
<tb> valeur <SEP> du <SEP> quotient <SEP> de <SEP> la <SEP> division, <SEP> éventuellement <SEP> placé <SEP> dans <SEP> Rd. <SEP> En <SEP> cas <SEP> de <SEP> division <SEP> par <SEP> 0
<tb> (Rs <SEP> = <SEP> 0), <SEP> aucune <SEP> opération <SEP> n'est <SEP> effectuée.
<tb>
Codage <SEP> : <SEP> 101Olddddddddddd <SEP> fxxexsssssssssss
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> RI <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> quotient
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
Les opérations logiques
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> RI <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> quotient
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
Les opérations logiques
<tb>
<tb> AND
<tb> Logical <SEP> AND-ET <SEP> logique
<tb> Syntaxe <SEP> : <SEP> AND <SEP> Rd, <SEP> Rs, <SEP> ZNT
<tb>
<tb> AND
<tb> Logical <SEP> AND-ET <SEP> logique
<tb> Syntaxe <SEP> : <SEP> AND <SEP> Rd, <SEP> Rs, <SEP> ZNT
<tb>
<Desc/Clms Page number 19>
<tb>
<tb> Description <SEP> : <SEP> Effectue <SEP> le <SEP> ET <SEP> logique <SEP> bit <SEP> à <SEP> bit <SEP> entre <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> et <SEP> le
<tb> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd <SEP> si <SEP> T <SEP> n'est <SEP> pas
<tb> mentionné.
<tb>
<tb> Description <SEP> : <SEP> Effectue <SEP> le <SEP> ET <SEP> logique <SEP> bit <SEP> à <SEP> bit <SEP> entre <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> et <SEP> le
<tb> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd <SEP> si <SEP> T <SEP> n'est <SEP> pas
<tb> mentionné.
<tb>
Opération <SEP> : <SEP> Rtmp <SEP> v <SEP> Rd <SEP> ET <SEP> logique <SEP> Rs <SEP> ; <SEP> Si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> Rd <SEP> < -Rtmp <SEP> ; <SEP> les
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> du <SEP> ET <SEP> logique.
<tb>
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> du <SEP> ET <SEP> logique.
<tb>
Codage <SEP> : <SEP> l0ll0ddddddddddd <SEP> fxxexsssssssssss
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> OR
<tb> Logical <SEP> OR-OU <SEP> logique
<tb> Syntaxe <SEP> : <SEP> OR <SEP> Rd, <SEP> Rs, <SEP> ZNT
<tb> Description <SEP> : <SEP> Effectue <SEP> le <SEP> OU <SEP> logique <SEP> inclusif <SEP> bit <SEP> à <SEP> bit <SEP> entre <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> et
<tb> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd <SEP> si <SEP> T <SEP> n'est
<tb> pas <SEP> mentionné.
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> OR
<tb> Logical <SEP> OR-OU <SEP> logique
<tb> Syntaxe <SEP> : <SEP> OR <SEP> Rd, <SEP> Rs, <SEP> ZNT
<tb> Description <SEP> : <SEP> Effectue <SEP> le <SEP> OU <SEP> logique <SEP> inclusif <SEP> bit <SEP> à <SEP> bit <SEP> entre <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> et
<tb> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd <SEP> si <SEP> T <SEP> n'est
<tb> pas <SEP> mentionné.
<tb>
Opération <SEP> : <SEP> Rtmp <SEP> v <SEP> Rd <SEP> OU <SEP> logique <SEP> Rs <SEP> ; <SEP> Si <SEP> T <SEP> n'est <SEP> pas <SEP> mentionné, <SEP> alors <SEP> Rd <SEP> < -Rtmp <SEP> ; <SEP> les
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> du <SEP> OU <SEP> logique.
<tb>
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> du <SEP> OU <SEP> logique.
<tb>
Codage <SEP> : <SEP> l0lllddddddddddd <SEP> fxxexsssssssssss
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb>
<Desc/Clms Page number 20>
<tb>
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> XOR
<tb> Logical <SEP> exclusive <SEP> OR-OU <SEP> logique <SEP> exclusif
<tb> Syntaxe <SEP> : <SEP> XOR <SEP> Rd, <SEP> Rs, <SEP> ZN
<tb> Description <SEP> : <SEP> Effectue <SEP> le <SEP> OU <SEP> logique <SEP> exclusif <SEP> bit <SEP> à <SEP> bit <SEP> entre <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> et
<tb> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd.
<tb>
<tb> e <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> le <SEP> registre <SEP> Rd <SEP> ne <SEP> reçoit <SEP> pas <SEP> le <SEP> résultat
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> XOR
<tb> Logical <SEP> exclusive <SEP> OR-OU <SEP> logique <SEP> exclusif
<tb> Syntaxe <SEP> : <SEP> XOR <SEP> Rd, <SEP> Rs, <SEP> ZN
<tb> Description <SEP> : <SEP> Effectue <SEP> le <SEP> OU <SEP> logique <SEP> exclusif <SEP> bit <SEP> à <SEP> bit <SEP> entre <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> et
<tb> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd.
<tb>
Opération <SEP> : <SEP> Rd <SEP> < -Rd <SEP> OU <SEP> logique <SEP> exclusif <SEP> Rs <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et
<tb> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> du <SEP> OU <SEP> logique <SEP> exclusif.
<tb>
<tb> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> du <SEP> OU <SEP> logique <SEP> exclusif.
<tb>
Codage <SEP> : <SEP> 11000ddddddddddd <SEP> fxxxxsssssssssss
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> ASR
<tb> Arithmetic <SEP> Shift <SEP> Right-Décalage <SEP> arithmétique <SEP> vers <SEP> la <SEP> droite
<tb> Syntaxe <SEP> : <SEP> ASR <SEP> Rd, <SEP> #imm, <SEP> ZNC
<tb> Description <SEP> : <SEP> Décale <SEP> vers <SEP> la <SEP> droite <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> du <SEP> nombre <SEP> de <SEP> bits <SEP> indiqué
<tb> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> A <SEP> chaque <SEP> décalage, <SEP> le <SEP> signe <SEP> de <SEP> la
<tb> valeur <SEP> décalée <SEP> reste <SEP> inchangé. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd. <SEP> En <SEP> cas
<tb> de <SEP> mise <SEP> à <SEP> jour, <SEP> l'indicateur <SEP> C <SEP> correspond <SEP> au <SEP> dernier <SEP> bit <SEP> sorti.
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> ASR
<tb> Arithmetic <SEP> Shift <SEP> Right-Décalage <SEP> arithmétique <SEP> vers <SEP> la <SEP> droite
<tb> Syntaxe <SEP> : <SEP> ASR <SEP> Rd, <SEP> #imm, <SEP> ZNC
<tb> Description <SEP> : <SEP> Décale <SEP> vers <SEP> la <SEP> droite <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> du <SEP> nombre <SEP> de <SEP> bits <SEP> indiqué
<tb> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> A <SEP> chaque <SEP> décalage, <SEP> le <SEP> signe <SEP> de <SEP> la
<tb> valeur <SEP> décalée <SEP> reste <SEP> inchangé. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd. <SEP> En <SEP> cas
<tb> de <SEP> mise <SEP> à <SEP> jour, <SEP> l'indicateur <SEP> C <SEP> correspond <SEP> au <SEP> dernier <SEP> bit <SEP> sorti.
<tb>
Opération <SEP> : <SEP> Rd <SEP> < -Rd <SEP> décalé <SEP> à <SEP> droite <SEP> de <SEP> imm <SEP> bits, <SEP> le <SEP> bit <SEP> de <SEP> poids <SEP> fort <SEP> restant <SEP> inchangé <SEP> à
<tb> chaque <SEP> décalage <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> selon <SEP> le <SEP> résultat <SEP> du <SEP> dernier <SEP> décalage.
<tb>
<tb> chaque <SEP> décalage <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> selon <SEP> le <SEP> résultat <SEP> du <SEP> dernier <SEP> décalage.
<tb>
<Desc/Clms Page number 21>
<tb>
<tb>
<tb>
Codage <SEP> : <SEP> 110 <SEP> 0 <SEP> 1ddddddddddd <SEP> fxcxxxxxxxxxvvvv
<tb> vow <SEP> : <SEP> nombre <SEP> de <SEP> décalages <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> LSL
<tb> Logical <SEP> Shift <SEP> Left-Décalage <SEP> logique <SEP> vers <SEP> la <SEP> gauche
<tb> Syntaxe <SEP> : <SEP> LSL <SEP> Rd, <SEP> #imm, <SEP> ZNOC
<tb> Description <SEP> : <SEP> Décale <SEP> vers <SEP> la <SEP> gauche <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> du <SEP> nombre <SEP> de <SEP> bits <SEP> indiqué
<tb> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le
<tb> registre <SEP> destination <SEP> Rd. <SEP> En <SEP> cas <SEP> de <SEP> mise <SEP> à <SEP> jour, <SEP> l'indicateur <SEP> C <SEP> correspond <SEP> au <SEP> dernier <SEP> bit
<tb> sorti.
<tb>
<tb> vow <SEP> : <SEP> nombre <SEP> de <SEP> décalages <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> LSL
<tb> Logical <SEP> Shift <SEP> Left-Décalage <SEP> logique <SEP> vers <SEP> la <SEP> gauche
<tb> Syntaxe <SEP> : <SEP> LSL <SEP> Rd, <SEP> #imm, <SEP> ZNOC
<tb> Description <SEP> : <SEP> Décale <SEP> vers <SEP> la <SEP> gauche <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> du <SEP> nombre <SEP> de <SEP> bits <SEP> indiqué
<tb> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le
<tb> registre <SEP> destination <SEP> Rd. <SEP> En <SEP> cas <SEP> de <SEP> mise <SEP> à <SEP> jour, <SEP> l'indicateur <SEP> C <SEP> correspond <SEP> au <SEP> dernier <SEP> bit
<tb> sorti.
<tb>
Opération <SEP> : <SEP> Rd <SEP> e <SEP> Rd <SEP> décalé <SEP> à <SEP> gauche <SEP> de <SEP> imm <SEP> bits <SEP> ; <SEP> les <SEP> bits <SEP> entrant <SEP> sont <SEP> mis <SEP> à <SEP> 0 <SEP> ; <SEP> les
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le
<tb> résultat <SEP> du <SEP> dernier <SEP> décalage.
<tb>
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le
<tb> résultat <SEP> du <SEP> dernier <SEP> décalage.
<tb>
Codage <SEP> : <SEP> 11010ddddddddddd <SEP> focxxxxxxxxxvvvv
<tb> vw <SEP> : <SEP> nombre <SEP> de <SEP> décalages <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
<tb> vw <SEP> : <SEP> nombre <SEP> de <SEP> décalages <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
<Desc/Clms Page number 22>
<tb>
<tb> LSR
<tb> Logical <SEP> Shift <SEP> Right-Décalage <SEP> logique <SEP> vers <SEP> la <SEP> droite
<tb> Syntaxe <SEP> : <SEP> LSR <SEP> Rd, <SEP> #imm, <SEP> ZNOC
<tb> Description <SEP> : <SEP> Décale <SEP> vers <SEP> la <SEP> droite <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> du <SEP> nombre <SEP> de <SEP> bits <SEP> indiqué
<tb> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le
<tb> registre <SEP> destination <SEP> Rd. <SEP> En <SEP> cas <SEP> de <SEP> mise <SEP> à <SEP> jour, <SEP> l'indicateur <SEP> C <SEP> correspond <SEP> au <SEP> dernier <SEP> bit
<tb> sorti.
<tb>
<tb> LSR
<tb> Logical <SEP> Shift <SEP> Right-Décalage <SEP> logique <SEP> vers <SEP> la <SEP> droite
<tb> Syntaxe <SEP> : <SEP> LSR <SEP> Rd, <SEP> #imm, <SEP> ZNOC
<tb> Description <SEP> : <SEP> Décale <SEP> vers <SEP> la <SEP> droite <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> du <SEP> nombre <SEP> de <SEP> bits <SEP> indiqué
<tb> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le
<tb> registre <SEP> destination <SEP> Rd. <SEP> En <SEP> cas <SEP> de <SEP> mise <SEP> à <SEP> jour, <SEP> l'indicateur <SEP> C <SEP> correspond <SEP> au <SEP> dernier <SEP> bit
<tb> sorti.
<tb>
Opération <SEP> : <SEP> Rd <SEP> < -Rd <SEP> décalé <SEP> à <SEP> droite <SEP> de <SEP> imm <SEP> bits <SEP> ; <SEP> les <SEP> bits <SEP> entrant <SEP> sont <SEP> mis <SEP> à <SEP> 0 <SEP> ; <SEP> les
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le
<tb> résultat <SEP> du <SEP> dernier <SEP> décalage.
<tb>
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le
<tb> résultat <SEP> du <SEP> dernier <SEP> décalage.
<tb>
Codage <SEP> : <SEP> HOUddddddddddd <SEP> foexxxxxxxxxvvvv
<tb> vwv <SEP> : <SEP> nombre <SEP> de <SEP> décalages <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> ROL
<tb> ROtate <SEP> Left-Rotation <SEP> logique <SEP> vers <SEP> la <SEP> gauche
<tb> Syntaxe <SEP> : <SEP> ROL <SEP> Rd, <SEP> #imm, <SEP> ZNC
<tb> Description <SEP> : <SEP> Rotation <SEP> vers <SEP> la <SEP> gauche <SEP> du <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> du <SEP> nombre <SEP> de <SEP> bits
<tb> indiqué <SEP> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans
<tb> le <SEP> registre <SEP> destination <SEP> Rd. <SEP> En <SEP> cas <SEP> de <SEP> mise <SEP> à <SEP> jour, <SEP> l'indicateur <SEP> C <SEP> correspond <SEP> au <SEP> bit <SEP> de
<tb> poids <SEP> faible <SEP> du <SEP> résultat.
<tb>
<tb> vwv <SEP> : <SEP> nombre <SEP> de <SEP> décalages <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> ROL
<tb> ROtate <SEP> Left-Rotation <SEP> logique <SEP> vers <SEP> la <SEP> gauche
<tb> Syntaxe <SEP> : <SEP> ROL <SEP> Rd, <SEP> #imm, <SEP> ZNC
<tb> Description <SEP> : <SEP> Rotation <SEP> vers <SEP> la <SEP> gauche <SEP> du <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> du <SEP> nombre <SEP> de <SEP> bits
<tb> indiqué <SEP> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans
<tb> le <SEP> registre <SEP> destination <SEP> Rd. <SEP> En <SEP> cas <SEP> de <SEP> mise <SEP> à <SEP> jour, <SEP> l'indicateur <SEP> C <SEP> correspond <SEP> au <SEP> bit <SEP> de
<tb> poids <SEP> faible <SEP> du <SEP> résultat.
<tb>
Opération <SEP> : <SEP> Rd <SEP> v <SEP> Rotation <SEP> de <SEP> Rd <SEP> de <SEP> imm <SEP> bits <SEP> vers <SEP> la <SEP> gauche <SEP> ; <SEP> les <SEP> indicateurs
<tb>
<tb>
<Desc/Clms Page number 23>
<tb>
<tb> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de <SEP> la <SEP> dernière
<tb> rotation.
<tb>
<tb> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de <SEP> la <SEP> dernière
<tb> rotation.
<tb>
Codage <SEP> : <SEP> 11100ddddddddddd <SEP> fxcxxxxxxxxxvvvv
<tb> vow <SEP> : <SEP> nombre <SEP> de <SEP> rotations <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> ROR
<tb> ROtate <SEP> Right-Rotation <SEP> logique <SEP> vers <SEP> la <SEP> droite
<tb> Syntaxe <SEP> : <SEP> ROR <SEP> Rd, <SEP> #imm, <SEP> ZNC
<tb> Description <SEP> : <SEP> Rotation <SEP> vers <SEP> la <SEP> droite <SEP> du <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> du <SEP> nombre <SEP> de <SEP> bits
<tb> indiqué <SEP> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans
<tb> le <SEP> registre <SEP> destination <SEP> Rd. <SEP> En <SEP> cas <SEP> de <SEP> mise <SEP> à <SEP> jour, <SEP> l'indicateur <SEP> C <SEP> correspond <SEP> au <SEP> bit <SEP> de
<tb> poids <SEP> fort <SEP> du <SEP> résultat.
<tb>
<tb> vow <SEP> : <SEP> nombre <SEP> de <SEP> rotations <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> ROR
<tb> ROtate <SEP> Right-Rotation <SEP> logique <SEP> vers <SEP> la <SEP> droite
<tb> Syntaxe <SEP> : <SEP> ROR <SEP> Rd, <SEP> #imm, <SEP> ZNC
<tb> Description <SEP> : <SEP> Rotation <SEP> vers <SEP> la <SEP> droite <SEP> du <SEP> contenu <SEP> du <SEP> registre <SEP> Rd <SEP> du <SEP> nombre <SEP> de <SEP> bits
<tb> indiqué <SEP> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans
<tb> le <SEP> registre <SEP> destination <SEP> Rd. <SEP> En <SEP> cas <SEP> de <SEP> mise <SEP> à <SEP> jour, <SEP> l'indicateur <SEP> C <SEP> correspond <SEP> au <SEP> bit <SEP> de
<tb> poids <SEP> fort <SEP> du <SEP> résultat.
<tb>
Opération <SEP> : <SEP> Rd <SEP> < -Rotation <SEP> de <SEP> Rd <SEP> de <SEP> imm <SEP> bits <SEP> vers <SEP> la <SEP> droite <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés
<tb> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de <SEP> la <SEP> dernière <SEP> rotation.
<tb>
<tb> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de <SEP> la <SEP> dernière <SEP> rotation.
<tb>
Codage <SEP> : <SEP> 111 <SEP> 0 <SEP> 1ddddddddddd <SEP> fxcxxxxxxxxxvvvv
<tb> vw <SEP> : <SEP> nombre <SEP> de <SEP> rotations <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
<tb> vw <SEP> : <SEP> nombre <SEP> de <SEP> rotations <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
<Desc/Clms Page number 24>
<tb>
<tb> RCL
<tb> Rotate <SEP> with <SEP> Carry <SEP> Left-Rotation <SEP> logique <SEP> avec <SEP> la <SEP> retenue <SEP> vers <SEP> la <SEP> gauche
<tb> Syntaxe <SEP> : <SEP> RCL <SEP> Rd, <SEP> #imm, <SEP> ZNC
<tb> Description <SEP> : <SEP> Rotation <SEP> vers <SEP> la <SEP> gauche <SEP> du <SEP> contenu <SEP> du <SEP> registre <SEP> Rd, <SEP> ainsi <SEP> que <SEP> de <SEP> la <SEP> retenue,
<tb> du <SEP> nombre <SEP> de <SEP> bits <SEP> indiqué <SEP> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> En <SEP> cas
<tb> de <SEP> mise <SEP> à <SEP> jour <SEP> de <SEP> la <SEP> retenue, <SEP> chaque <SEP> bit <SEP> sortant <SEP> par <SEP> la <SEP> gauche <SEP> du <SEP> registre <SEP> Rd <SEP> est <SEP> placé
<tb> dans <SEP> la <SEP> retenue. <SEP> Dans <SEP> tous <SEP> les <SEP> cas, <SEP> le <SEP> précédent <SEP> contenu <SEP> de <SEP> la <SEP> retenue <SEP> entre <SEP> par <SEP> la <SEP> droite
<tb> du <SEP> registre <SEP> Rd. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Ri.
<tb>
<tb> RCL
<tb> Rotate <SEP> with <SEP> Carry <SEP> Left-Rotation <SEP> logique <SEP> avec <SEP> la <SEP> retenue <SEP> vers <SEP> la <SEP> gauche
<tb> Syntaxe <SEP> : <SEP> RCL <SEP> Rd, <SEP> #imm, <SEP> ZNC
<tb> Description <SEP> : <SEP> Rotation <SEP> vers <SEP> la <SEP> gauche <SEP> du <SEP> contenu <SEP> du <SEP> registre <SEP> Rd, <SEP> ainsi <SEP> que <SEP> de <SEP> la <SEP> retenue,
<tb> du <SEP> nombre <SEP> de <SEP> bits <SEP> indiqué <SEP> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> En <SEP> cas
<tb> de <SEP> mise <SEP> à <SEP> jour <SEP> de <SEP> la <SEP> retenue, <SEP> chaque <SEP> bit <SEP> sortant <SEP> par <SEP> la <SEP> gauche <SEP> du <SEP> registre <SEP> Rd <SEP> est <SEP> placé
<tb> dans <SEP> la <SEP> retenue. <SEP> Dans <SEP> tous <SEP> les <SEP> cas, <SEP> le <SEP> précédent <SEP> contenu <SEP> de <SEP> la <SEP> retenue <SEP> entre <SEP> par <SEP> la <SEP> droite
<tb> du <SEP> registre <SEP> Rd. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Ri.
<tb>
Opération <SEP> : <SEP> Rd <SEP> : <SEP> C <SEP> v <SEP> Rotation <SEP> de <SEP> Ri <SEP> : <SEP> C <SEP> de <SEP> imm <SEP> bits <SEP> vers <SEP> la <SEP> gauche <SEP> (ou <SEP> bien, <SEP> si
<tb> l'indicateur <SEP> n'est <SEP> pas <SEP> mis <SEP> à <SEP> jour, <SEP> RJ <SEP> < -Rd <SEP> décalé <SEP> de <SEP> imm <SEP> bits <SEP> vers <SEP> la <SEP> gauche, <SEP> les <SEP> bits
<tb> entrant <SEP> ayant <SEP> même <SEP> valeur <SEP> que <SEP> l'indicateur <SEP> C) <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et
<tb> N, <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de <SEP> la <SEP> dernière <SEP> rotation.
<tb>
<tb> l'indicateur <SEP> n'est <SEP> pas <SEP> mis <SEP> à <SEP> jour, <SEP> RJ <SEP> < -Rd <SEP> décalé <SEP> de <SEP> imm <SEP> bits <SEP> vers <SEP> la <SEP> gauche, <SEP> les <SEP> bits
<tb> entrant <SEP> ayant <SEP> même <SEP> valeur <SEP> que <SEP> l'indicateur <SEP> C) <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et
<tb> N, <SEP> c <SEP> pour <SEP> C) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de <SEP> la <SEP> dernière <SEP> rotation.
<tb>
Codage <SEP> : <SEP> llllOddddddddddd <SEP> fxcxxxxxxxxxvvvv
<tb> vow <SEP> : <SEP> nombre <SEP> de <SEP> rotations <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> RCR
<tb> Rotate <SEP> with <SEP> Carry <SEP> Right-Rotation <SEP> logique <SEP> avec <SEP> la <SEP> retenue <SEP> vers <SEP> la <SEP> droite
<tb> Syntaxe <SEP> : <SEP> RCR <SEP> Rd, <SEP> #imm, <SEP> ZNC
<tb> Description <SEP> : <SEP> Rotation <SEP> vers <SEP> la <SEP> droite <SEP> du <SEP> contenu <SEP> du <SEP> registre <SEP> Rd, <SEP> ainsi <SEP> que <SEP> de <SEP> la <SEP> retenue,
<tb> du <SEP> nombre <SEP> de <SEP> bits <SEP> indiqué <SEP> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> En <SEP> cas
<tb> de <SEP> rafraîchissement <SEP> de <SEP> la <SEP> retenue, <SEP> chaque <SEP> bit <SEP> sortant <SEP> par <SEP> la <SEP> droite <SEP> du <SEP> registre <SEP> Rd <SEP> est <SEP> placé
<tb> dans <SEP> la <SEP> retenue. <SEP> Dans <SEP> tous <SEP> les <SEP> cas, <SEP> le <SEP> précédent <SEP> contenu <SEP> de <SEP> la <SEP> retenue <SEP> entre <SEP> par <SEP> la <SEP> gauche
<tb> du <SEP> registre <SEP> Rd. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd.
<tb>
<tb> vow <SEP> : <SEP> nombre <SEP> de <SEP> rotations <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> RCR
<tb> Rotate <SEP> with <SEP> Carry <SEP> Right-Rotation <SEP> logique <SEP> avec <SEP> la <SEP> retenue <SEP> vers <SEP> la <SEP> droite
<tb> Syntaxe <SEP> : <SEP> RCR <SEP> Rd, <SEP> #imm, <SEP> ZNC
<tb> Description <SEP> : <SEP> Rotation <SEP> vers <SEP> la <SEP> droite <SEP> du <SEP> contenu <SEP> du <SEP> registre <SEP> Rd, <SEP> ainsi <SEP> que <SEP> de <SEP> la <SEP> retenue,
<tb> du <SEP> nombre <SEP> de <SEP> bits <SEP> indiqué <SEP> par <SEP> la <SEP> valeur <SEP> immédiate <SEP> imm, <SEP> comprise <SEP> entre <SEP> 0 <SEP> et <SEP> 15. <SEP> En <SEP> cas
<tb> de <SEP> rafraîchissement <SEP> de <SEP> la <SEP> retenue, <SEP> chaque <SEP> bit <SEP> sortant <SEP> par <SEP> la <SEP> droite <SEP> du <SEP> registre <SEP> Rd <SEP> est <SEP> placé
<tb> dans <SEP> la <SEP> retenue. <SEP> Dans <SEP> tous <SEP> les <SEP> cas, <SEP> le <SEP> précédent <SEP> contenu <SEP> de <SEP> la <SEP> retenue <SEP> entre <SEP> par <SEP> la <SEP> gauche
<tb> du <SEP> registre <SEP> Rd. <SEP> Le <SEP> résultat <SEP> est <SEP> placé <SEP> dans <SEP> le <SEP> registre <SEP> destination <SEP> Rd.
<tb>
<Desc/Clms Page number 25>
<tb>
<tb>
<tb>
Opération <SEP> : <SEP> C <SEP> : <SEP> Rd <SEP> v <SEP> Rotation <SEP> de <SEP> C <SEP> : <SEP> Rd <SEP> de <SEP> imm <SEP> bits <SEP> vers <SEP> la <SEP> droite <SEP> (ou <SEP> bien, <SEP> si <SEP> l'indicateur
<tb> n'est <SEP> pas <SEP> mis <SEP> à <SEP> jour, <SEP> Ri <SEP> v <SEP> Rd <SEP> décalé <SEP> de <SEP> imm <SEP> bits <SEP> vers <SEP> la <SEP> droite, <SEP> les <SEP> bits <SEP> entrant <SEP> ayant
<tb> même <SEP> valeur <SEP> que <SEP> l'indicateur <SEP> C) <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> c <SEP> pour <SEP> C)
<tb> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de <SEP> la <SEP> dernière <SEP> rotation.
<tb>
<tb> n'est <SEP> pas <SEP> mis <SEP> à <SEP> jour, <SEP> Ri <SEP> v <SEP> Rd <SEP> décalé <SEP> de <SEP> imm <SEP> bits <SEP> vers <SEP> la <SEP> droite, <SEP> les <SEP> bits <SEP> entrant <SEP> ayant
<tb> même <SEP> valeur <SEP> que <SEP> l'indicateur <SEP> C) <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> c <SEP> pour <SEP> C)
<tb> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> le <SEP> résultat <SEP> de <SEP> la <SEP> dernière <SEP> rotation.
<tb>
Codage <SEP> : <SEP> lllllddddddddddd <SEP> fxcxxxxxxxxxvvvv
<tb> vvvv <SEP> : <SEP> nombre <SEP> de <SEP> rotations <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
Les opérations de transfert
<tb> vvvv <SEP> : <SEP> nombre <SEP> de <SEP> rotations <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 15
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
Les opérations de transfert
<tb>
<tb> MOVE
<tb> MOVE <SEP> register-Copie <SEP> d'un <SEP> registre
<tb> Syntaxe <SEP> : <SEP> MOVE <SEP> Rd, <SEP> Rs, <SEP> ZNOC
<tb> Description <SEP> : <SEP> Copie <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs <SEP> dans <SEP> le <SEP> registre <SEP> Rd.
<tb>
<tb> MOVE
<tb> MOVE <SEP> register-Copie <SEP> d'un <SEP> registre
<tb> Syntaxe <SEP> : <SEP> MOVE <SEP> Rd, <SEP> Rs, <SEP> ZNOC
<tb> Description <SEP> : <SEP> Copie <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs <SEP> dans <SEP> le <SEP> registre <SEP> Rd.
<tb>
Opération <SEP> : <SEP> Rd <SEP> < -Rs <SEP> ; <SEP> les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N, <SEP> o <SEP> pour <SEP> 0, <SEP> et <SEP> c <SEP> pour <SEP> C)
<tb> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> la <SEP> valeur <SEP> de <SEP> Rs <SEP> en <SEP> ce <SEP> qui <SEP> concerne <SEP> Z <SEP> et <SEP> N, <SEP> et <SEP> sont <SEP> mis <SEP> à <SEP> 0 <SEP> en <SEP> ce <SEP> qui
<tb> concerne <SEP> 0 <SEP> et <SEP> C.
<tb>
<tb> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> la <SEP> valeur <SEP> de <SEP> Rs <SEP> en <SEP> ce <SEP> qui <SEP> concerne <SEP> Z <SEP> et <SEP> N, <SEP> et <SEP> sont <SEP> mis <SEP> à <SEP> 0 <SEP> en <SEP> ce <SEP> qui
<tb> concerne <SEP> 0 <SEP> et <SEP> C.
<tb>
Codage <SEP> : <SEP> OOOOOddddddddddd <SEP> focxxsssssssssss
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> RI <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> 0
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> 0
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> RI <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> o <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> 0 <SEP> est <SEP> mis <SEP> à <SEP> 0
<tb> c <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> l'indicateur <SEP> C <SEP> est <SEP> mis <SEP> à <SEP> 0
<tb>
<Desc/Clms Page number 26>
<tb>
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente <SEP> 1
<tb> LDI
<tb> LoaD <SEP> Immediate <SEP> into <SEP> register-Chargement <SEP> d'une <SEP> valeur <SEP> immédiate <SEP> dans <SEP> un <SEP> registre
<tb> Syntaxe <SEP> : <SEP> LDI <SEP> Rd, <SEP> #imm
<tb> Description <SEP> : <SEP> Charge <SEP> dans <SEP> le <SEP> registre <SEP> Rd <SEP> une <SEP> valeur <SEP> immédiate <SEP> imm <SEP> 16 <SEP> bits.
<tb>
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente <SEP> 1
<tb> LDI
<tb> LoaD <SEP> Immediate <SEP> into <SEP> register-Chargement <SEP> d'une <SEP> valeur <SEP> immédiate <SEP> dans <SEP> un <SEP> registre
<tb> Syntaxe <SEP> : <SEP> LDI <SEP> Rd, <SEP> #imm
<tb> Description <SEP> : <SEP> Charge <SEP> dans <SEP> le <SEP> registre <SEP> Rd <SEP> une <SEP> valeur <SEP> immédiate <SEP> imm <SEP> 16 <SEP> bits.
<tb>
Opération <SEP> : <SEP> Rd <SEP> e <SEP> valeur <SEP> immédiate <SEP> imm <SEP> sur <SEP> 16 <SEP> bits <SEP> ; <SEP> les <SEP> indicateurs <SEP> ne <SEP> sont <SEP> jamais
<tb> affectés.
<tb>
<tb> affectés.
<tb>
Codage <SEP> : <SEP> OOOOlddddddddddd <SEP> vvvvvvvvvvvvvvv
<tb> wwvwwwwvvv <SEP> : <SEP> valeur <SEP> immédiate <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 65535 <SEP> (ou <SEP> entre-32768
<tb> et <SEP> +32767)
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> PPC
<tb> Program <SEP> Page <SEP> Copy-Copie <SEP> d'une <SEP> page <SEP> de <SEP> programme
<tb> Syntaxe <SEP> : <SEP> PPC <SEP> Rb, <SEP> I
<tb> Description <SEP> : <SEP> Copie <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> données <SEP> désignée <SEP> par <SEP> MBR, <SEP> dont <SEP> les <SEP> 13 <SEP> bits <SEP> de
<tb> poids <SEP> faible <SEP> sont <SEP> considérés <SEP> comme <SEP> nuls, <SEP> vers <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> programmes <SEP> dont <SEP> le
<tb> numéro <SEP> relatif <SEP> à <SEP> la <SEP> page <SEP> couramment <SEP> exécutée <SEP> est <SEP> indiqué <SEP> dans <SEP> le <SEP> registre <SEP> Rb. <SEP> Si <SEP> la <SEP> page
<tb> de <SEP> mémoire <SEP> programmes <SEP> désignée <SEP> est <SEP> invalide, <SEP> ou <SEP> bien <SEP> si <SEP> elle <SEP> est <SEP> correspond <SEP> à <SEP> la <SEP> page
<tb> en <SEP> cours <SEP> d'exécution <SEP> (Rb <SEP> = <SEP> 0), <SEP> alors <SEP> l'exception <SEP> est <SEP> déclenchée. <SEP> Si <SEP> l'indicateur <SEP> 1 <SEP> est
<tb> mentionné, <SEP> alors <SEP> les <SEP> programmes <SEP> situés <SEP> dans <SEP> la <SEP> page <SEP> destination <SEP> seront <SEP> interruptibles,
<tb> sinon <SEP> aucune <SEP> interruption <SEP> ne <SEP> pourra <SEP> intervenir <SEP> lors <SEP> de <SEP> l'exécution <SEP> de <SEP> ces <SEP> programmes.
<tb> Opération <SEP> : <SEP> Tous <SEP> les <SEP> mots <SEP> de <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> données <SEP> désignée <SEP> par <SEP> les <SEP> bits <SEP> de <SEP> poids
<tb> fort <SEP> de <SEP> MBR <SEP> (à <SEP> partir <SEP> du <SEP> bit <SEP> numéro <SEP> 13) <SEP> sont <SEP> copiés <SEP> vers <SEP> la <SEP> page <SEP> de <SEP> mémoire
<tb> programmes <SEP> indiquée. <SEP> Si <SEP> cette <SEP> page <SEP> est <SEP> invalide <SEP> ou <SEP> en <SEP> cours <SEP> d'exécution, <SEP> alors
<tb>
<tb> wwvwwwwvvv <SEP> : <SEP> valeur <SEP> immédiate <SEP> imm <SEP> entre <SEP> 0 <SEP> et <SEP> 65535 <SEP> (ou <SEP> entre-32768
<tb> et <SEP> +32767)
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> PPC
<tb> Program <SEP> Page <SEP> Copy-Copie <SEP> d'une <SEP> page <SEP> de <SEP> programme
<tb> Syntaxe <SEP> : <SEP> PPC <SEP> Rb, <SEP> I
<tb> Description <SEP> : <SEP> Copie <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> données <SEP> désignée <SEP> par <SEP> MBR, <SEP> dont <SEP> les <SEP> 13 <SEP> bits <SEP> de
<tb> poids <SEP> faible <SEP> sont <SEP> considérés <SEP> comme <SEP> nuls, <SEP> vers <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> programmes <SEP> dont <SEP> le
<tb> numéro <SEP> relatif <SEP> à <SEP> la <SEP> page <SEP> couramment <SEP> exécutée <SEP> est <SEP> indiqué <SEP> dans <SEP> le <SEP> registre <SEP> Rb. <SEP> Si <SEP> la <SEP> page
<tb> de <SEP> mémoire <SEP> programmes <SEP> désignée <SEP> est <SEP> invalide, <SEP> ou <SEP> bien <SEP> si <SEP> elle <SEP> est <SEP> correspond <SEP> à <SEP> la <SEP> page
<tb> en <SEP> cours <SEP> d'exécution <SEP> (Rb <SEP> = <SEP> 0), <SEP> alors <SEP> l'exception <SEP> est <SEP> déclenchée. <SEP> Si <SEP> l'indicateur <SEP> 1 <SEP> est
<tb> mentionné, <SEP> alors <SEP> les <SEP> programmes <SEP> situés <SEP> dans <SEP> la <SEP> page <SEP> destination <SEP> seront <SEP> interruptibles,
<tb> sinon <SEP> aucune <SEP> interruption <SEP> ne <SEP> pourra <SEP> intervenir <SEP> lors <SEP> de <SEP> l'exécution <SEP> de <SEP> ces <SEP> programmes.
<tb> Opération <SEP> : <SEP> Tous <SEP> les <SEP> mots <SEP> de <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> données <SEP> désignée <SEP> par <SEP> les <SEP> bits <SEP> de <SEP> poids
<tb> fort <SEP> de <SEP> MBR <SEP> (à <SEP> partir <SEP> du <SEP> bit <SEP> numéro <SEP> 13) <SEP> sont <SEP> copiés <SEP> vers <SEP> la <SEP> page <SEP> de <SEP> mémoire
<tb> programmes <SEP> indiquée. <SEP> Si <SEP> cette <SEP> page <SEP> est <SEP> invalide <SEP> ou <SEP> en <SEP> cours <SEP> d'exécution, <SEP> alors
<tb>
<Desc/Clms Page number 27>
<tb>
<tb> l'exception <SEP> est <SEP> déclenchée. <SEP> Les <SEP> données <SEP> copiées <SEP> dans <SEP> la <SEP> mémoire <SEP> programmes <SEP> sont
<tb> prêtes <SEP> à <SEP> être <SEP> exécutées. <SEP> Le <SEP> numéro <SEP> de <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> programme <SEP> cible <SEP> de <SEP> la <SEP> copie
<tb> est <SEP> égal <SEP> à <SEP> PP <SEP> + <SEP> (Rb <SEP> étendu <SEP> par <SEP> son <SEP> signe).
<tb>
<tb> l'exception <SEP> est <SEP> déclenchée. <SEP> Les <SEP> données <SEP> copiées <SEP> dans <SEP> la <SEP> mémoire <SEP> programmes <SEP> sont
<tb> prêtes <SEP> à <SEP> être <SEP> exécutées. <SEP> Le <SEP> numéro <SEP> de <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> programme <SEP> cible <SEP> de <SEP> la <SEP> copie
<tb> est <SEP> égal <SEP> à <SEP> PP <SEP> + <SEP> (Rb <SEP> étendu <SEP> par <SEP> son <SEP> signe).
<tb>
Codage <SEP> : <SEP> OOOlObbbbbbbbbbb <SEP> xxxxixxxxxxxxxxx
<tb> bbbbbbbbbbb <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rb <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> i <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> interruptions <SEP> seront <SEP> autorisée <SEP> pendant
<tb> l'exécution <SEP> du
<tb> programme <SEP> contenu <SEP> dans <SEP> la <SEP> page <SEP> copiée
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> LDR
<tb> LoaD <SEP> Register-Chargement <SEP> d'un <SEP> registre <SEP> depuis <SEP> la <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> LDR <SEP> Rd, <SEP> & masque <SEP> d'adresse, <SEP> ZN
<tb> Description <SEP> : <SEP> Charge <SEP> dans <SEP> le <SEP> registre <SEP> Rd <SEP> le <SEP> mot <SEP> situé <SEP> en <SEP> mémoire <SEP> données <SEP> à <SEP> l'adresse
<tb> résultant <SEP> de <SEP> la <SEP> combinaison <SEP> entre <SEP> MBR <SEP> et <SEP> le <SEP> masque <SEP> d'adresse.
<tb>
<tb> bbbbbbbbbbb <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rb <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> i <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> interruptions <SEP> seront <SEP> autorisée <SEP> pendant
<tb> l'exécution <SEP> du
<tb> programme <SEP> contenu <SEP> dans <SEP> la <SEP> page <SEP> copiée
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> LDR
<tb> LoaD <SEP> Register-Chargement <SEP> d'un <SEP> registre <SEP> depuis <SEP> la <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> LDR <SEP> Rd, <SEP> & masque <SEP> d'adresse, <SEP> ZN
<tb> Description <SEP> : <SEP> Charge <SEP> dans <SEP> le <SEP> registre <SEP> Rd <SEP> le <SEP> mot <SEP> situé <SEP> en <SEP> mémoire <SEP> données <SEP> à <SEP> l'adresse
<tb> résultant <SEP> de <SEP> la <SEP> combinaison <SEP> entre <SEP> MBR <SEP> et <SEP> le <SEP> masque <SEP> d'adresse.
<tb>
Opération <SEP> : <SEP> Rd <SEP> v <SEP> contenu <SEP> de <SEP> la <SEP> mémoire <SEP> pointée <SEP> par <SEP> MBR, <SEP> registre <SEP> dont <SEP> les <SEP> 13 <SEP> bits <SEP> de
<tb> poids <SEP> faible <SEP> sont <SEP> combinés <SEP> par <SEP> un <SEP> ET <SEP> logique <SEP> avec <SEP> le <SEP> masque <SEP> d'adresse <SEP> ; <SEP> les <SEP> indicateurs
<tb> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> la <SEP> valeur <SEP> du <SEP> mot <SEP> chargé.
<tb>
<tb> poids <SEP> faible <SEP> sont <SEP> combinés <SEP> par <SEP> un <SEP> ET <SEP> logique <SEP> avec <SEP> le <SEP> masque <SEP> d'adresse <SEP> ; <SEP> les <SEP> indicateurs
<tb> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> la <SEP> valeur <SEP> du <SEP> mot <SEP> chargé.
<tb>
Codage <SEP> : <SEP> 001OOddddddddddd <SEP> fxxnumimmcnimmnmmmm
<tb> mmmmmmmmmmmmm <SEP> : <SEP> masque <SEP> d'adresse <SEP> sur <SEP> 13 <SEP> bits
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
<tb> mmmmmmmmmmmmm <SEP> : <SEP> masque <SEP> d'adresse <SEP> sur <SEP> 13 <SEP> bits
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rd <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
<Desc/Clms Page number 28>
<tb>
<tb> STR
<tb> STore <SEP> Register-Sauvegarde <SEP> d'un <SEP> registre <SEP> vers <SEP> la <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> STR <SEP> Rs, <SEP> & masque <SEP> d'adresse, <SEP> ZN
<tb> Description <SEP> : <SEP> Sauvegarde <SEP> le <SEP> registre <SEP> Rs <SEP> vers <SEP> l'adresse <SEP> de <SEP> mémoire <SEP> données <SEP> résultant <SEP> de
<tb> la <SEP> combinaison <SEP> entre <SEP> MBR <SEP> et <SEP> le <SEP> masque <SEP> d'adresse.
<tb>
<tb> STR
<tb> STore <SEP> Register-Sauvegarde <SEP> d'un <SEP> registre <SEP> vers <SEP> la <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> STR <SEP> Rs, <SEP> & masque <SEP> d'adresse, <SEP> ZN
<tb> Description <SEP> : <SEP> Sauvegarde <SEP> le <SEP> registre <SEP> Rs <SEP> vers <SEP> l'adresse <SEP> de <SEP> mémoire <SEP> données <SEP> résultant <SEP> de
<tb> la <SEP> combinaison <SEP> entre <SEP> MBR <SEP> et <SEP> le <SEP> masque <SEP> d'adresse.
<tb>
Opération <SEP> : <SEP> emplacement <SEP> de <SEP> la <SEP> mémoire <SEP> pointé <SEP> par <SEP> MBR, <SEP> registre <SEP> dont <SEP> les <SEP> 13 <SEP> bits <SEP> de
<tb> poids <SEP> faible <SEP> sont <SEP> combinés <SEP> par <SEP> un <SEP> ET <SEP> logique <SEP> avec <SEP> le <SEP> masque <SEP> d'adresse <SEP> < -Rs <SEP> ; <SEP> les
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> la <SEP> valeur <SEP> du <SEP> mot
<tb> sauvegardé.
<tb>
<tb> poids <SEP> faible <SEP> sont <SEP> combinés <SEP> par <SEP> un <SEP> ET <SEP> logique <SEP> avec <SEP> le <SEP> masque <SEP> d'adresse <SEP> < -Rs <SEP> ; <SEP> les
<tb> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour <SEP> selon <SEP> la <SEP> valeur <SEP> du <SEP> mot
<tb> sauvegardé.
<tb>
Codage <SEP> : <SEP> 001Olsssssssssss <SEP> fxxmmmmmmmmmmmmm
<tb> innmmmummninminmm <SEP> : <SEP> masque <SEP> d'adresse <SEP> sur <SEP> 13 <SEP> bits
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> BLD
<tb> Burst <SEP> LoaD-Chargement <SEP> en <SEP> rafale <SEP> depuis <SEP> la <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> BLD <SEP> Rd, <SEP> & masque <SEP> d'adresse
<tb> Description <SEP> : <SEP> Charge <SEP> dans <SEP> les <SEP> 256 <SEP> registres <SEP> à <SEP> partir <SEP> de <SEP> Rd <SEP> les <SEP> mots <SEP> en <SEP> mémoire <SEP> données
<tb> situés <SEP> à <SEP> partir <SEP> de <SEP> l'adresse <SEP> pointée <SEP> par <SEP> MBR, <SEP> dont <SEP> les <SEP> 8 <SEP> bits <SEP> de <SEP> poids <SEP> faible <SEP> sont
<tb> considérés <SEP> comme <SEP> nuls, <SEP> et <SEP> dont <SEP> les <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> sont <SEP> combinés <SEP> par <SEP> un <SEP> ET <SEP> logique <SEP> avec <SEP> les
<tb> bits <SEP> correspondant <SEP> du <SEP> masque <SEP> d'adresse. <SEP> Le <SEP> registre <SEP> de <SEP> départ <SEP> Rd <SEP> peut <SEP> être <SEP> au <SEP> choix <SEP> l'un
<tb> des <SEP> registres <SEP> Ro, <SEP> R256, <SEP> R512, <SEP> R768, <SEP> R1024, <SEP> R1280, <SEP> R1536, <SEP> ou <SEP> R1792.
<tb>
<tb> innmmmummninminmm <SEP> : <SEP> masque <SEP> d'adresse <SEP> sur <SEP> 13 <SEP> bits
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> BLD
<tb> Burst <SEP> LoaD-Chargement <SEP> en <SEP> rafale <SEP> depuis <SEP> la <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> BLD <SEP> Rd, <SEP> & masque <SEP> d'adresse
<tb> Description <SEP> : <SEP> Charge <SEP> dans <SEP> les <SEP> 256 <SEP> registres <SEP> à <SEP> partir <SEP> de <SEP> Rd <SEP> les <SEP> mots <SEP> en <SEP> mémoire <SEP> données
<tb> situés <SEP> à <SEP> partir <SEP> de <SEP> l'adresse <SEP> pointée <SEP> par <SEP> MBR, <SEP> dont <SEP> les <SEP> 8 <SEP> bits <SEP> de <SEP> poids <SEP> faible <SEP> sont
<tb> considérés <SEP> comme <SEP> nuls, <SEP> et <SEP> dont <SEP> les <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> sont <SEP> combinés <SEP> par <SEP> un <SEP> ET <SEP> logique <SEP> avec <SEP> les
<tb> bits <SEP> correspondant <SEP> du <SEP> masque <SEP> d'adresse. <SEP> Le <SEP> registre <SEP> de <SEP> départ <SEP> Rd <SEP> peut <SEP> être <SEP> au <SEP> choix <SEP> l'un
<tb> des <SEP> registres <SEP> Ro, <SEP> R256, <SEP> R512, <SEP> R768, <SEP> R1024, <SEP> R1280, <SEP> R1536, <SEP> ou <SEP> R1792.
<tb>
Opération <SEP> : <SEP> L'opération <SEP> suivante <SEP> est <SEP> répétée <SEP> pour <SEP> i <SEP> allant <SEP> de <SEP> 0 <SEP> à <SEP> 255 <SEP> :
<tb> Rd+1 <SEP> v <SEP> contenu <SEP> de <SEP> la <SEP> mémoire <SEP> pointée <SEP> par <SEP> (MBR <SEP> ET <SEP> logique <SEP> (0 <SEP> sur <SEP> les <SEP> bits <SEP> 0 <SEP> à <SEP> 7 <SEP> d'une
<tb> part, <SEP> et <SEP> masque <SEP> d'adresse <SEP> sur <SEP> les <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> d'autre <SEP> part)) <SEP> + <SEP> i.
<tb>
<tb> Rd+1 <SEP> v <SEP> contenu <SEP> de <SEP> la <SEP> mémoire <SEP> pointée <SEP> par <SEP> (MBR <SEP> ET <SEP> logique <SEP> (0 <SEP> sur <SEP> les <SEP> bits <SEP> 0 <SEP> à <SEP> 7 <SEP> d'une
<tb> part, <SEP> et <SEP> masque <SEP> d'adresse <SEP> sur <SEP> les <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> d'autre <SEP> part)) <SEP> + <SEP> i.
<tb>
<Desc/Clms Page number 29>
<tb>
<tb>
<tb>
Codage <SEP> : <SEP> OOll0dddxxxxxxxx <SEP> xxxmmmmmxxxxxxxx
<tb> ddd <SEP> : <SEP> 000=Ro, <SEP> 001 <SEP> = <SEP> R256, <SEP> 010=R5) <SEP> 2,..., <SEP> 110 <SEP> = <SEP> R1536, <SEP> 111 <SEP> = <SEP> Rl792
<tb> mmmmm <SEP> : <SEP> masque <SEP> d'adresse <SEP> sur <SEP> 5 <SEP> bits, <SEP> appliqué <SEP> aux <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> de
<tb> MBR
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> BST
<tb> Burst <SEP> Store-Sauvegarde <SEP> en <SEP> rafale <SEP> vers <SEP> la <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> BST <SEP> Rs, <SEP> & masque <SEP> d'adresse
<tb> Description <SEP> : <SEP> Sauvegarde <SEP> les <SEP> 256 <SEP> registres <SEP> à <SEP> partir <SEP> de <SEP> Rs <SEP> vers <SEP> les <SEP> adresses <SEP> de <SEP> mémoire
<tb> données <SEP> situées <SEP> à <SEP> partir <SEP> de <SEP> l'adresse <SEP> pointée <SEP> par <SEP> MBR, <SEP> dont <SEP> les <SEP> 8 <SEP> bits <SEP> de <SEP> poids <SEP> faible <SEP> sont
<tb> considérés <SEP> comme <SEP> nuls, <SEP> et <SEP> dont <SEP> les <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> sont <SEP> combinés <SEP> par <SEP> un <SEP> ET <SEP> logique <SEP> avec <SEP> les
<tb> bits <SEP> correspondant <SEP> du <SEP> masque <SEP> d'adresse. <SEP> Le <SEP> registre <SEP> de <SEP> départ <SEP> Rs <SEP> peut <SEP> être <SEP> au <SEP> choix <SEP> l'un
<tb> des <SEP> registres <SEP> Ro, <SEP> R256, <SEP> R512, <SEP> R768, <SEP> R1024, <SEP> R128o, <SEP> R1S36, <SEP> ou <SEP> R1792.
<tb>
<tb> ddd <SEP> : <SEP> 000=Ro, <SEP> 001 <SEP> = <SEP> R256, <SEP> 010=R5) <SEP> 2,..., <SEP> 110 <SEP> = <SEP> R1536, <SEP> 111 <SEP> = <SEP> Rl792
<tb> mmmmm <SEP> : <SEP> masque <SEP> d'adresse <SEP> sur <SEP> 5 <SEP> bits, <SEP> appliqué <SEP> aux <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> de
<tb> MBR
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> BST
<tb> Burst <SEP> Store-Sauvegarde <SEP> en <SEP> rafale <SEP> vers <SEP> la <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> BST <SEP> Rs, <SEP> & masque <SEP> d'adresse
<tb> Description <SEP> : <SEP> Sauvegarde <SEP> les <SEP> 256 <SEP> registres <SEP> à <SEP> partir <SEP> de <SEP> Rs <SEP> vers <SEP> les <SEP> adresses <SEP> de <SEP> mémoire
<tb> données <SEP> situées <SEP> à <SEP> partir <SEP> de <SEP> l'adresse <SEP> pointée <SEP> par <SEP> MBR, <SEP> dont <SEP> les <SEP> 8 <SEP> bits <SEP> de <SEP> poids <SEP> faible <SEP> sont
<tb> considérés <SEP> comme <SEP> nuls, <SEP> et <SEP> dont <SEP> les <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> sont <SEP> combinés <SEP> par <SEP> un <SEP> ET <SEP> logique <SEP> avec <SEP> les
<tb> bits <SEP> correspondant <SEP> du <SEP> masque <SEP> d'adresse. <SEP> Le <SEP> registre <SEP> de <SEP> départ <SEP> Rs <SEP> peut <SEP> être <SEP> au <SEP> choix <SEP> l'un
<tb> des <SEP> registres <SEP> Ro, <SEP> R256, <SEP> R512, <SEP> R768, <SEP> R1024, <SEP> R128o, <SEP> R1S36, <SEP> ou <SEP> R1792.
<tb>
Opération <SEP> : <SEP> L'opération <SEP> suivante <SEP> est <SEP> répétée <SEP> pour <SEP> i <SEP> allant <SEP> de <SEP> 0 <SEP> à <SEP> 255 <SEP> :
<tb> emplacement <SEP> de <SEP> la <SEP> mémoire <SEP> pointé <SEP> par <SEP> (MBR <SEP> ET <SEP> logique <SEP> (0 <SEP> sur <SEP> les <SEP> bits <SEP> 0 <SEP> à <SEP> 7 <SEP> d'une <SEP> part,
<tb> et <SEP> masque <SEP> d'adresse <SEP> sur <SEP> les <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> d'autre <SEP> part)) <SEP> + <SEP> i <SEP> -Rs+i.
<tb>
<tb> emplacement <SEP> de <SEP> la <SEP> mémoire <SEP> pointé <SEP> par <SEP> (MBR <SEP> ET <SEP> logique <SEP> (0 <SEP> sur <SEP> les <SEP> bits <SEP> 0 <SEP> à <SEP> 7 <SEP> d'une <SEP> part,
<tb> et <SEP> masque <SEP> d'adresse <SEP> sur <SEP> les <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> d'autre <SEP> part)) <SEP> + <SEP> i <SEP> -Rs+i.
<tb>
Codage <SEP> : <SEP> 00111sssxxxxxxxx <SEP> xxxmmmmmxxxxxxxx
<tb> sss <SEP> : <SEP> 000 <SEP> = <SEP> Ro, <SEP> 001 <SEP> = <SEP> R256, <SEP> 010 <SEP> = <SEP> R512,..., <SEP> 110 <SEP> = <SEP> R1536, <SEP> 111 <SEP> = <SEP> R1792
<tb> mmmmm <SEP> : <SEP> masque <SEP> d'adresse <SEP> sur <SEP> 5 <SEP> bits, <SEP> appliqué <SEP> aux <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> de
<tb> MBR
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
Les opérations de rupture de séquence
<tb> sss <SEP> : <SEP> 000 <SEP> = <SEP> Ro, <SEP> 001 <SEP> = <SEP> R256, <SEP> 010 <SEP> = <SEP> R512,..., <SEP> 110 <SEP> = <SEP> R1536, <SEP> 111 <SEP> = <SEP> R1792
<tb> mmmmm <SEP> : <SEP> masque <SEP> d'adresse <SEP> sur <SEP> 5 <SEP> bits, <SEP> appliqué <SEP> aux <SEP> bits <SEP> 8 <SEP> à <SEP> 12 <SEP> de
<tb> MBR
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
Les opérations de rupture de séquence
<Desc/Clms Page number 30>
<tb>
<tb> Jcc
<tb> Conditional <SEP> Jump-Saut <SEP> conditionnel
<tb> Syntaxe <SEP> : <SEP> Jcc <SEP> adresse
<tb> Description <SEP> : <SEP> Saut <SEP> conditionnel <SEP> dans <SEP> la <SEP> page <SEP> courante <SEP> de <SEP> mémoire <SEP> programmes <SEP> à <SEP> une
<tb> adresse <SEP> absolue <SEP> paire.
<tb>
<tb> Jcc
<tb> Conditional <SEP> Jump-Saut <SEP> conditionnel
<tb> Syntaxe <SEP> : <SEP> Jcc <SEP> adresse
<tb> Description <SEP> : <SEP> Saut <SEP> conditionnel <SEP> dans <SEP> la <SEP> page <SEP> courante <SEP> de <SEP> mémoire <SEP> programmes <SEP> à <SEP> une
<tb> adresse <SEP> absolue <SEP> paire.
<tb>
Opération <SEP> : <SEP> Si <SEP> condition <SEP> cc <SEP> remplie <SEP> (voir <SEP> tableau <SEP> d'encodage <SEP> de <SEP> j <SEP> j <SEP> j <SEP> j), <SEP> alors <SEP> IP <SEP> < adresse <SEP> absolue <SEP> paire <SEP> ; <SEP> les <SEP> indicateurs <SEP> ne <SEP> sont <SEP> jamais <SEP> affectés.
<tb>
<tb>
Codage <SEP> : <SEP> 01000xxxxxxxjjjj <SEP> xxxaaaaaaaaaaaax
<tb> aaaaaaaaaaaa <SEP> : <SEP> bits <SEP> 1 <SEP> à <SEP> 12 <SEP> de <SEP> l'adresse <SEP> absolue <SEP> destination <SEP> du <SEP> saut
<tb> j <SEP> j <SEP> j <SEP> j <SEP> : <SEP> codage <SEP> de <SEP> la <SEP> condition <SEP> de <SEP> saut <SEP> (voir <SEP> tableau <SEP> ci-dessous)
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> Condition <SEP> (cc) <SEP> Codage <SEP> Description <SEP> de <SEP> la <SEP> condition <SEP> de <SEP> saut
<tb> (iiii)
<tb> ZC <SEP> 0000 <SEP> Z=0
<tb> ZS <SEP> 0001 <SEP> Z=1
<tb> CC <SEP> 0010 <SEP> C=0
<tb> CS <SEP> 0011 <SEP> C=1
<tb> NC <SEP> 0100 <SEP> N=O
<tb> NS <SEP> 0101 <SEP> N=l
<tb> OC <SEP> 0110 <SEP> 0=0
<tb> OS <SEP> 0111 <SEP> 0=1
<tb> UG <SEP> 1000 <SEP> > <SEP> (non <SEP> signé) <SEP> : <SEP> C=0 <SEP> et <SEP> Z=0
<tb> ULE <SEP> 1001 <SEP> # <SEP> (non <SEP> signé) <SEP> : <SEP> C=1 <SEP> ou <SEP> Z=1
<tb> SG <SEP> 1010 <SEP> > <SEP> (signé) <SEP> : <SEP> Z=0 <SEP> et <SEP> N=O
<tb> SGElOH > <SEP> (signé) <SEP> : <SEP> N=O
<tb> SL <SEP> 1100 <SEP> < <SEP> (signé) <SEP> : <SEP> N#O
<tb> SLE <SEP> 1101 <SEP> # <SEP> (signé) <SEP> : <SEP> Z=1 <SEP> ou <SEP> Neo
<tb>
<tb> aaaaaaaaaaaa <SEP> : <SEP> bits <SEP> 1 <SEP> à <SEP> 12 <SEP> de <SEP> l'adresse <SEP> absolue <SEP> destination <SEP> du <SEP> saut
<tb> j <SEP> j <SEP> j <SEP> j <SEP> : <SEP> codage <SEP> de <SEP> la <SEP> condition <SEP> de <SEP> saut <SEP> (voir <SEP> tableau <SEP> ci-dessous)
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> Condition <SEP> (cc) <SEP> Codage <SEP> Description <SEP> de <SEP> la <SEP> condition <SEP> de <SEP> saut
<tb> (iiii)
<tb> ZC <SEP> 0000 <SEP> Z=0
<tb> ZS <SEP> 0001 <SEP> Z=1
<tb> CC <SEP> 0010 <SEP> C=0
<tb> CS <SEP> 0011 <SEP> C=1
<tb> NC <SEP> 0100 <SEP> N=O
<tb> NS <SEP> 0101 <SEP> N=l
<tb> OC <SEP> 0110 <SEP> 0=0
<tb> OS <SEP> 0111 <SEP> 0=1
<tb> UG <SEP> 1000 <SEP> > <SEP> (non <SEP> signé) <SEP> : <SEP> C=0 <SEP> et <SEP> Z=0
<tb> ULE <SEP> 1001 <SEP> # <SEP> (non <SEP> signé) <SEP> : <SEP> C=1 <SEP> ou <SEP> Z=1
<tb> SG <SEP> 1010 <SEP> > <SEP> (signé) <SEP> : <SEP> Z=0 <SEP> et <SEP> N=O
<tb> SGElOH > <SEP> (signé) <SEP> : <SEP> N=O
<tb> SL <SEP> 1100 <SEP> < <SEP> (signé) <SEP> : <SEP> N#O
<tb> SLE <SEP> 1101 <SEP> # <SEP> (signé) <SEP> : <SEP> Z=1 <SEP> ou <SEP> Neo
<tb>
<Desc/Clms Page number 31>
<tb>
<tb> NCS <SEP> NCS <SEP> N=1 <SEP> et <SEP> C=1
<tb> 1111 <SEP> Toujours
<tb> JP
<tb> Relative <SEP> Jump <SEP> to <SEP> other <SEP> Page-Saut <SEP> vers <SEP> une <SEP> autre <SEP> page, <SEP> relativement <SEP> à <SEP> la <SEP> page <SEP> courante
<tb> Syntaxe <SEP> : <SEP> JP <SEP> Rr
<tb> Description <SEP> : <SEP> Saut <SEP> long <SEP> vers <SEP> une <SEP> autre <SEP> page <SEP> de <SEP> mémoire <SEP> programmes, <SEP> relativement <SEP> à <SEP> la
<tb> page <SEP> courante, <SEP> d'une <SEP> amplitude <SEP> de-32768 <SEP> à <SEP> +32767 <SEP> pages <SEP> indiquée <SEP> par <SEP> le <SEP> contenu <SEP> du
<tb> registre <SEP> Rr. <SEP> Si <SEP> la <SEP> page <SEP> destination <SEP> est <SEP> invalide, <SEP> alors <SEP> l'exception <SEP> est <SEP> générée.
<tb>
<tb> NCS <SEP> NCS <SEP> N=1 <SEP> et <SEP> C=1
<tb> 1111 <SEP> Toujours
<tb> JP
<tb> Relative <SEP> Jump <SEP> to <SEP> other <SEP> Page-Saut <SEP> vers <SEP> une <SEP> autre <SEP> page, <SEP> relativement <SEP> à <SEP> la <SEP> page <SEP> courante
<tb> Syntaxe <SEP> : <SEP> JP <SEP> Rr
<tb> Description <SEP> : <SEP> Saut <SEP> long <SEP> vers <SEP> une <SEP> autre <SEP> page <SEP> de <SEP> mémoire <SEP> programmes, <SEP> relativement <SEP> à <SEP> la
<tb> page <SEP> courante, <SEP> d'une <SEP> amplitude <SEP> de-32768 <SEP> à <SEP> +32767 <SEP> pages <SEP> indiquée <SEP> par <SEP> le <SEP> contenu <SEP> du
<tb> registre <SEP> Rr. <SEP> Si <SEP> la <SEP> page <SEP> destination <SEP> est <SEP> invalide, <SEP> alors <SEP> l'exception <SEP> est <SEP> générée.
<tb>
Opération <SEP> : <SEP> PPtmp <SEP> < -PP <SEP> + <SEP> (Rr <SEP> étendu <SEP> par <SEP> son <SEP> signe) <SEP> ; <SEP> Si <SEP> PPtmp <SEP> pointe <SEP> sur <SEP> une <SEP> page
<tb> invalide, <SEP> alors <SEP> l'exception <SEP> est <SEP> générée <SEP> ; <SEP> Sinon <SEP> PP <SEP> < -PPtmp <SEP> ; <SEP> IP <SEP> < -0 <SEP> ; <SEP> les <SEP> indicateurs <SEP> ne
<tb> sont <SEP> jamais <SEP> affectés.
<tb>
<tb> invalide, <SEP> alors <SEP> l'exception <SEP> est <SEP> générée <SEP> ; <SEP> Sinon <SEP> PP <SEP> < -PPtmp <SEP> ; <SEP> IP <SEP> < -0 <SEP> ; <SEP> les <SEP> indicateurs <SEP> ne
<tb> sont <SEP> jamais <SEP> affectés.
<tb>
Codage <SEP> : <SEP> 01001rrrrrrrrrrr <SEP> xxxxxxxxxxxxxxxx
<tb> rrrrrrrrrrr <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rr <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> JAR
<tb> Indirect <SEP> Jump <SEP> by <SEP> pointer <SEP> ARray-Saut <SEP> indirect <SEP> par <SEP> table <SEP> de <SEP> pointeurs.
<tb>
<tb> rrrrrrrrrrr <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rr <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> JAR
<tb> Indirect <SEP> Jump <SEP> by <SEP> pointer <SEP> ARray-Saut <SEP> indirect <SEP> par <SEP> table <SEP> de <SEP> pointeurs.
<tb>
Syntaxe <SEP> : <SEP> JAR <SEP> Rr, <SEP> #imm, <SEP> pointeurl, <SEP> pointeur2, <SEP> pointeur3,..., <SEP> pointeur <SEP> (2imm)
<tb> Description <SEP> : <SEP> Saut <SEP> absolu <SEP> dans <SEP> la <SEP> page <SEP> courante <SEP> de <SEP> mémoire <SEP> programmes <SEP> à <SEP> une <SEP> adresse
<tb> paire <SEP> par <SEP> choix <SEP> d'un <SEP> pointeur <SEP> dans <SEP> une <SEP> table. <SEP> La <SEP> taille <SEP> de <SEP> la <SEP> table <SEP> est <SEP> une <SEP> puissance <SEP> de <SEP> 2
<tb> dont <SEP> l'exposant <SEP> imm <SEP> est <SEP> compris <SEP> entre <SEP> 1 <SEP> et <SEP> 8. <SEP> Lorsqu'une <SEP> des <SEP> entrées <SEP> de <SEP> la <SEP> table <SEP> est <SEP> la
<tb> cible <SEP> d'un <SEP> saut <SEP> absolu, <SEP> alors <SEP> le <SEP> saut <SEP> pointe <SEP> systématiquement <SEP> sur <SEP> l'instruction <SEP> suivante
<tb> (après <SEP> la <SEP> table).
<tb>
<tb> Description <SEP> : <SEP> Saut <SEP> absolu <SEP> dans <SEP> la <SEP> page <SEP> courante <SEP> de <SEP> mémoire <SEP> programmes <SEP> à <SEP> une <SEP> adresse
<tb> paire <SEP> par <SEP> choix <SEP> d'un <SEP> pointeur <SEP> dans <SEP> une <SEP> table. <SEP> La <SEP> taille <SEP> de <SEP> la <SEP> table <SEP> est <SEP> une <SEP> puissance <SEP> de <SEP> 2
<tb> dont <SEP> l'exposant <SEP> imm <SEP> est <SEP> compris <SEP> entre <SEP> 1 <SEP> et <SEP> 8. <SEP> Lorsqu'une <SEP> des <SEP> entrées <SEP> de <SEP> la <SEP> table <SEP> est <SEP> la
<tb> cible <SEP> d'un <SEP> saut <SEP> absolu, <SEP> alors <SEP> le <SEP> saut <SEP> pointe <SEP> systématiquement <SEP> sur <SEP> l'instruction <SEP> suivante
<tb> (après <SEP> la <SEP> table).
<tb>
Opération <SEP> : <SEP> IP <SEP> v <SEP> pointeur <SEP> situé <SEP> à <SEP> l'adresse <SEP> de <SEP> l'instruction <SEP> + <SEP> 2 <SEP> + <SEP> (Rr <SEP> modulo <SEP> tam) <SEP> ; <SEP> les
<tb> indicateurs <SEP> ne <SEP> sont <SEP> jamais <SEP> affectés.
<tb>
<tb> indicateurs <SEP> ne <SEP> sont <SEP> jamais <SEP> affectés.
<tb>
<Desc/Clms Page number 32>
<tb>
<tb>
<tb>
Codage <SEP> :
<tb> OlOlOrrrrrrrrrrr <SEP> xxxxxxxxxxxxxttt <SEP> xxxaaaaaaaaaaaax...
<tb> xxxaaaaaaaaaaaax
<tb> 2'+'motus
<tb> rrrrrrrrrrr <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rr <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ttt <SEP> : <SEP> exposant <SEP> imm-1 <SEP> entre <SEP> 0 <SEP> et <SEP> 7
<tb> aaaaaaaaaaaa <SEP> : <SEP> bits <SEP> 1 <SEP> à <SEP> 12 <SEP> d'une <SEP> adresse <SEP> absolue <SEP> dans <SEP> la <SEP> table
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
Les opérations sur les registres spéciaux
<tb> OlOlOrrrrrrrrrrr <SEP> xxxxxxxxxxxxxttt <SEP> xxxaaaaaaaaaaaax...
<tb> xxxaaaaaaaaaaaax
<tb> 2'+'motus
<tb> rrrrrrrrrrr <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rr <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> ttt <SEP> : <SEP> exposant <SEP> imm-1 <SEP> entre <SEP> 0 <SEP> et <SEP> 7
<tb> aaaaaaaaaaaa <SEP> : <SEP> bits <SEP> 1 <SEP> à <SEP> 12 <SEP> d'une <SEP> adresse <SEP> absolue <SEP> dans <SEP> la <SEP> table
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
Les opérations sur les registres spéciaux
<tb>
<tb> LDB
<tb> LoaD <SEP> Memory <SEP> Base <SEP> Register-Chargement <SEP> du <SEP> registre <SEP> de <SEP> base <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> LDB <SEP> Rb, <SEP> #imm
<tb> Description <SEP> : <SEP> Charge <SEP> les <SEP> imm <SEP> mots <SEP> de <SEP> poids <SEP> faible <SEP> du <SEP> registre <SEP> de <SEP> base <SEP> mémoire <SEP> MBR <SEP> à
<tb> partir <SEP> du <SEP> registre <SEP> Rb <SEP> et <SEP> éventuellement <SEP> des <SEP> registres <SEP> précédents, <SEP> Rb <SEP> étant <SEP> chargé <SEP> dans <SEP> le
<tb> mot <SEP> de <SEP> plus <SEP> faible <SEP> poids <SEP> de <SEP> MBR. <SEP> L'éventuelle <SEP> portion <SEP> de <SEP> poids <SEP> fort <SEP> restante <SEP> du <SEP> registre
<tb> MBR <SEP> n'est <SEP> pas <SEP> affectée. <SEP> Si <SEP> l'adresse <SEP> de <SEP> mémoire <SEP> données <SEP> désignée <SEP> est <SEP> invalide, <SEP> alors
<tb> l'exception <SEP> est <SEP> déclenchée.
<tb>
<tb> LDB
<tb> LoaD <SEP> Memory <SEP> Base <SEP> Register-Chargement <SEP> du <SEP> registre <SEP> de <SEP> base <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> LDB <SEP> Rb, <SEP> #imm
<tb> Description <SEP> : <SEP> Charge <SEP> les <SEP> imm <SEP> mots <SEP> de <SEP> poids <SEP> faible <SEP> du <SEP> registre <SEP> de <SEP> base <SEP> mémoire <SEP> MBR <SEP> à
<tb> partir <SEP> du <SEP> registre <SEP> Rb <SEP> et <SEP> éventuellement <SEP> des <SEP> registres <SEP> précédents, <SEP> Rb <SEP> étant <SEP> chargé <SEP> dans <SEP> le
<tb> mot <SEP> de <SEP> plus <SEP> faible <SEP> poids <SEP> de <SEP> MBR. <SEP> L'éventuelle <SEP> portion <SEP> de <SEP> poids <SEP> fort <SEP> restante <SEP> du <SEP> registre
<tb> MBR <SEP> n'est <SEP> pas <SEP> affectée. <SEP> Si <SEP> l'adresse <SEP> de <SEP> mémoire <SEP> données <SEP> désignée <SEP> est <SEP> invalide, <SEP> alors
<tb> l'exception <SEP> est <SEP> déclenchée.
<tb>
Opération <SEP> : <SEP> MBRp <SEP> < -Rb-) <SEP> mm+ <SEP> ! <SEP> (mod2048) <SEP> :.-. <SEP> : <SEP> Rb <SEP> ; <SEP> Si <SEP> MBRtmp <SEP> pointe <SEP> sur <SEP> une <SEP> adresse
<tb> invalide, <SEP> alors <SEP> l'exception <SEP> est <SEP> déclenchée <SEP> ; <SEP> Sinon, <SEP> les <SEP> imm <SEP> mots <SEP> de <SEP> poids <SEP> faible <SEP> de <SEP> MBR
<tb> < -MBRtmp <SEP> ; <SEP> les <SEP> indicateurs <SEP> ne <SEP> sont <SEP> jamais <SEP> affectés.
<tb>
<tb> invalide, <SEP> alors <SEP> l'exception <SEP> est <SEP> déclenchée <SEP> ; <SEP> Sinon, <SEP> les <SEP> imm <SEP> mots <SEP> de <SEP> poids <SEP> faible <SEP> de <SEP> MBR
<tb> < -MBRtmp <SEP> ; <SEP> les <SEP> indicateurs <SEP> ne <SEP> sont <SEP> jamais <SEP> affectés.
<tb>
Codage <SEP> : <SEP> 01011bbbbbbbbbbb <SEP> xxxxxlllllllllll
<tb> 11111111111 <SEP> : <SEP> valeur <SEP> immédiate <SEP> imm-l <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> bbbbbbbbbbb <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rb <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
<tb> 11111111111 <SEP> : <SEP> valeur <SEP> immédiate <SEP> imm-l <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> bbbbbbbbbbb <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rb <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
<Desc/Clms Page number 33>
<tb>
<tb> LDM
<tb> LoaD <SEP> Mapper/Enumerator <SEP> Register-Chargement <SEP> du <SEP> registre <SEP> du
<tb> Cartographe/Enumérateur
<tb> Syntaxe <SEP> : <SEP> LDM <SEP> Rs, <SEP> ZN
<tb> Description <SEP> : <SEP> Charge <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs <SEP> dans <SEP> le <SEP> registre <SEP> MER. <SEP> En <SEP> cas <SEP> de
<tb> manipulation <SEP> incorrecte <SEP> du <SEP> registre <SEP> MER, <SEP> l'exception <SEP> est <SEP> déclenchée.
<tb>
<tb> LDM
<tb> LoaD <SEP> Mapper/Enumerator <SEP> Register-Chargement <SEP> du <SEP> registre <SEP> du
<tb> Cartographe/Enumérateur
<tb> Syntaxe <SEP> : <SEP> LDM <SEP> Rs, <SEP> ZN
<tb> Description <SEP> : <SEP> Charge <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rs <SEP> dans <SEP> le <SEP> registre <SEP> MER. <SEP> En <SEP> cas <SEP> de
<tb> manipulation <SEP> incorrecte <SEP> du <SEP> registre <SEP> MER, <SEP> l'exception <SEP> est <SEP> déclenchée.
<tb>
Opération <SEP> : <SEP> MER <SEP> < -Rs. <SEP> Les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> selon <SEP> la <SEP> valeur <SEP> chargée <SEP> dans <SEP> le <SEP> registre <SEP> MER. <SEP> L'exception <SEP> peut <SEP> être <SEP> déclenchée <SEP> au <SEP> cours
<tb> du <SEP> chargement, <SEP> après <SEP> la <SEP> mise <SEP> à <SEP> jour <SEP> éventuelle <SEP> des <SEP> indicateurs.
<tb>
<tb> selon <SEP> la <SEP> valeur <SEP> chargée <SEP> dans <SEP> le <SEP> registre <SEP> MER. <SEP> L'exception <SEP> peut <SEP> être <SEP> déclenchée <SEP> au <SEP> cours
<tb> du <SEP> chargement, <SEP> après <SEP> la <SEP> mise <SEP> à <SEP> jour <SEP> éventuelle <SEP> des <SEP> indicateurs.
<tb>
Codage <SEP> : <SEP> Oll00sssssssssss <SEP> fxxxxxxxxxxxxxxx
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> STM
<tb> STore <SEP> Mapper/Enumerator <SEP> Register-Sauvegarde <SEP> du <SEP> registre <SEP> du
<tb> Cartographe/Enumérateur
<tb> Syntaxe <SEP> : <SEP> STM <SEP> Rd, <SEP> ZN
<tb> Description <SEP> : <SEP> Sauvegarde <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> MER <SEP> dans <SEP> le <SEP> registre <SEP> RI. <SEP> Si
<tb> l'instruction <SEP> est <SEP> située <SEP> dans <SEP> une <SEP> page <SEP> non <SEP> interruptible, <SEP> alors <SEP> cette <SEP> instruction <SEP> ne <SEP> pourra
<tb> en <SEP> aucun <SEP> cas <SEP> déclencher <SEP> une <SEP> interruption. <SEP> Si <SEP> l'instruction <SEP> est <SEP> située <SEP> dans <SEP> une <SEP> page
<tb> interruptible, <SEP> et <SEP> qu'aucune <SEP> commande <SEP> du <SEP> Cartographe/Enumérateur <SEP> n'est <SEP> en <SEP> cours, <SEP> alors
<tb> l'instruction <SEP> STM <SEP> garantit <SEP> une <SEP> prise <SEP> en <SEP> compte <SEP> immédiate <SEP> d'une <SEP> éventuelle <SEP> interruption
<tb> en <SEP> attente. <SEP> En <SEP> cas <SEP> de <SEP> manipulation <SEP> incorrecte <SEP> du <SEP> registre <SEP> MER, <SEP> l'exception <SEP> est
<tb> déclenchée.
<tb>
<tb> sssssssssss <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> source <SEP> Rs <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> STM
<tb> STore <SEP> Mapper/Enumerator <SEP> Register-Sauvegarde <SEP> du <SEP> registre <SEP> du
<tb> Cartographe/Enumérateur
<tb> Syntaxe <SEP> : <SEP> STM <SEP> Rd, <SEP> ZN
<tb> Description <SEP> : <SEP> Sauvegarde <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> MER <SEP> dans <SEP> le <SEP> registre <SEP> RI. <SEP> Si
<tb> l'instruction <SEP> est <SEP> située <SEP> dans <SEP> une <SEP> page <SEP> non <SEP> interruptible, <SEP> alors <SEP> cette <SEP> instruction <SEP> ne <SEP> pourra
<tb> en <SEP> aucun <SEP> cas <SEP> déclencher <SEP> une <SEP> interruption. <SEP> Si <SEP> l'instruction <SEP> est <SEP> située <SEP> dans <SEP> une <SEP> page
<tb> interruptible, <SEP> et <SEP> qu'aucune <SEP> commande <SEP> du <SEP> Cartographe/Enumérateur <SEP> n'est <SEP> en <SEP> cours, <SEP> alors
<tb> l'instruction <SEP> STM <SEP> garantit <SEP> une <SEP> prise <SEP> en <SEP> compte <SEP> immédiate <SEP> d'une <SEP> éventuelle <SEP> interruption
<tb> en <SEP> attente. <SEP> En <SEP> cas <SEP> de <SEP> manipulation <SEP> incorrecte <SEP> du <SEP> registre <SEP> MER, <SEP> l'exception <SEP> est
<tb> déclenchée.
<tb>
<Desc/Clms Page number 34>
<tb>
<tb>
<tb>
Opération <SEP> : <SEP> Rd <SEP> < -MER. <SEP> Les <SEP> indicateurs <SEP> mentionnés <SEP> (f <SEP> pour <SEP> Z <SEP> et <SEP> N) <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> selon <SEP> la <SEP> valeur <SEP> sauvegardée <SEP> depuis <SEP> le <SEP> registre <SEP> MER. <SEP> L'exception <SEP> peut <SEP> être <SEP> déclenchée <SEP> au
<tb> cours <SEP> de <SEP> la <SEP> sauvegarde, <SEP> avant <SEP> la <SEP> mise <SEP> à <SEP> jour <SEP> éventuelle <SEP> des <SEP> indicateurs.
<tb>
<tb> selon <SEP> la <SEP> valeur <SEP> sauvegardée <SEP> depuis <SEP> le <SEP> registre <SEP> MER. <SEP> L'exception <SEP> peut <SEP> être <SEP> déclenchée <SEP> au
<tb> cours <SEP> de <SEP> la <SEP> sauvegarde, <SEP> avant <SEP> la <SEP> mise <SEP> à <SEP> jour <SEP> éventuelle <SEP> des <SEP> indicateurs.
<tb>
Codage <SEP> : <SEP> OllOlddddddddddd <SEP> fxxxxxxxxxxxxxxx
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rj <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> L'opération <SEP> de <SEP> réglage <SEP> de <SEP> la <SEP> partition <SEP> de <SEP> la <SEP> mémoire
<tb> SMP
<tb> Set <SEP> Memory <SEP> Partition-Réglage <SEP> de <SEP> la <SEP> partition <SEP> de <SEP> la <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> SMP <SEP> Rr
<tb> Description <SEP> : <SEP> Répartit <SEP> la <SEP> mémoire <SEP> centrale <SEP> disponible <SEP> entre <SEP> la <SEP> mémoire <SEP> programmes <SEP> et
<tb> la <SEP> mémoire <SEP> données, <SEP> relativement <SEP> à <SEP> la <SEP> répartition <SEP> courante, <SEP> et <SEP> met <SEP> à <SEP> 0 <SEP> le <SEP> registre <SEP> MBR.
<tb>
<tb> ddddddddddd <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> destination <SEP> Rj <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> f <SEP> : <SEP> si <SEP> bit <SEP> mis <SEP> à <SEP> 1, <SEP> les <SEP> indicateurs <SEP> Z <SEP> et <SEP> N <SEP> sont <SEP> mis <SEP> à <SEP> jour
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> L'opération <SEP> de <SEP> réglage <SEP> de <SEP> la <SEP> partition <SEP> de <SEP> la <SEP> mémoire
<tb> SMP
<tb> Set <SEP> Memory <SEP> Partition-Réglage <SEP> de <SEP> la <SEP> partition <SEP> de <SEP> la <SEP> mémoire
<tb> Syntaxe <SEP> : <SEP> SMP <SEP> Rr
<tb> Description <SEP> : <SEP> Répartit <SEP> la <SEP> mémoire <SEP> centrale <SEP> disponible <SEP> entre <SEP> la <SEP> mémoire <SEP> programmes <SEP> et
<tb> la <SEP> mémoire <SEP> données, <SEP> relativement <SEP> à <SEP> la <SEP> répartition <SEP> courante, <SEP> et <SEP> met <SEP> à <SEP> 0 <SEP> le <SEP> registre <SEP> MBR.
<tb>
Le <SEP> contenu <SEP> du <SEP> registre <SEP> Rr <SEP> indique <SEP> le <SEP> nombre <SEP> de <SEP> pages <SEP> à <SEP> ajouter <SEP> ou <SEP> à <SEP> retirer <SEP> à <SEP> la <SEP> mémoire
<tb> programmes. <SEP> Toute <SEP> page <SEP> ajoutée <SEP> à <SEP> la <SEP> mémoire <SEP> programmes <SEP> retire <SEP> un <SEP> nombre <SEP> déterminé
<tb> de <SEP> pages <SEP> de <SEP> la <SEP> mémoire <SEP> données. <SEP> Inversement, <SEP> toute <SEP> page <SEP> retirée <SEP> de <SEP> la <SEP> mémoire
<tb> programmes <SEP> ajoute <SEP> un <SEP> nombre <SEP> déterminé <SEP> de <SEP> pages <SEP> à <SEP> la <SEP> mémoire <SEP> données. <SEP> Lorsque <SEP> le
<tb> nombre <SEP> de <SEP> pages <SEP> de <SEP> mémoire <SEP> données, <SEP> non <SEP> comprise <SEP> la <SEP> première <SEP> page, <SEP> n'est <SEP> pas
<tb> suffisant <SEP> pour <SEP> ajouter <SEP> le <SEP> nombre <SEP> de <SEP> pages <SEP> de <SEP> mémoire <SEP> programmes <SEP> indiqué, <SEP> alors
<tb> l'exception <SEP> est <SEP> déclenchée. <SEP> De <SEP> même, <SEP> elle <SEP> est <SEP> déclenchée <SEP> lorsqu'il <SEP> n'y <SEP> a <SEP> pas <SEP> assez <SEP> de
<tb> mémoire <SEP> programmes <SEP> pour <SEP> retirer <SEP> le <SEP> nombre <SEP> de <SEP> pages <SEP> indiqué, <SEP> la <SEP> première <SEP> page <SEP> ne
<tb> pouvant <SEP> jamais <SEP> être <SEP> retirée. <SEP> Enfin, <SEP> si <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> programmes <SEP> courante, <SEP> dans
<tb> laquelle <SEP> se <SEP> situe <SEP> l'instruction <SEP> SMP <SEP> exécutée, <SEP> doit <SEP> être <SEP> invalidée <SEP> par <SEP> cette <SEP> instruction,
<tb> alors <SEP> l'exception <SEP> est <SEP> également <SEP> déclenchée. <SEP> En <SEP> cas <SEP> d'exception, <SEP> la <SEP> partition <SEP> mémoire
<tb> n'est <SEP> pas <SEP> modifiée, <SEP> mais <SEP> MBR <SEP> est <SEP> mis <SEP> à <SEP> 0.
<tb>
<tb> programmes. <SEP> Toute <SEP> page <SEP> ajoutée <SEP> à <SEP> la <SEP> mémoire <SEP> programmes <SEP> retire <SEP> un <SEP> nombre <SEP> déterminé
<tb> de <SEP> pages <SEP> de <SEP> la <SEP> mémoire <SEP> données. <SEP> Inversement, <SEP> toute <SEP> page <SEP> retirée <SEP> de <SEP> la <SEP> mémoire
<tb> programmes <SEP> ajoute <SEP> un <SEP> nombre <SEP> déterminé <SEP> de <SEP> pages <SEP> à <SEP> la <SEP> mémoire <SEP> données. <SEP> Lorsque <SEP> le
<tb> nombre <SEP> de <SEP> pages <SEP> de <SEP> mémoire <SEP> données, <SEP> non <SEP> comprise <SEP> la <SEP> première <SEP> page, <SEP> n'est <SEP> pas
<tb> suffisant <SEP> pour <SEP> ajouter <SEP> le <SEP> nombre <SEP> de <SEP> pages <SEP> de <SEP> mémoire <SEP> programmes <SEP> indiqué, <SEP> alors
<tb> l'exception <SEP> est <SEP> déclenchée. <SEP> De <SEP> même, <SEP> elle <SEP> est <SEP> déclenchée <SEP> lorsqu'il <SEP> n'y <SEP> a <SEP> pas <SEP> assez <SEP> de
<tb> mémoire <SEP> programmes <SEP> pour <SEP> retirer <SEP> le <SEP> nombre <SEP> de <SEP> pages <SEP> indiqué, <SEP> la <SEP> première <SEP> page <SEP> ne
<tb> pouvant <SEP> jamais <SEP> être <SEP> retirée. <SEP> Enfin, <SEP> si <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> programmes <SEP> courante, <SEP> dans
<tb> laquelle <SEP> se <SEP> situe <SEP> l'instruction <SEP> SMP <SEP> exécutée, <SEP> doit <SEP> être <SEP> invalidée <SEP> par <SEP> cette <SEP> instruction,
<tb> alors <SEP> l'exception <SEP> est <SEP> également <SEP> déclenchée. <SEP> En <SEP> cas <SEP> d'exception, <SEP> la <SEP> partition <SEP> mémoire
<tb> n'est <SEP> pas <SEP> modifiée, <SEP> mais <SEP> MBR <SEP> est <SEP> mis <SEP> à <SEP> 0.
<tb>
Opération <SEP> : <SEP> MBR <SEP> < -0 <SEP> ; <SEP> Si <SEP> la <SEP> nouvelle <SEP> partition <SEP> est <SEP> invalide, <SEP> au <SEP> regard <SEP> des <SEP> quantités <SEP> de
<tb> mémoires <SEP> programmes <SEP> et <SEP> données <SEP> disponibles, <SEP> alors <SEP> l'exception <SEP> est <SEP> déclenchée <SEP> ; <SEP> Sinon,
<tb> /
<tb>
<tb> mémoires <SEP> programmes <SEP> et <SEP> données <SEP> disponibles, <SEP> alors <SEP> l'exception <SEP> est <SEP> déclenchée <SEP> ; <SEP> Sinon,
<tb> /
<tb>
<Desc/Clms Page number 35>
<tb>
<tb> ajoute <SEP> ou <SEP> retire <SEP> le <SEP> nombre <SEP> de <SEP> pages <SEP> de <SEP> mémoire <SEP> programmes <SEP> indiqué <SEP> par <SEP> le <SEP> contenu <SEP> du
<tb> registre <SEP> Rr <SEP> (considéré <SEP> comme <SEP> signé). <SEP> Si <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rr <SEP> est <SEP> nul, <SEP> alors <SEP> la
<tb> partition <SEP> mémoire <SEP> reste <SEP> inchangée.
<tb>
<tb> ajoute <SEP> ou <SEP> retire <SEP> le <SEP> nombre <SEP> de <SEP> pages <SEP> de <SEP> mémoire <SEP> programmes <SEP> indiqué <SEP> par <SEP> le <SEP> contenu <SEP> du
<tb> registre <SEP> Rr <SEP> (considéré <SEP> comme <SEP> signé). <SEP> Si <SEP> le <SEP> contenu <SEP> du <SEP> registre <SEP> Rr <SEP> est <SEP> nul, <SEP> alors <SEP> la
<tb> partition <SEP> mémoire <SEP> reste <SEP> inchangée.
<tb>
L'ajout <SEP> d'une <SEP> page <SEP> de <SEP> mémoire <SEP> programmes <SEP> se <SEP> traduit <SEP> toujours <SEP> par <SEP> l'invalidation <SEP> de <SEP> n
<tb> pages <SEP> de <SEP> mémoire <SEP> données <SEP> à <SEP> partir <SEP> de <SEP> la <SEP> dernière <SEP> page <SEP> valide, <SEP> et <SEP> la <SEP> validation <SEP> de <SEP> la <SEP> page
<tb> de <SEP> mémoire <SEP> programmes <SEP> située <SEP> après <SEP> la <SEP> dernière <SEP> page <SEP> valide. <SEP> Une <SEP> page <SEP> nouvellement
<tb> ajoutée <SEP> à <SEP> la <SEP> mémoire <SEP> programmes <SEP> déclenche <SEP> l'exception <SEP> si <SEP> l'on <SEP> tente <SEP> de <SEP> l'exécuter <SEP> avant
<tb> de <SEP> l'avoir <SEP> initialisée <SEP> par <SEP> une <SEP> instruction <SEP> PPC.
<tb>
<tb> pages <SEP> de <SEP> mémoire <SEP> données <SEP> à <SEP> partir <SEP> de <SEP> la <SEP> dernière <SEP> page <SEP> valide, <SEP> et <SEP> la <SEP> validation <SEP> de <SEP> la <SEP> page
<tb> de <SEP> mémoire <SEP> programmes <SEP> située <SEP> après <SEP> la <SEP> dernière <SEP> page <SEP> valide. <SEP> Une <SEP> page <SEP> nouvellement
<tb> ajoutée <SEP> à <SEP> la <SEP> mémoire <SEP> programmes <SEP> déclenche <SEP> l'exception <SEP> si <SEP> l'on <SEP> tente <SEP> de <SEP> l'exécuter <SEP> avant
<tb> de <SEP> l'avoir <SEP> initialisée <SEP> par <SEP> une <SEP> instruction <SEP> PPC.
<tb>
Inversement, <SEP> la <SEP> suppression <SEP> d'une <SEP> page <SEP> de <SEP> mémoire <SEP> programmes <SEP> se <SEP> traduit <SEP> toujours <SEP> par
<tb> la <SEP> validation <SEP> de <SEP> n <SEP> pages <SEP> de <SEP> mémoire <SEP> données <SEP> situées <SEP> immédiatement <SEP> à <SEP> la <SEP> suite <SEP> de <SEP> la
<tb> dernière <SEP> page <SEP> valide, <SEP> et <SEP> l'invalidation <SEP> de <SEP> la <SEP> dernière <SEP> page <SEP> valide <SEP> de <SEP> mémoire
<tb> programmes. <SEP> Tous <SEP> les <SEP> mots <SEP> de <SEP> ces <SEP> nouvelles <SEP> pages <SEP> de <SEP> mémoire <SEP> données <SEP> prennent <SEP> la
<tb> valeur <SEP> 0.
<tb>
<tb> la <SEP> validation <SEP> de <SEP> n <SEP> pages <SEP> de <SEP> mémoire <SEP> données <SEP> situées <SEP> immédiatement <SEP> à <SEP> la <SEP> suite <SEP> de <SEP> la
<tb> dernière <SEP> page <SEP> valide, <SEP> et <SEP> l'invalidation <SEP> de <SEP> la <SEP> dernière <SEP> page <SEP> valide <SEP> de <SEP> mémoire
<tb> programmes. <SEP> Tous <SEP> les <SEP> mots <SEP> de <SEP> ces <SEP> nouvelles <SEP> pages <SEP> de <SEP> mémoire <SEP> données <SEP> prennent <SEP> la
<tb> valeur <SEP> 0.
<tb>
Le <SEP> nombre <SEP> n <SEP> de <SEP> pages <SEP> de <SEP> mémoire <SEP> données <SEP> ajoutées <SEP> ou <SEP> retirées <SEP> dépend <SEP> de
<tb> l'implémentation <SEP> du <SEP> processeur. <SEP> II <SEP> est <SEP> compris <SEP> entre <SEP> 1 <SEP> et <SEP> 8 <SEP> (inclus).
<tb>
<tb> l'implémentation <SEP> du <SEP> processeur. <SEP> II <SEP> est <SEP> compris <SEP> entre <SEP> 1 <SEP> et <SEP> 8 <SEP> (inclus).
<tb>
Codage <SEP> : <SEP> OOOllrrrrrrrrrrr <SEP> xxxxxxxxxxxxxxxx
<tb> rrrrrrrrrrr <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rr <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
Les opérations relatives à l'interruption
<tb> rrrrrrrrrrr <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rr <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
Les opérations relatives à l'interruption
<tb>
<tb> SIP
<tb> Set <SEP> Interrupt <SEP> Page-Défini <SEP> la <SEP> page <SEP> du <SEP> programme <SEP> d'interruption
<tb> Syntaxe <SEP> : <SEP> SIP <SEP> Rr
<tb> Description <SEP> : <SEP> Défini <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> programmes <SEP> à <SEP> appeler <SEP> en <SEP> cas <SEP> d'interruption,
<tb> dont <SEP> le <SEP> numéro <SEP> est <SEP> indiqué <SEP> relativement <SEP> à <SEP> la <SEP> page <SEP> couramment <SEP> exécutée <SEP> dans <SEP> le <SEP> registre
<tb> Rr.
<tb>
<tb> SIP
<tb> Set <SEP> Interrupt <SEP> Page-Défini <SEP> la <SEP> page <SEP> du <SEP> programme <SEP> d'interruption
<tb> Syntaxe <SEP> : <SEP> SIP <SEP> Rr
<tb> Description <SEP> : <SEP> Défini <SEP> la <SEP> page <SEP> de <SEP> mémoire <SEP> programmes <SEP> à <SEP> appeler <SEP> en <SEP> cas <SEP> d'interruption,
<tb> dont <SEP> le <SEP> numéro <SEP> est <SEP> indiqué <SEP> relativement <SEP> à <SEP> la <SEP> page <SEP> couramment <SEP> exécutée <SEP> dans <SEP> le <SEP> registre
<tb> Rr.
<tb>
Opération <SEP> : <SEP> IV <SEP> < -PP <SEP> + <SEP> (Rr <SEP> étendu <SEP> par <SEP> son <SEP> signe)
<tb>
<tb>
<Desc/Clms Page number 36>
<tb>
<tb> Codage <SEP> : <SEP> Olll0rrrrrrrrrrr <SEP> xxxxxxxxxxxxxxxx
<tb> rrrrrrrrrrr <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rr <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> RTI
<tb> ReTum <SEP> from <SEP> Interrupt-Retour <SEP> d'interruption
<tb> Syntaxe <SEP> : <SEP> RTI
<tb> Description <SEP> : <SEP> Reprend <SEP> le <SEP> déroulement <SEP> normal <SEP> du <SEP> programme <SEP> interrompu <SEP> par
<tb> l'interruption <SEP> en <SEP> restaurant <SEP> certains <SEP> registres <SEP> du <SEP> processeur. <SEP> Si <SEP> la <SEP> page <SEP> de <SEP> retour <SEP> est
<tb> invalide, <SEP> l'exception <SEP> est <SEP> déclenchée.
<tb>
<tb> Codage <SEP> : <SEP> Olll0rrrrrrrrrrr <SEP> xxxxxxxxxxxxxxxx
<tb> rrrrrrrrrrr <SEP> : <SEP> numéro <SEP> du <SEP> registre <SEP> Rr <SEP> entre <SEP> 0 <SEP> et <SEP> 2047
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb> RTI
<tb> ReTum <SEP> from <SEP> Interrupt-Retour <SEP> d'interruption
<tb> Syntaxe <SEP> : <SEP> RTI
<tb> Description <SEP> : <SEP> Reprend <SEP> le <SEP> déroulement <SEP> normal <SEP> du <SEP> programme <SEP> interrompu <SEP> par
<tb> l'interruption <SEP> en <SEP> restaurant <SEP> certains <SEP> registres <SEP> du <SEP> processeur. <SEP> Si <SEP> la <SEP> page <SEP> de <SEP> retour <SEP> est
<tb> invalide, <SEP> l'exception <SEP> est <SEP> déclenchée.
<tb>
Opération <SEP> : <SEP> Si <SEP> PPI <SEP> pointe <SEP> sur <SEP> une <SEP> page <SEP> invalide, <SEP> alors <SEP> l'exception <SEP> est <SEP> déclenchée <SEP> ; <SEP> Sinon
<tb> Z <SEP> < -ZI <SEP> ; <SEP> N <SEP> < -NI <SEP> ; <SEP> 0 <SEP> ± <SEP> 01 <SEP> ; <SEP> C <SEP> < -CI <SEP> ; <SEP> R2047 <SEP> < -RI <SEP> ; <SEP> PP <SEP> < -PPI <SEP> ; <SEP> IP <SEP> < -IPI
<tb> Codage <SEP> : <SEP> Ollllxxxxxxxxxxx <SEP> xxxxxxxxxxxxxxxx
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
<tb> Z <SEP> < -ZI <SEP> ; <SEP> N <SEP> < -NI <SEP> ; <SEP> 0 <SEP> ± <SEP> 01 <SEP> ; <SEP> C <SEP> < -CI <SEP> ; <SEP> R2047 <SEP> < -RI <SEP> ; <SEP> PP <SEP> < -PPI <SEP> ; <SEP> IP <SEP> < -IPI
<tb> Codage <SEP> : <SEP> Ollllxxxxxxxxxxx <SEP> xxxxxxxxxxxxxxxx
<tb> x <SEP> : <SEP> inutilisé, <SEP> valeur <SEP> indifférente
<tb>
L'EXCEPTION ET L'INTERRUPTION
L'exception et l'interruption sont des mécanismes qui déroutent l'exécution séquentielle des programmes sous certaines conditions.
L'exception et l'interruption sont des mécanismes qui déroutent l'exécution séquentielle des programmes sous certaines conditions.
L'exception
Le mécanisme d'exception déroute l'exécution séquentielle des instructions lorsqu'une instruction tente d'effectuer une opération invalide. Elle sauvegarde alors le registre PP dans la première page de mémoire données. Ci-dessous, [adresse] représente une adresse dans la première page de mémoire données.
Le mécanisme d'exception déroute l'exécution séquentielle des instructions lorsqu'une instruction tente d'effectuer une opération invalide. Elle sauvegarde alors le registre PP dans la première page de mémoire données. Ci-dessous, [adresse] représente une adresse dans la première page de mémoire données.
L'exception se déroule comme suit : - Appel au sous-programme de réinitialisation du Cartographe/Enumérateur.
[0] < -nombre n de fenêtres de codage de PP - [1] à [n] ± registre PP, du mot de plus fort poids au mot de plus faible poids
<Desc/Clms Page number 37>
- PP ± 0 - IP < -0
Lors du premier démarrage de la machine, tous les registres de la machine présentés précédemment (sauf le registre MER) sont mis à 0, puis l'exception est déclenchée.
Lors du premier démarrage de la machine, tous les registres de la machine présentés précédemment (sauf le registre MER) sont mis à 0, puis l'exception est déclenchée.
Outre le démarrage, la cause de déclenchement d'une exception est le chargement de MBR avec une adresse invalide, le chargement de PP avec un numéro de page invalide, la copie d'une page de mémoire données vers une page de mémoire programmes invalide, une répartition invalide entre les mémoires données et programmes, ou bien une opération illégale sur le registre MER.
L'interruption Le mécanisme d'interruption en niveau un interrompt l'exécution séquentielle des instructions. L'interruption ne peut survenir que pendant l'exécution d'un programme situé dans une page interruptible. Elle ne peut en aucun cas intervenir au cours de l'exécution d'une instruction, mais seulement entre deux instructions. D'autre part, dans le cas d'une page interruptible, à partir du moment où l'interruption est demandée par le Cartographe/Enumérateur, un maximum de 16 instructions peuvent être exécutées avant le déroutement vers la page du programme d'interruption.
En cas d'interruption, le mécanisme est le suivant : - Sauvegarde les registres PP et IP dans les registres internes PPI et IPI - Sauvegarde le registre R2047 dans le registre interne RI
- Sauvegarde les indicateurs Z, N, 0 et C dans les indicateurs internes ZI, NI, 01 et CI - R2047 numéro du périphérique ayant déclenché l'interruption (fourni par le Cartographe/Enumérateur) Si IV désigne une page de mémoire programmes invalide o Déclenche l'exception Sinon
o Sinon 0 IP < -0
Pour revenir au programme qui a été interrompu, le programme de gestion de l'interruption doit exécuter une instruction RTI. Le retour d'interruption est alors
- Sauvegarde les indicateurs Z, N, 0 et C dans les indicateurs internes ZI, NI, 01 et CI - R2047 numéro du périphérique ayant déclenché l'interruption (fourni par le Cartographe/Enumérateur) Si IV désigne une page de mémoire programmes invalide o Déclenche l'exception Sinon
o Sinon 0 IP < -0
Pour revenir au programme qui a été interrompu, le programme de gestion de l'interruption doit exécuter une instruction RTI. Le retour d'interruption est alors
<Desc/Clms Page number 38>
déclenché. Les registres PP et IP sont restaurés à partir de PPI et IPI ; R2047 est restauré à partir de RI ; Z, N, 0, et C sont restaurés à partir de ZI, NI, 01, et CI respectivement.
Le programme de démarrage
Ce programme est appelé immédiatement après le déclenchement d'une exception et prend en charge la machine de niveau un. Il débute obligatoirement à l'adresse 0 de la première page de mémoire programmes. C'est une succession de codes d'instructions de niveau un qui peuvent contenir n'importe quel programme dans la limite de la première page de mémoire programmes.
Ce programme est appelé immédiatement après le déclenchement d'une exception et prend en charge la machine de niveau un. Il débute obligatoirement à l'adresse 0 de la première page de mémoire programmes. C'est une succession de codes d'instructions de niveau un qui peuvent contenir n'importe quel programme dans la limite de la première page de mémoire programmes.
Claims (9)
1-Dispositif de traitement d'information, caractérisé par : - des machines virtuelles imbriquées, c'est-à-dire qu'une machine est émulée par une autre, hiérarchiquement de la plus simple à la plus complexe, c'est-à-dire qu'une machine donnée émule totalement une autre machine plus compliquée et élaborée, chaque machine virtuelle ayant une architecture originale, c'est-à-dire se différenciant de l'architecture des autres machines de la hiérarchie de machines virtuelles, chaque machine virtuelle étant adaptée à exécuter un programme d'émulation ou de compilation dynamique simulant l'architecture virtuelle plus complexe de niveau immédiatement supérieur, une machine virtuelle d'un niveau donné dans la hiérarchie possédant donc une architecture plus simple que celles de toutes les machines virtuelles de niveau supérieur ; - les langages machines des deux niveaux de machines virtuelles les plus bas de la hiérarchie sont spécifiquement conçus pour permettre l'exécution de toutes les opérations du niveau supérieur ; - un niveau de la hiérarchie, constituant le sommet de la hiérarchie, n'émule aucun autre niveau de la hiérarchie ; - tout niveau de la hiérarchie peut être lié à une machine réelle généraliste (la machine support) au moyen d'un programme exécutable d'émulation ou de compilation dynamique spécifique à cette machine réelle ; et - au moins une machine virtuelle dite"bimode"étant adaptée à être implémentée par un compilateur dynamique écrit pour une machine virtuelle d'un niveau inférieur ou une machine support réelle, et adaptée à être implémentée par un émulateur écrit pour une machine virtuelle d'un niveau inférieur ou une machine support réelle.
2-Dispositif selon la revendication 1, caractérisé en ce que une machine virtuelle à trente deux instructions est une machine bimode.
3-Dispositif selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que la machine virtuelle bimode utilise les mêmes protocoles de gestion des périphériques que ceux utilisés par les machines virtuelle de niveau hiérarchique inférieur.
4-Dispositif selon l'une quelconque des revendications 1 à 3, caractérisé en ce que une machine virtuelle bimode possède deux espaces de mémoire distincts, l'un pour les données, dit"mémoire donnée", l'autre pour les programmes, dit"mémoire programme", pour être exécuté, un programme étant d'abord chargé en mémoire données, puis copié
<Desc/Clms Page number 40>
vers la mémoire programmes grâce à une instruction spécifique dite"de copie"de la machine bimode, la compilation dynamique intervenant exclusivement lors de l'exécution de cette instruction de copie.
5-Dispositif selon l'une quelconque des revendications 1 à 4, caractérisé en ce que une machine bimode met en oeuvre des opérations de rupture de séquence (instructions Jcc, JP et JAR, ainsi que le mécanisme d'interruption) permettant au compilateur dynamique de prévoir systématiquement la destination du saut induit par la rupture de séquence.
6-Dispositif selon l'une quelconque des revendications 1 à 5, caractérisé en ce que une machine bimode met en oeuvre une instruction répartissant la mémoire totale disponible entre les espaces de mémoire données et de mémoire programme.
7-Dispositif selon l'une quelconque des revendications 1 à 6, caractérisé en ce que une machine bimode met en oeuvre une mise à jour optionnelle d'indicateurs d'état.
8-Dispositif selon l'une quelconque des revendications 1 à 7, caractérisé en ce que, pour une machine virtuelle bimode, toutes les opérations relatives à la gestion et à l'accès à la mémoire respectent les contraintes d'un niveau hiérarchique inférieur.
9-Procédé de traitement d'information, caractérisé par : - au moins deux machines virtuelles imbriquées, c'est-à-dire qu'une machine virtuelle est émulée par une autre, hiérarchiquement plus simple et qu'une machine donnée émule totalement une autre machine plus compliquée et élaborée, chaque machine virtuelle ayant une architecture originale, c'est-à-dire se différenciant de l'architecture des autres machines de la hiérarchie de machines virtuelles, - chaque machine virtuelle étant adaptée à exécuter un programme d'émulation ou de compilation dynamique simulant l'architecture virtuelle plus complexe de niveau immédiatement supérieur, une machine virtuelle d'un niveau donné dans la hiérarchie possédant donc une architecture plus simple que toutes les machines virtuelles de niveau supérieur et - au moins une machine virtuelle étant adaptée à être implémentée par un compilateur dynamique écrit pour une machine virtuelle d'un niveau inférieur ou une machine support réelle, et adaptée à être implémentée par un émulateur écrit pour une machine virtuelle d'un niveau inférieur ou une machine support réelle.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0203260A FR2833729A1 (fr) | 2001-12-14 | 2002-03-15 | Machine universelle pour la simulation d'une architecture informatique a vocation generaliste |
PCT/FR2002/004359 WO2003052542A2 (fr) | 2001-12-14 | 2002-12-13 | Procede et dispositif de traitement de l'information |
AU2002364652A AU2002364652A1 (en) | 2001-12-14 | 2002-12-13 | Data processing method and device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0116237A FR2833728A1 (fr) | 2001-12-14 | 2001-12-14 | Machine universelle pour la simulation d'une architecture informatique a vocation generaliste |
FR0203260A FR2833729A1 (fr) | 2001-12-14 | 2002-03-15 | Machine universelle pour la simulation d'une architecture informatique a vocation generaliste |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2833729A1 true FR2833729A1 (fr) | 2003-06-20 |
Family
ID=26213299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0203260A Withdrawn FR2833729A1 (fr) | 2001-12-14 | 2002-03-15 | Machine universelle pour la simulation d'une architecture informatique a vocation generaliste |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2833729A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003052542A2 (fr) * | 2001-12-14 | 2003-06-26 | David Carrere | Procede et dispositif de traitement de l'information |
US8490090B2 (en) | 2011-02-17 | 2013-07-16 | International Business Machines Corporation | Multilevel support in a nested virtualization environment |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751982A (en) * | 1995-03-31 | 1998-05-12 | Apple Computer, Inc. | Software emulation system with dynamic translation of emulated instructions for increased processing speed |
-
2002
- 2002-03-15 FR FR0203260A patent/FR2833729A1/fr not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751982A (en) * | 1995-03-31 | 1998-05-12 | Apple Computer, Inc. | Software emulation system with dynamic translation of emulated instructions for increased processing speed |
Non-Patent Citations (3)
Title |
---|
HALFHILL T R: "EMULATION: RISC'S SECRET WEAPON", BYTE, MCGRAW-HILL INC. ST PETERBOROUGH, US, vol. 19, no. 4, 1 April 1994 (1994-04-01), pages 119 - 120,122,124,126,128,130, XP000435283, ISSN: 0360-5280 * |
MRVA M ET AL: "Design Principles of Structure-Independent Operating Systems for Multi-Microprocessor Systems", 4 September 1974, PAGE(S) 28-33, XP010300686 * |
TANENBAUM A S: "Structured Computer Organization", 1976, PRENTICE-HALL, INC., XP002225824 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003052542A2 (fr) * | 2001-12-14 | 2003-06-26 | David Carrere | Procede et dispositif de traitement de l'information |
WO2003052542A3 (fr) * | 2001-12-14 | 2004-06-17 | David Carrere | Procede et dispositif de traitement de l'information |
US8490090B2 (en) | 2011-02-17 | 2013-07-16 | International Business Machines Corporation | Multilevel support in a nested virtualization environment |
DE112012000883T5 (de) | 2011-02-17 | 2013-11-14 | International Business Machines Corporation | Unterstützung mehrerer Ebenen in einer verschachtelten Virtualisierungsumgebung |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108475223B (zh) | 检测计算环境的堆栈的损坏的方法、系统和计算机程序产品 | |
FR2598835A1 (fr) | Cache de blocs de donnees empiles sur une puce de microprocesseur | |
US7162711B2 (en) | Method of automatically virtualizing core native libraries of a virtual machine | |
FR2613093A1 (fr) | Systeme de calcul a adressage independant du mode d'exploitation | |
Skorstengaard et al. | Reasoning about a machine with local capabilities: Provably safe stack and return pointer management | |
Tang et al. | Exploring control flow guard in windows 10 | |
US8650537B2 (en) | Optimizing an object-oriented program by transforming invocations of synthetic accessor methods | |
JPH08506195A (ja) | 一つのプログラムの中でまたは1つのプロセッサ環境に於て、夫々のオブジェクトコードタイプが異なる複数のプログラムセグメントを実行するための装置 | |
KR20070118663A (ko) | 고유 명령어를 이용한 레지스터 화일로서의 오퍼랜드스택에 대한 마이크로프로세서 엑세스 | |
US9197446B2 (en) | Address pinning | |
EP1290554B1 (fr) | Systeme informatique modulaire et procede associe | |
CN115408004A (zh) | 一种Web应用系统存算一体化适配优化方法及装置 | |
EP2828747A1 (fr) | Systèmes et procédés de traitement d'émulation hybride et de fonction noyau | |
EP1365323B1 (fr) | Procédé d'échange d'informations entre systèmes d'exploitation cohabitant sur un même ordinateur | |
FR2833729A1 (fr) | Machine universelle pour la simulation d'une architecture informatique a vocation generaliste | |
US20040117805A1 (en) | Method of reducing interference among applications co-located in a process when using dynamic libraries | |
FR2801693A1 (fr) | Procedes et appareils pour detecter la presence eventuelle d'exceptions | |
LU500621B1 (en) | Enhancing shadow stack enforcement after process creation | |
EP2414931B1 (fr) | Procede de creation d'une adresse virtuelle pour une entité logicielle dite "fille" appartenant au contexte d'une entité logicielle dite "mère" | |
CN112084013B (zh) | 一种程序调用方法、芯片及计算机存储介质 | |
FR2645664A1 (fr) | Microprocesseur a verification selectionnable de l'alignement des references memoire | |
CN114860382A (zh) | 数据处理方法及装置 | |
McKitterick | Development of benos: an x86 operating system | |
CN118395421A (zh) | 一种基于多内核页表模板的内核数据隔离方法及系统 | |
Ciesla et al. | Object-Oriented Programming (OOP) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |