Fonctionnement et jeu d’instructions du processeur

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.