Voici des exemples d’instructions en langage machine et en assembleur :

 

Langage               *   Langage                                Signification

Assembleur       *   machine                        (notation hexadécimale)

 

 

LR 9,3                      1893                  Charger dans le registre général 9 le contenu du registre général 3.

 

 

MVC 0(4,8),0(5)    D20380005000       Copier 4 octets à l’adresse contenue dans le registre 8 à partir des 4 octets qui sont à l’adresse contenue dans le registre 5.

 

 

BR 14                    07FE            Se brancher à l’instruction dont l’adresse est contenue dans le registre 14.

 

 

L 6,0(3)                58603000                Charger dans le registre 6 le contenu du mot de 4 octets qui est à l’adresse contenue dans le registre 3.

 

 

 

Ces exemples nous montrent le format des instructions :

 

Le premier octet est toujours le code instruction (18 pour LR, chargement registre, 58 pour L, chargement d’un mot dans un registre, etc.).

 Le code instruction occupe parfois les 2 premiers octets.

Les octets suivants indiquent tantôt la longueur sur laquelle porte l’instruction (cas du MVC), tantôt l’adresse des zones affectées, sous la forme déplacement + registre de base, ou déplacement + registre d’index + registre de base. L’adresse d’une donnée n’est jamais "en clair" dans l’instruction, elle résulte de l’addition d’un déplacement (de 000 à FFF) et du contenu des registres de base ou d’index, qui sont les registres généraux, excepté le registre 0.

 

Cet adressage indirect rend les programmes indépendants de l’endroit où ils seront chargés en mémoire : il suffit que le registre de base soit initialisé au début du programme à l’adresse de chargement, les adresses manipulées dans le programme seront exprimées par des déplacements par rapport à cette adresse.