Compilateur pour un modèle de microprocesseur

Qu'est-ce que c'est ?

On utilise ici un langage simplifié apparenté à Python. On compile notre programme en pseudo-python pour obtenir un programme en Assembleur Ce langage assembleur et le microprocesseur pour lesquel il est fait sont décrits dans cette notice.

Vous pouvez accéder directement au simulateur mais sans programme.

Pour placer un programme dans le simulateur, utilisez ce qui suit. Vous pouvez :

Dans tous les cas, quand vous avez obtenu le code binaire, vous pouvez transférer au simulateur pour exécution.

Pseudo-python

On reprend surtout la syntaxe de Python basée sur les indentations et les « : ».

Vous avez droit aux mots clés while, if, else, elif.

Pour l'affichage, vous pouvez utiliser print(...) en ne mettant une expression ou une variable entre les parenthèses.

Pour les saisies clavier, vous pouvez utiliser la forme x = input(). Vous pouvez bien sûr changer le nom de variable.

Vous pouvez utiliser les opérateurs +, -, *, /, //, %, or, and, not et les comparaisons simples (pas de double comparaison comme 2 < x < 10 et / est compris comme une division entière).

Vous n'avez pas droit aux fonctions (donc à def et return) et à for

Enfin, les variables ne peuvent contenir que des entiers 16 bits.

Le bouton Exécuter permet d'envoyer le code python au simulateur de qui permettra de simuler en visualisant en parallèle le code python, le code assembleur et les variables.

Assembleur

Retrouvez la notice pour les détails de ce langage.

Une ligne de code devrait ressembler à loop MULT #45. Dans ce cas loop est une étiquette qui sert aux sauts. MULT est le mot clé de l'instruction et #45 est l'argument.

L'étiquette est optionnelle et certaines commandes n'ont pas d'argument.

Les lignes vides sont ignorées.

Le bouton Exécuter permet d'envoyer le code assembleur au simulateur de qui permettra de simuler en visualisant en parallèle le code assembleur et les variables.

Binaire

Chaque ligne d'instruction assembleur se traduit de façon univoque en un mot binaire de 16 bits. Dans des cas exceptionnel (voir notice) une ligne assembleur peut être traduite par 2 mots 16 bits successifs.

Le bouton Exécuter transmet le binaire au simulateur pour exécution.