After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
アセンブリ言語の命令が生成された後、それぞれの命令語を番号で表現する必要がある。 |
This establishes a one-to-one correspondence between each instruction in the assembly language and each instruction code in the set of instruction codes. |
これによりアセンブリ言語の各命令と、命令コードのセットの中でどの命令コードを使用するかの、一対一での対応が決定される。 |
Converting a program from assembly language to instruction codes is called assembling, and conversion from instruction codes back into assembly language is called disassembling. |
アセンブリ言語のプログラムと命令コードへの変換はアセンブル、命令コードからアセンブリ言語への変換はディスアンブルと呼ばれる。 |
Several choices we must make at this point are: |
この時点で決定しなければならないのは以下の通り。 |
What number is used to represent each assembly language instruction? |
・各アセンブリ言語命令を表現するのにどの番号が使用されるのか? |
How are instruction operands encoded? |
・命令語のオペランドはどのように符号化されるのか? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
・オペランドは命令語(ここで「語」というのは番号であることを覚えておこう)の一部分か?あるいは別の語(番号)なのか? |
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. |
まず、最後の質問の答えは、このVMにおける命令やレジスタは数が多くないため、(議論を単純にするため)16ビットの命令語を使っても、すべてのオペランドを1つの命令語にするのはそれほど難しくない。 |
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). |
したがって、16ビットの数は16進で4桁、それぞれ0-9,A-Fの16通りのフィールドで簡単にアクセスできる。 |
The first digit of a machine word will be the instruction number. |
マシン語の最初の桁は命令語である。 |
This gives our VM the potential for having up to 16 different instructions. |
これにより、VMは16種類の命令を持つ可能性が出てきた。 |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
これは現在の基準では少ない数であるが、我々の仮想マシンにとっては十分に多い。 |
The next three digits will be used for the operands. |
次の3桁はオペランドである。 |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
これは3つの1桁オペランド、1桁と2桁のオペランド、1桁のオペランドが3つ、の3通りに使える。 |
Having made these decisions, let us now establish the encoding. |
この3つのどれにするかを選択した後、符号化を決定しよう。 |
Recall that we have 16 instruction numbers available. |
16種類の命令番号があることを思い出そう。 |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
まず、Halt命令は0命令とする。0を選んだ理由は重要である。 |
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. |
コンピュータのメモリは多くの場合0でクリアされている。このため、暴走するプログラムは最終的には0に突き当たり、この命令を実行してプログラムは直ちに停止する。 |