Le Little Man Computer est un modèle éducatif d'ordinateur qui a été inventé dans les années 60 par le Dr. Stuart Madnick. Il s'agit d'une pièce dans laquelle il y a un petit bonhomme, 100 boîtes à lettres numérotées de 0 à 99 et quatre boîtes spéciales marquées Entrée, Sortie, Compteur d'instruction et Accumulateur. Sur cette page vous pourrez simuler le fonctionnement d'un Little Man Computer.
Les boîtes représentent la mémoire du Little Man Computer. Le numéro d'une boîte est ce qu'on appelle son adresse, donc lorsque l'on dit "la valeur à l'adresse A", c'est la même chose que "le nombre qui est dans la boîte numéro A". Les ordinateurs modernes ont bien plus de 100 cases dans leur mémoire, par exemple celui que j'utilise en a précisément 16241912. Les deux boîtes spéciales entrée et sortie permettent au Little Man Computer de communiquer avec l'extérieur de la pièce, c'est avec le même système que l'on interagit avec les ordinateurs lorsque l'on utilise un clavier ou un écran.
Pour programmer l'ordinateur, on lui donne une série d'instructions élémentaires à effectuer (addition, soustraction, déplacer des valeurs dans la mémoire, ...). Ces instructions sont codés en nombres qui sont mis dans la mémoire, il n'y a donc pas de différence entre les instructions et les données. Pour faire fonctionner l'ordinateur, le petit bonhomme a un tableau qui explique le codage des instructions. D'abord, il prend le nombre qui se trouve dans la boîte dont le numéro est indiqué par le compteur d'instruction. Ensuite il regarde dans le tableau l'action qu'il doit effectuer. Enfin, il passe à l'instruction suivante en ajoutant 1 au compteur d'instruction.
Plus d'informations sur la page Wikipédia à propos du Little Man Computer.
Plusieurs personnes ont codé de différentes manières les instructions de leur Little Man Computer, mais tout le monde est d'accord pour les représenter par des nombres entre 0 et 999, avec les deux derniers chiffre qui peuvent donner un numéro de boîte. Voilà les instructions qu'utilise ma version du Little Man Computer :
| Code | Nom | Mnémonique | Action |
|---|---|---|---|
| 000 | Arrêt | HLT | Arrêter l'exécution du programme, le compteur d'instruction n'est pas incrémenté. |
| 001 | Entrée | INP | Prendre le nombre qui est dans la boîte d'entrée et le mettre dans l'accumulateur. |
| 002 | Sortie | OUT | Prendre le nombre qui est dans l'accumulateur et le mettre dans la boîte de sortie. |
| 100 à 199 | Sauvegarde | STA | Prendre le nombre qui est dans l'accumulateur et le mettre à l'adresse formée par les deux derniers chiffres du code. |
| 200 à 299 | Chargement | LDA | Prendre le nombre dans la boîte à l'adresse formée par les deux derniers chiffres du code et le mettre dans l'accumulateur. |
| 300 à 399 | Addition | ADD | Ajouter à l'accumulateur la valeur à l'adresse formée par les deux derniers chiffres du code. |
| 400 à 499 | Soustraction | SUB | Soustraire à l'accumulateur la valeur à l'adresse formée par les deux derniers chiffres du code. |
| 500 à 599 | Saut | BRA | Mettre dans le compteur d'instruction le nombre formé par les deux derniers chiffres du code. Ne pas incrémenter le compteur d'instruction. |
| 600 à 699 | Saut si zéro | BRZ | Si la valeur de l'accumulateur est égale à zéro alors faire BRA, sinon incrémenter le compteur d'instruction uniquement si le saut n'a pas eu lieu. |
| 700 à 799 | Saut si positif | BRP | Si la valeur de l'accumulateur est supérieure ou égale à zéro alors faire BRA, sinon incrémenter le compteur d'instruction uniquement si le saut n'a pas eu lieu. |
| 800 à 899 | Saut si négatif | BRN | Si la valeur de l'accumulateur est strictement inférieure à zéro alors faire BRA, sinon incrémenter le compteur d'instruction uniquement si le saut n'a pas eu lieu. |
La case jaune est celle que pointe le compteur d'instruction, c'est l'instruction qui va être effectuée en cliquant sur le bouton "Instruction suivante". À chaque instruction un message apparaît pour expliquer ce qu'il vient de se produire. Le bouton "Remise à zéro" met des zéros dans le compteur et dans l'accumulateur mais pas la mémoire.