Le jeu d'instructions à 3 bits de la SSEM permettait un maximum de 8 (23) instructions distinctes. Au contraire des conventions modernes, la mémoire de la machine était disposée avec les bits de poids forts à gauche ; le nombre 1 était donc représenté par « 100 », au lieu de « 001 », qui serait plus habituel.
Code binaire | Notation originale | Mnémonique moderne | Opération |
---|---|---|---|
000 | S, Cl | JMP S | Branchement vers l'instruction à l'adresse obtenue à l'adresse S indiquée (saut inconditionnel absolu) |
100 | Add S, Cl | JRP S | Branchement vers l'instruction à l'adresse correspondant au compteur programme plus (+) la valeur relative obtenue à l'adresse S indiquée (saut relatif inconditionnel) |
010 | -S, C | LDN S | Prendre le nombre à l'adresse S indiquée, calculer son opposé, et enregistrer le résultat dans l'accumulateur |
110 | c, S | STO S | Enregistrer le nombre dans l'accumulateur à l'adresse S indiquée |
001 ou 101. | SUB S | SUB S | Soustraire le nombre à l'adresse S indiquée de la valeur de l'accumulateur et enregistrer le résultat dans l'accumulateur |
011 | Test | CMP | Sauter l'instruction suivante si l'accumulateur contient une valeur négative |
111 | STOP | STP | Arrêt |
|
La présence d'opposé dans certaines opérations était une conséquence du manque de matériel dans la SSEM pour effectuer toute autre opération que la soustraction et l'opposé. La construction d'un additionneur ne fut pas considérée comme nécessaire avant le début des essais, car l'addition peut facilement être réalisée par la soustraction. Par exemple, x+y peut se calculer par −(−x−y). L'addition de deux nombres nécessitait donc quatre instructions. Le code suivant réalise ce calcul.
LDN X // charge −X dans l'accumulateur SUB Y // retranche Y de la valeur de l'accumulateur STO S // enregistre le résultat dans S LDN S // charge −S dans l'accumulateur
Les programmes étaient chargés sous forme binaire en parcourant tous les mots de la mémoire en séquence et en utilisant un ensemble de 32 interrupteurs, qui servaient de périphérique d'entrée, pour positionner la valeur de chaque bit de chaque mot à 0 ou 1. La SSEM n'avait pas de lecteur de carte ou ruban perforé.
Trois programmes furent écrits pour l'ordinateur. Le premier, qui consistait en 17 instructions, fut écrit par Kilburn et fonctionna le 21 juin 1948. Il était conçu pour trouver le plus grand facteur propre de 218 (262 144) en essayant tous les entiers à partir de 218−1 dans l'ordre décroissant. Les divisions étaient réalisées par des soustractions itérées du diviseur. La SSEM prit 3,5 millions d'opérations et 52 minutes pour trouver la solution (131 072). Le programme utilitait 8 mots de mémoire vive en plus de ses 17 mots d'instructions, ce qui donne une taille de programme de 25 mots.
Geoff Tootill écrivit une version modifiée du programme le mois suivant, et à la mi-juillet, Alan Turing, qui avait été nommé reader au département de mathématiques de l'université de Manchester en septembre 1948, écrivit le troisième programme, qui effectuait la division longue. Turing avait, à cette époque, été nommé directeur assistant du laboratoire de machines à calculer de l'université, poste symbolique car le laboratoire ne devint une réalité physique qu'en 1951.