After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Dopo che il linguaggio assembly viene creato, è necessario determinare come rappresentare ogni istruzione come un numero. |
This establishes a one-to-one correspondence between each instruction in the assembly language and each instruction code in the set of instruction codes. |
Questo stabilisce una corrispondenza uno ad uno tra ogni istruzione nel linguaggio assembly e ogni codice di istruzione nell'insieme dei codici di istruzione. |
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 conversione di un programma dal linguaggio assembly ai codici di istruzioni viene chiamata assembling e la conversione dai codici di istruzioni di nuovo al linguaggio assembly si chiama disassembling. |
Several choices we must make at this point are: |
Diverse scelte che dobbiamo fare a questo punto sono: |
What number is used to represent each assembly language instruction? |
Quale numero è usato per rappresentare ogni istruzione del linguaggio assembly? |
How are instruction operands encoded? |
Come sono codificati gli operandi delle istruzioni? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
Gli operandi fanno parte della parola istruzione (ricordate, per parola si intende un numero), o sono parole separate (numeri)? |
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. |
Innanzitutto, per rispondere all'ultima domanda, dato che ci sono solo un piccolo numero di istruzioni e registri in questa VM (macchina virtuale), non dovrebbe essere molto difficile codificare tutti gli operandi in una singola parola istruzione, anche se (per semplicità) dovessi usare una parola istruzione a 16 bit. |
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). |
Così, un numero di 16 bit scritto in esadecimale ha 4 cifre, dandoci un facile accesso a 4 campi d'informazione, ognuno dei quali contiene 16 variazioni (0-9 e A-F). |
The first digit of a machine word will be the instruction number. |
La prima cifra di una parola macchina sarà il numero dell'istruzione. |
This gives our VM the potential for having up to 16 different instructions. |
Questo dà alla nostra VM la possibilità di avere fino a 16 istruzioni diverse. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Questa è una piccola quantità per gli standard contemporanei, ma è abbastanza per la nostra macchina virtuale di esempio. |
The next three digits will be used for the operands. |
Le tre cifre successive saranno utilizzate per gli operandi. |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
Questi possono essere usati come tre operandi di 1 cifra, due operandi di 1 e 2 cifre, o un singolo operando di 3 cifre. |
Having made these decisions, let us now establish the encoding. |
Avendo preso queste decisioni, stabiliamo ora la codifica. |
Recall that we have 16 instruction numbers available. |
Ricordiamo che abbiamo 16 numeri di istruzione disponibili. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
L'istruzione di arresto sarà l'istruzione 0, e c'è una ragione importante per scegliere 0 per questa istruzione. |
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. |
Poiché lo spazio vuoto nella memoria del computer sarà molto probabilmente riempito di 0, qualsiasi programma in esecuzione alla fine incontrerà uno 0 e tenterà di eseguire questa istruzione, arrestando immediatamente il programma. |