Page suivante Page précédente Table des matières

6. Pseudo Code

6.1 Généralités

Nous avons implémenté une machine virtuelle simple au sein du noyau. Celle-ci opère sur un paquet TCP en entrée et gère un état interne. Son état est composé de :

Le code executé par la machine virtuelle est composé d'instructions sur 32 bits (en ordre de la machine) regroupant un mnémonique (sur 8 bits), une option (sur 4 bits) et un opérande (sur 20 bits), comme visible ci après.

0              7 8     11 12                                    31
+---------------+--------+---------------------------------------+
|    Mnemonic   | Option |              Operand                  |
+---------------+--------+---------------------------------------+

6.2 Instructions

TEST

Code : 01

Effectue un test sur l'objet défini par l'option. Si le test est vrai, le pointeur d'instruction passe de l'instruction i à l'instruction i+2. Si le test est faux, l'exécution se continue à l'instruction i+1.

Les options des tests sont les suivantes :

JMP

Code : 02

Continue l'exécution à l'instruction dont le numéro est l'opérande.

PUT

Code : 03

Insère une option TCP dans le buffer d'options TCP. L'option TCP insérée est l'opérande, sa source est déterminée par l'option de l'instruction.

Les options sont les suivantes :

SET

Code : 04

Définit la valeur d'un registre de la machine virtuelle. Le registre concerné et le type d'affectation sont déterminés par l'option. La valeur utilisée est l'opérande.

Les options acceptées sont les suivantes :

RET

Code : 05

Termine l'exécution du programme en retournant l'opérande.

Les opérandes acceptés sont les suivants :

6.3 Options TCP

Pour les différentes instructions acceptant des options TCP, les options suivantes sont reconnues :


Page suivante Page précédente Table des matières