After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Etter at maskinspråket er opprettet, er det nødvendig å avgjøre hvordan hver enkelt instruksjon skal representeres som et tall. |
This establishes a one-to-one correspondence between each instruction in the assembly language and each instruction code in the set of instruction codes. |
Dette etablerer et én-til-én forhold mellom hver instruksjon i maskinspråket, og hver enkelt instruksjonskode i instruksjonskodesettet. |
Converting a program from assembly language to instruction codes is called assembling, and conversion from instruction codes back into assembly language is called disassembling. |
Å konvertere et program fra maskinkode til instruksjonskode kalles "assembling", eller montering. Konvertering fra instruksjonskode tilbake til maskinkode kalles "disassembling" eller demontering. |
Several choices we must make at this point are: |
Det er flere valg vi må gjøre på dette tidspunktet: |
What number is used to represent each assembly language instruction? |
Hvilket tall skal representere hver enkelt maskinkodeinstruksjon? |
How are instruction operands encoded? |
Hvordan skal instruksjonsoperandene kodes? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
Er operandene en del av instruksjonsordene (husk, med ord mener jeg tall), eller er de separate ord (tall)? |
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. |
For å svare på det siste spørsmålet først: ettersom det kun er et lite antall instruksjoner og registre i denne VM-en, burde det være en smal sak å kode alle operandene i ett enkelt instruksjonsord, selv om jeg (for enkelhets skyld) skulle velge å bruke et 16-biters instruksjonsord.
|
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). |
Dermed har et 16-biters tall skrevet heksadesimalt fire siffer, noe som gir oss enkel tilgang til fire informasjonsfelter hvor hvert felt har 16 variasjoner (0 til 9 og A til F). |
The first digit of a machine word will be the instruction number. |
Det første sifferet i et maskinord vil være instruksjonsnummeret. |
This gives our VM the potential for having up to 16 different instructions. |
Dette gir VM-en vår mulighet for opptil 16 forskjellige instruksjoner. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Dette er ikke mange i henhold til moderne standarder, men mer enn nok for vårt eksempel av en virtuell maskin. |
The next three digits will be used for the operands. |
De neste tre siffrene vil bli brukt til operandene. |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
Disse kan brukes som tre 1-sifrede operander, to operander med henholdsvis ett og to siffer, eller en 3-sifret operand. |
Having made these decisions, let us now establish the encoding. |
Nå som disse avgjørelsense er gjort, kan vi etablere kodingen. |
Recall that we have 16 instruction numbers available. |
Husk at vi har 16 instruksjonsnumre tilgjengelig. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
Stopp-instruksjonen blir instruksjon 0, og det er én viktig grunn til å velge 0 for denne instruksjonen. |
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. |
Ettersom tomme områder i minnet til datamaskinen sannsynligvis vil være fylt med 0-er, vil et program som løper løpsk til på et eller annet tidspunkt støte på en 0 og forsøke å kjøre denne instruksjonen, og programmet stopper umiddelbart. |