40 lines
1.8 KiB
Markdown
Executable File
40 lines
1.8 KiB
Markdown
Executable File
---
|
||
title: M999 - jeu d'instructions 2
|
||
author: Philippe BODDAERT
|
||
---
|
||
|
||
# 1. Contexte
|
||
|
||
Le processeur M999 est doté d'un jeu d'instructions.
|
||
|
||
Une instruction est un mot de 3 chiffres, appelé _opcode_, correspondant à une opération à effectuer par le processeur.
|
||
|
||
Le premier chiffre de l'opcode détermine le type de l'opération (copie, opération arithmétique, saut d'instruction ...).
|
||
|
||
Les deux derniers chiffres indiquent, selon le type de l'opération, une adresse mémoire, un registre, un sous-type d'opération...
|
||
|
||
# 2. Jeu d'instructions
|
||
|
||
| op0 | op1 op2 | instruction à réaliser |
|
||
| ----- | --------- | ------------------------------------------------------------ |
|
||
| 0 | _addr_ | copie le mot mémoire d’adresse _addr_ dans le registre A |
|
||
| 1 | _addr_ | copie le mot mémoire d’adresse _addr_ dans le registre B |
|
||
| 2 | _addr_ | copie le contenu du registre R dans le mot mémoire d'adresse _addr_ |
|
||
| 3 | 0 0 | ajoute les valeurs des registres A et B, produit le résultat dans R |
|
||
| 3 | 0 1 | soustrait la valeur du registre B à celle du registre A, produit le résultat dans R |
|
||
| 3 | 0 2 | divise la valeur du registre A par 2, le quotient est placé dans R, le reste dans B |
|
||
| 3 | 0 3 | multiplie la valeur du registre A par 2, le résultat est placé dans R |
|
||
| 3 | 9 9 | ne fait rien |
|
||
| 4 | _rs_ _rd_ | copie la valeur du registre source _rs_ dans le registre destination _rd_ |
|
||
| 5 | _addr_ | branche en _addr_ (PC reçoit la valeur _addr_) |
|
||
| 6 | _addr_ | branche en _addr_ si la valeur du registre R est strictement positive |
|
||
|
||
Les registres (_rs_, _rd_) sont désignés par les valeurs suivantes :
|
||
|
||
valeur | registre
|
||
:------: | :--------:
|
||
0 | A
|
||
1 | B
|
||
2 | R
|
||
|