Les caractéristiques principales de notre processeur sont les suivantes :
- Le jeu d’instructions du processeur comporte 16 instructions
- Chaque instruction est codée sur deux octets :
- Le premier octet contient le code de l’opération proprement dite ;
- Le deuxième octet contient un pointeur qui donne l’adresse en mémoire d’un éventuel opérande.
-
L’adresse de l’instruction courante en RAM est notée PC ("Program Counter").
- La mémoire adressable par le processeur ne dépasse pas 256 octets (8 bits d’adresse)
- Les données traitées sont des entiers naturels limités à l’intervalle 0...255 (8 bits de données)
- L’opérateur de calcul du processeur se limite à quelques opérations logiques et arithmétiques simples (voir tableau). Le résultat de l’opération effectuée est stocké dans l’accumulateur.
- Lors d’une modification de l’accumulateur, deux signaux supplémentaires sont générés et mémorisés :
-
Z si ce résultat est nul
-
C si une retenue sortante existe (dans le cas des opérations arithmétiques et de rotation)
-
Le tableau 2 résume le jeu d’instruction du microprocesseur.
|
Mnémonique |
Instruction |
Effet sur les données |
Effet sur le PC |
code (binaire 8bits) |
code (décimal) |
|
NOP |
No OP: pas d'opération |
A inchangé |
PC ⇐ PC + 2 |
0 |
0 |
|
XOR |
XOR bit à bit |
A ⇐ A xor (AD) |
PC ⇐ PC + 2 |
1 |
1 |
|
AND |
AND bit à bit |
A ⇐ A and (AD) |
PC ⇐ PC + 2 |
10 |
2 |
|
OR |
OR bit à bit |
A ⇐ A or (AD) |
PC ⇐ PC + 2 |
11 |
3 |
|
ADD |
ADDition sans retenue |
A ⇐ A + (AD) |
PC ⇐ PC + 2 |
100 |
4 |
|
ADC |
ADDition avec retenue |
A ⇐ A + (AD) + C |
PC ⇐ PC + 2 |
101 |
5 |
|
SUB |
Soustraction sans retenue |
A ⇐ A - (AD) |
PC ⇐ PC + 2 |
110 |
6 |
|
SBC |
Soustraction avec retenue |
A ⇐ A - (AD) - C |
PC ⇐ PC + 2 |
111 |
7 |
|
ROL |
Rotation à gauche |
A ⇐ A[6..0]A[7] |
PC ⇐ PC + 2 |
1000 |
8 |
|
ROR |
Rotation à droite |
A ⇐ A[0]A[7..1] |
PC ⇐ PC + 2 |
1001 |
9 |
|
LDA |
LoaD Acc: charger l'accu. depuis la mémoire |
A ⇐ (AD) |
PC ⇐ PC + 2 |
1010 |
10 |
|
STA |
STore Acc: ranger l'accu. dans la mémoire |
(AD) ⇐ A A inchangé |
PC ⇐ PC + 2 |
1011 |
11 |
|
OUT |
OUTput: sortie vers BZ |
BZ ⇐ (AD)(0) A inchangé |
PC ⇐ PC + 2 |
1100 |
12 |
|
JMP |
JuMP: saut inconditionnel |
A inchangé |
PC ⇐ AD |
1101 |
13 |
|
JNC |
Sauter si pas de retenue |
A inchangé |
PC ⇐ AD si C=0, PC + 2 sinon |
1110 |
14 |
|
JNZ |
Sauter si non nul |
A inchangé |
PC ⇐ AD si Z=0, PC + 2 sinon |
1111 |
15 |
Tab. 2 : Jeu d’instructions du processeur
- La notation (AD) représente le contenu de la case mémoire d’adresse AD
- L’expression PC ⇐ PC + 2 indique que la valeur du pointeur programme, pour l’instruction suivante, sera la valeur de l'instruction courante incrémentée de 2.
- L’expression A[6..0] indique les 7 bits de poids faibles du registre A.
- De même, (AD)[0] indique le bit de poids 0 du contenu de la mémoire d’adresse AD.
Nous vous conseillons de vous familiariser avec le jeu d’instructions et avec les codes associés au processeur en étudiant le programme test.s qui servira de jeu de test de simulation pour le processeur.