After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Después de crear el lenguaje ensamblador es necesario determinar la manera de representar cada instrucción como un 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. |
Esto establece una correspondencia de uno a uno entre cada instrucción en el lenguaje ensamblador y cada código de instrucción en el conjunto de códigos de instrucción. |
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 la conversión de un programa a partir de lenguaje ensamblador hacia códigos de instrucción se le denomina ensamblaje, y a la conversión desde códigos de instrucción de nuevo en lenguaje ensamblador se le denomina desensemblaje. |
Several choices we must make at this point are: |
En este punto debemos tomar varias decisiones: |
What number is used to represent each assembly language instruction? |
¿Qué número se va a utilizar para representar cada instrucción del lenguaje ensamblador? |
How are instruction operands encoded? |
¿De qué manera se van a codificar los operandos de instrucción? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
¿Los operandos son parte de la palabra de la instrucción (recuerda, por palabra me refiero al número), o son palabras 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. |
En primer lugar, para responder a la última pregunta, debido a que en esta máquina virtual solo hay números pequeños de instrucciones y registros, no debería ser muy difícil codificar todos los operandos en una sola palabra de instrucción, incluso si (en aras de la simplicidad) tuviera que utilizar una palabra de instrucción 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). |
Por lo tanto, un número de 16 bits escrito en hexadecimal tiene 4 dígitos, lo cual nos proporciona un fácil acceso a 4 campos de información, cada uno con 16 variaciones (0-9 y A-F). |
The first digit of a machine word will be the instruction number. |
El primer dígito de una palabra de la máquina será el número de instrucción. |
This gives our VM the potential for having up to 16 different instructions. |
Esto le proporciona a nuestra máquina virtual el potencial de tener hasta 16 instrucciones distintas. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Esta es una cantidad pequeña para los estándares contemporáneos, pero es totalmente suficiente para nuestra máquina virtual de ejemplo. |
The next three digits will be used for the operands. |
Los siguientes tres dígitos se utilizarán para los operandos. |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
Esto se puede utilizar como tres operandos de 1 dígito, dos operandos de 1 y 2 dígitos, o un solo operando de 3 dígitos. |
Having made these decisions, let us now establish the encoding. |
Una vez tomadas estas decisiones vamos a determinar la codificación. |
Recall that we have 16 instruction numbers available. |
Recordemos que tenemos 16 números de instrucción disponibles. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
La instrucción de detención será la instrucción 0, y hay un motivo importante para elegir al 0 para esta instrucción. |
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 que es muy probable que en la memoria de la computadora el espacio vacío se complete con 0s, cualquier programa fuera de control eventualmente encontrará un 0 e intentará ejecutar esa instrucción, logrando así que el programa se detenga inmediatamente. |