After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Depois da linguagem assembler ser criada, é necessário determinar como 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 correspondência um-a-um entre cada instrução na linguagem assembler e cada código de instrução no conjunto de códigos de instrução. |
Converting a program from assembly language to instruction codes is called assembling, and conversion from instruction codes back into assembly language is called disassembling. |
A conversão de um programa em linguagem assembly em códigos de instrução é chamada "assembling" e a conversão de códigos de instruções de volta para a linguagem assembly é chamada de "disassembling". |
Several choices we must make at this point are: |
Várias escolhas temos que fazer nesse ponto são: |
What number is used to represent each assembly language instruction? |
Que número é usado para representar cada instrução na linguagem assembly? |
How are instruction operands encoded? |
Como são codificados os operandos das instruções? |
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 de instrução (lembrando, por palavra eu quero dizer número), ou elas 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. |
Primeiramente, para responder à última pergunta, já que existem apenas poucos números de instruções e registradores nessa Maquina Virtual não deve ser muito difícil codificar todos os operandos numa única palavra de instrução, mesmo se (para fins de simplificação) eu tiver que usar uma palavra instrução 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). |
Consequentemente, um número de 16-bits escrito em hexadecimal tem 4 dígitos, nos dando acesso fácil a 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 de uma palavra de máquina vai ser o número da instrução. |
This gives our VM the potential for having up to 16 different instructions. |
Isso dá à nossa MV, o potencial de ter 16 instruções distintas. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Esta é uma pequena quantidade para os padrões atuais, mas é bastante para nossa Maquina Virtual de exemplo. |
The next three digits will be used for the operands. |
Os próximos três dígitos um vão ser usados pelos 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. |
Tendo tomado essas decisões, vamos agora estabelecer a codificação. |
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" vai ser a instrução 0, e existe uma importante razão para escolher 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. |
Como o espaço vazio na memória do computador será muito provavelmente preenchida por zeros, qualquer programa fora de controle vai encontrar um 0 e tentar executar essa instrução, imeditamente parando o programa. |