After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Depois que a linguagem assembly é criada, é necessário determinar a forma de representar cada instrução como um 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. |
Isso estabelece uma ligação de um para um entre cada instrução presente na linguagem assembly e as instruções presentes no conjunto 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. |
"Assembling" é o nome dado ao processo de converter um programa da linguagem assembly para códigos de instruções, o processo contrário chama-se "disassembling". |
Several choices we must make at this point are: |
As diversas escolhas que devemos fazer nesta etapa sāo: |
What number is used to represent each assembly language instruction? |
Que número deve ser usado para representar cada instruçāo da linguagem assembly? |
How are instruction operands encoded? |
Como os operandos das instruções serão codificados? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
Os operandos sāo parte da palavra que representa a instruçāo? (lembre-se, palavras são os números das instruções), ou são palavras (números) separadas? |
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. |
Em primeiro lugar, para responder a última pergunta, já que só existem pequenos números de instruções e registradores nessa máquina virtual, não deve ser muito difícil codificar todos os operandos em uma única palavra de instrução, mesmo se (para tornar mais simples) usarmos uma palavra de 16 bits. |
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). |
Portanto, um número de 16 bits escrito em hexadecimal tem 4 dígitos, nos dando acesso facilitado à 4 campos de informação, cada um contendo 16 variações (0-9 e A-F). |
The first digit of a machine word will be the instruction number. |
O primeiro dígito da palavra será o número da instruçāo. |
This gives our VM the potential for having up to 16 different instructions. |
Isso dá à nossa máquina virtual um potencial de ter até 16 instruções diferentes. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Essa quantia é pequena nos padrões atuais, mas suficiente para nosso exemplo de máquina virtual. |
The next three digits will be used for the operands. |
Os próximos três dígitos serão usados para os operandos. |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
Eles podem ser usados como três operandos de 1 dígito, dois operandos de 1 e 2 dígitos, ou um único operando de 3 dígitos. |
Having made these decisions, let us now establish the encoding. |
Com todas as escolhas feitas, vamos estabelecer o código. |
Recall that we have 16 instruction numbers available. |
Lembrando que temos 16 números de instruções disponíveis. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
A instrução "halt" (fim do processamento) será a instrução 0, e há um motivo especial por termos escolhido 0 para essa 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. |
Dado o fato que os espaços vazios da memória do computador muito provavelmente serão preenchidos com 0s. qualquer programa que tenha algum problema de código, eventualmente encontrará um 0 e tentará executar essa instrução, imediatamente encerrando o programa. |