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 cómo representar numéricamente cada instrucción. |
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 lenguaje ensamblador y cada código de instrucción en el conjunto de estas. |
Converting a program from assembly language to instruction codes is called assembling, and conversion from instruction codes back into assembly language is called disassembling. |
Convertir un programa de lenguaje ensamblador a códigos de instrucción se llama ensamblar, y la conversión de códigos de instrucción de vuelta a lenguaje ensamblador se llama desensamblar. |
Several choices we must make at this point are: |
Varias decisiones que debemos tomar en este momento son: |
What number is used to represent each assembly language instruction? |
¿Cuál número es utilizado para representar cada instrucción en lenguaje ensamblador? |
How are instruction operands encoded? |
¿Cómo se codifican 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 instrucción (recuerda, por palabra me refiero a 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. |
Primero, para responder la última pregunta, ya que solo hay números pequeños de instrucciones y registros en esta máquina virtual, no debería ser tan difícil codificar todos los operandos en una sola palabra de instrucción, incluso si (por simplicidad) yo utilizara 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). |
Así, un número de 16 bits escrito en hexadecimal tiene 4 dígitos, lo cual nos da 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 máquina será el número de instrucción. |
This gives our VM the potential for having up to 16 different instructions. |
Esto le da a nuestra máquina virtual el potencial de tener hasta 16 instrucciones diferentes. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Esta es una cantidad pequeña para estándares contemporáneos, pero es bastante 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. |
Estos pueden ser usados 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. |
Habiendo tomado estas decisiones, vamos a establecer 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 alto será la instrucción 0, y hay una razón importante por la que se elige 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. |
Como el espacio vacío en la memoria de la computadora probablemente se llenará con ceros, cualquier programa de escape eventualmente se encontrará con un 0 e intentará ejecutar esta instrucción, deteniendo el programa inmediatamente. |