After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Efter att assemblerspråket har skapats är det nödvändigt att bestämma hur varje instruktion ska representeras som ett nummer. |
This establishes a one-to-one correspondence between each instruction in the assembly language and each instruction code in the set of instruction codes. |
Detta upprättar en en-till-en-överensstämmelse mellan varje instruktion på assemblerspråket och varje instruktionskod i uppsättningen av instruktionskoder. |
Converting a program from assembly language to instruction codes is called assembling, and conversion from instruction codes back into assembly language is called disassembling. |
Att konvertera ett program från assemblerspråk till instruktionskoder kallas assemblering, och konvertering från instruktionskoder tillbaka till assemblerspråk kallas disassembling. |
Several choices we must make at this point are: |
Flera val vi måste göra vid det här laget är: |
What number is used to represent each assembly language instruction? |
Vilket nummer används för att representera varje assembler-instruktion? |
How are instruction operands encoded? |
Hur kodas instruktionsoperander? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
Är operander en del av instruktionsordet (kom ihåg att med ord menar jag nummer), eller är de separata ord (tal)? |
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. |
Först, för att svara på den sista frågan, eftersom det bara finns ett fåtal instruktioner och register i denna virtuella dator borde det inte vara särskilt svårt att koda alla operander i ett enda instruktionsord, även om jag (för enkelhetens skull) skulle använda ett 16-bitars instruktionsord. |
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). |
Således har ett 16-bitars tal skrivet med hexadecimal 4 siffror, vilket ger oss enkel tillgång till 4 informationsfält, som vart och ett innehåller 16 varianter (0-9 och A-F). |
The first digit of a machine word will be the instruction number. |
Den första siffran i ett maskinord kommer att vara instruktionsnumret. |
This gives our VM the potential for having up to 16 different instructions. |
Detta ger vår virtuella dator potential att ha upp till 16 olika instruktioner. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Detta är en liten mängd enligt dagens standarder, men det räcker för vår exempel virtuella maskin. |
The next three digits will be used for the operands. |
Nästa tre siffror kommer att användas för operander. |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
Dessa kan användas som tre 1-siffriga operander, två operander med 1 och 2 siffror eller en enda 3-siffrig operand. |
Having made these decisions, let us now establish the encoding. |
Efter att ha fattat dessa beslut, låt oss nu fastställa kodningen. |
Recall that we have 16 instruction numbers available. |
Kom ihåg att vi har 16 instruktionsnummer tillgängliga. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
Stop-instruktionen kommer att vara instruktion 0, och det finns en viktig anledning till att välja 0 för denna instruktion. |
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. |
Eftersom det tomma utrymmet i datorns minne med största sannolikhet kommer att fyllas med nollor, kommer alla program som körs så småningom att stöta på en nolla och försöka utföra denna instruktion, vilket omedelbart stoppar programmet. |