After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Nachdem die Assemblersprache erstellt wurde, muss festgelegt werden, wie jeder Befehl als Zahl dargestellt werden soll. |
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-Entsprechung zwischen jedem Befehl in der Assemblersprache und jedem Befehlscode in der Menge der Befehlscodes 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 Umwandlung eines Programms von Assemblersprache in Befehlscodes wird Assemblierung genannt, und die Umwandlung von Befehlscodes zurück in Assemblersprache wird Disassemblierung genannt. |
Several choices we must make at this point are: |
An diesem Punkt müssen wir mehrere Entscheidungen treffen: |
What number is used to represent each assembly language instruction? |
Welche Zahl wird verwendet, um jeden Assembler-Befehl darzustellen? |
How are instruction operands encoded? |
Wie werden die Befehlsoperanden kodiert? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
Sind die Operanden Teil des Befehlsworts (zur Erinnerung: mit Wort meine ich Zahl), oder sind sie separate Wörter (Zahlen)? |
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. |
Erstens, um die letzte Frage zu beantworten: Da es in dieser VM nur eine geringe Anzahl von Befehlen und Registern gibt, sollte es nicht sehr schwierig sein, alle Operanden in einem einzigen Befehlswort zu kodieren, selbst wenn man (der Einfachheit halber) ein 16-Bit-Befehlswort verwenden würde. |
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). |
Eine 16-Bit-Zahl, die in Hexadezimal geschrieben wird, hat also 4 Stellen, was uns einen einfachen Zugang zu 4 Informationsfeldern ermöglicht, die jeweils 16 Variationen (0-9 und A-F) enthalten. |
The first digit of a machine word will be the instruction number. |
Die erste Stelle eines Maschinenworts ist die Befehlsnummer. |
This gives our VM the potential for having up to 16 different instructions. |
Dadurch verfügt unsere VM über bis zu 16 verschiedene Anweisungen. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Das ist nach heutigen Maßstäben wenig, aber für unser Beispiel einer virtuellen Maschine 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 als drei einstellige Operanden, zwei ein- und zweistellige Operanden oder als ein einziger dreistelliger Operand verwendet werden. |
Having made these decisions, let us now establish the encoding. |
Nachdem wir diese Entscheidungen getroffen haben, wollen wir nun die Kodierung festlegen. |
Recall that we have 16 instruction numbers available. |
Wir erinnern uns, dass wir 16 Befehlsnummern zur Verfügung haben. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
Der Haltebefehl ist der Befehl 0, und es gibt einen wichtigen Grund dafür, dass dieser Befehl 0 ist. |
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 leere Stellen im Speicher des Computers höchstwahrscheinlich mit Nullen gefüllt werden, wird jedes durchlaufende Programm irgendwann auf eine 0 stoßen und versuchen, diese Anweisung auszuführen, was das Programm sofort zum Stillstand bringt. |