After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Après la création du langage d'assemblage, il est primordial de déterminer comment représenter chaque instruction comme un nombre. |
This establishes a one-to-one correspondence between each instruction in the assembly language and each instruction code in the set of instruction codes. |
Ce qui établis une correspondance de un-à-un entre les instructions dans le langage d'assemblage et les lignes d'instruction dans le bloc de code d'instructions. |
Converting a program from assembly language to instruction codes is called assembling, and conversion from instruction codes back into assembly language is called disassembling. |
La conversion d'un programme du langage d'assemblage en codes d'instruction est nommée assemblage, et la conversion du code d'instruction en langage d'assemblage est appelée désassemblage. |
Several choices we must make at this point are: |
Nous avons multiples chois à faire à ce stade, et qui sont les suivants : |
What number is used to represent each assembly language instruction? |
Quel est le numéro utilisé pour représenter chaque instruction du langage d'assemblage ? |
How are instruction operands encoded? |
Comment les opérandes d'instruction sont-ils encodés ? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
Les opérandes font-ils partie du mot d'instruction (souvenez-vous, par mot je veux dire nombre), ou sont-ils des mots séparés (nombres) ? |
First, to answer the last question, since there are only small numbers of instructions and registers in this VM it should not be very difficult to encode all operands in a single instruction word, even if (for the sake of simplicity) I were to use a 16-bit instruction word. |
Tout d'abord, pour répondre à la dernière question, puisqu'il n'y a qu'un petit nombre d'instructions et de registres dans cette VM, il ne devrait pas être très difficile d'encoder tous les opérandes en un seul mot d'instruction, même si (par souci de simplicité) je devais utiliser un mot d'instruction de 16 bits. |
Thus, a 16-bit number written in hexadecimal has 4 digits, giving us easy access to 4 information fields, each containing 16 variations (0-9 and A-F). |
Ainsi, un nombre de 16 bits écrit en hexadécimal comporte 4 chiffres, ce qui nous permet d'accéder facilement à 4 champs d'information, chacun contenant 16 variantes (0-9 et A-F). |
The first digit of a machine word will be the instruction number. |
Le premier chiffre d'un mot machine sera le numéro de l'instruction. |
This gives our VM the potential for having up to 16 different instructions. |
Cela donne à notre VM la possibilité d'avoir jusqu'à 16 instructions différentes. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
C'est peu par rapport aux normes actuelles, mais c'est amplement suffisant pour notre exemple de machine virtuelle. |
The next three digits will be used for the operands. |
Les trois chiffres suivants seront utilisés pour les opérandes. |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
Ceux-ci peuvent être utilisés comme trois opérandes à 1 chiffre, deux opérandes à 1 et 2 chiffres ou un seul opérande à 3 chiffres. |
Having made these decisions, let us now establish the encoding. |
Après avoir pris ces décisions, établissons maintenant l'encodage. |
Recall that we have 16 instruction numbers available. |
Rappelons que nous disposons de 16 numéros d'instruction. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
L'instruction d'arrêt sera l'instruction 0, et il y a une raison importante de choisir 0 pour cette instruction. |
Since empty space in the computer's memory will most likely be filled with 0s, any run-away program will eventually encounter a 0 and attempt to execute this instruction, immediately halting the program. |
Comme l'espace vide dans la mémoire de l'ordinateur sera très probablement rempli de 0, tout programme en cours d'exécution finira par rencontrer un 0 et tentera d'exécuter cette instruction, arrêtant immédiatement le programme. |