After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Une fois que le langage assembleur est créé, il est nécessaire de déterminer comment représenter chaque instruction par 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. |
Cela établit une correspondance entre chaque instruction du langage assembleur et chaque code d'instruction dans le jeu 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. |
Convertir un programme dans le language assembleur en codes d'instruction s'appelle l'assemblage, et à l'inverse la conversion de codes d'instruction en un programme en language assembleur s'appelle le désassemblage. |
Several choices we must make at this point are: |
À ce moment nous avons plusieurs choix à faire: |
What number is used to represent each assembly language instruction? |
Quel nombre représente chaque instruction du langage assembleur? |
How are instruction operands encoded? |
Comme les opérandes des instructions sont encodées? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
Les opérandes font-elles partie du mot d'instruction (rappellez-vous, par mot j'entend nombre), ou sont-elles des mots (nombres) séparés? |
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. |
D'abord, pour répondre à la dernière question, étant donné qu'il y a seulement un petit nombre d'instructions et de registres dans cette machine virtuelle, il ne devrait pas être difficile d'encoded toutes les opérandes dans un seul mot d'instruction, même si (par simplifier les choses) on utilisais 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). |
De cette manière, un nombre 16 bits écrit en hexadécimal a 4 chiffres, nous donnant accès à 4 champs d'information, chacun contenant 16 variations (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 nombre représentant l'instruction. |
This gives our VM the potential for having up to 16 different instructions. |
Notre VM pourra donc 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 si l'on compare aux normes actuelles, mais c'est largement assez pour la machine virtuelle de notre exemple. |
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. |
Ils pourront être utilisés comme trois opérandes à un chiffre, deux opérandes à 1 et 2 chiffres, ou une seule opérande à 3 chiffres. |
Having made these decisions, let us now establish the encoding. |
Ces décisions étant prises, établissons maintenant l'encodage. |
Recall that we have 16 instruction numbers available. |
Souvenez-vous que nous avons 16 instructions à notre disposition. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
L'instruction halt sera l'instruction 0, il y a une raison importante pour que cette instruction soit représentée par 0. |
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. |
L'espace vide dans la mémoire de l'ordinateur est le plus souvent rempli de zéros; un programme qui tenterait accidentellement d'exécuter du code dans ces régions finira par rencontrer un 0, et serait immédiatement arrêté. |