| 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, torna-se 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. |
Isto estabelece uma correspondência um-para-um entre cada instrução na linguagem assembly e cada código de instrução no conjunto de códigos 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. |
O ato de converter um programa da linguagem assembly para códigos de instruções chama-se assembling (montagem), e o ato de converter os códigos de instruções de volta para a linguagem assembly chama-se disassemblig (desmontagem). |
| Several choices we must make at this point are: |
As várias opções que devemos tomar neste momento são: |
| What number is used to represent each assembly language instruction? |
Qual é o número usado para representar cada instrução de linguagem assembly? |
| How are instruction operands encoded? |
Como são codificados os operandos de instruções? |
| Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
São os 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 pergunta, já que há apenas um pequeno número de instruções e registros nesta MV, não deve ser muito difícil codificar todos os operandos em uma única palavra de instrução, mesmo que (por razões de simplicidade) tivesse que usar uma palavra de 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). |
Assim, um número de 16 bits escrito em hexadecimal tem 4 dígitos, dando-nos 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 será o número da instrução. |
| This gives our VM the potential for having up to 16 different instructions. |
Isto dá a nossa MV o potencial para ter até 16 instruções diferentes. |
| This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Para os padrões contemporâneos esta quantida é pouca, mas é muito para a nossa máquina virtual que usamos como exemplo. |
| 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. |
Estes 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. |
Lembre-se 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 de parada será instrução 0, e há uma razão importante para escolhermos 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. |
Como o espaço vazio na memória do computador provavelmente será preenchido com 0s, qualquer programa que estiver a escapar acabará por encontrar um 0 e tentará executar esta instrução, interrompendo imediatamente o programa. |