After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Após a criação da linguagem de montagem, é necessário determinar como representar cada instrução como número. |
This establishes a one-to-one correspondence between each instruction in the assembly language and each instruction code in the set of instruction codes. |
Isto estabelce uma correspondência de um-a-um entre cada instrução na linguagem de montagem e cada código de instrução no conjunto do código de instruções. |
Converting a program from assembly language to instruction codes is called assembling, and conversion from instruction codes back into assembly language is called disassembling. |
Converter um programa da linguagem de montagem para códigos de instrução chama-se montagem, e conversão de códigos de instrução de volta à linguagem de montgem chama-se desmontagem. |
Several choices we must make at this point are: |
Várias escolhas que temos que fazer neste momento são: |
What number is used to represent each assembly language instruction? |
Que número usar para representar cada instrução de linguagem de montagem? |
How are instruction operands encoded? |
Como codificar as instruções de operandos? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
São operandos parte da palavra de instrução (lembre-se, por palavra quero dizer número), ou são palavras separadas (números)? |
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. |
Primeiro, para responder à última questão, desde que há apenas pequenos números de instrução e resgistros nesta VM não seria muito difícil codificar todos operandos numa única palavra de instrução, mesmo se (para simplificar) eu usasse uma palavra de instrução de 16-bit. |
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). |
Assim, um número escrito de 16-bit em hexadecimal tem 4 dígitos, nos dando fácil acesso para 4 campos de informação, cada um contendo 16 varaiações (0-9 e A-F). |
The first digit of a machine word will be the instruction number. |
O primeiro dígito de uma palavra de máquina será o número de intrução. |
This gives our VM the potential for having up to 16 different instructions. |
Isto dará à nossa VM o potencial de ter até 15 instruções diferentes. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Isto é uma pequena quantia por padrões conteporâneos, mas suficiente ao nosso exemplo de máquina virtual. |
The next three digits will be used for the operands. |
Os próximos 3 dígitos serão usados para operandos. |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
Estes podem ser usados como 3 operandos de 1-dígito, 2 operandos de 1 e 2-dígitos, ou apenas um operando de 3-dígitos. |
Having made these decisions, let us now establish the encoding. |
Tomando estas decisões, vamos agora estabelecer a codificação. |
Recall that we have 16 instruction numbers available. |
Lembre que temos 16 números de instrução disponíveis. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
A instrução para parar será 0, e há uma razão importante em escolher o 0 para esta instrução. |
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. |
Desde que espaços vazios na memória do computador provavelmente serão preenchidas com 0s, qualquer programa que escape evemtualmente encontrará um 0 e tentará executar esta instrução, imediatamente parando o programa. |