After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Nach dem Erstellen der Assemblersprache muss festgelegt werden, wie die einzelnen Anweisungen als Nummern dargestellt werden sollen. |
This establishes a one-to-one correspondence between each instruction in the assembly language and each instruction code in the set of instruction codes. |
Dadurch wird eine Eins-zu-Eins-Beziehung zwischen jeder Anweisung in der Assemblersprache und jedem Anweisungscode in der Gruppe von Anweisungscodes hergestellt. |
Converting a program from assembly language to instruction codes is called assembling, and conversion from instruction codes back into assembly language is called disassembling. |
Die Konvertierung eines Programms aus der Assemblersprache in Anweisungscodes wird Assemblierung genannt, und die Konvertierung von Anweisungscodes zurück in die Assemblersprache wird als Disassemblierung bezeichnet. |
Several choices we must make at this point are: |
Folgende Entscheidungen müssen an dieser Stelle getroffen werden: |
What number is used to represent each assembly language instruction? |
Welche Nummern sollen für die einzelnen Anweisungen in der Assemblersprache verwendet werden? |
How are instruction operands encoded? |
Wie werden Anweisungsoperanden codiert? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
Sind Operanden Teil des Anweisungsworts (Wort bedeutet in diesem Falle Nummer) oder separate Wörter (Nummern)? |
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. |
Um zuerst die letzte Frage zu beantworten: Da es in dieser VM nur wenige Anweisungen und Register gibt, sollte es nicht sehr schwierig sein, alle Operanden in einem einzigen Anweisungswort zu codieren, auch wenn (der Einfachheit halber) ein Anweisungwort mit 16 Bit verwendet wird. |
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). |
Folglich verfügt eine 16-Bit-Zahl in hexadezimaler Darstellung über 4 Stellen. Dies ermöglicht einen einfachen Zugriff auf 4 Informationsfelder mit jeweils 16 Variationen (0-9 und A-F). |
The first digit of a machine word will be the instruction number. |
Die erste Stelle eines VM-Worts ist die Nummer der Anweisung. |
This gives our VM the potential for having up to 16 different instructions. |
Dadurch kann die VM bis zu 16 unterschiedliche Anweisungen beinhalten. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Dies ist eine kleine Anzahl für heutige Maßstäbe, aber für dieses Beispiel einer virtuellen Maschine völlig ausreichend. |
The next three digits will be used for the operands. |
Die nächsten drei Stellen werden für die Operanden verwendet. |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
Diese können von drei einstelligen Operanden, zwei Operanden, von denen einer einstellig und der andere zweistellig ist, oder von einem dreistelligen Operanden belegt werden. |
Having made these decisions, let us now establish the encoding. |
Nachdem alle erforderlichen Entscheidungen getroffen wurden, kann nun die Codierung festgelegt werden. |
Recall that we have 16 instruction numbers available. |
Denken Sie daran, dass es 16 verfügbare Anweisungsnummern gibt. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
Für die Halt-Anweisung wird 0 verwendet, und das aus gutem Grund. |
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. |
Da der freie Speicherplatz des Computers höchstwahrscheinlich mit Nullen (0) gefüllt wird, wird jedes ausgeführte Programm schließlich auf eine 0 stoßen und versuchen, diese Anweisung auszuführen, wodurch das Programm sofort angehalten wird. |