Proceso de ensamble de uno, dos o más pasos

Como se vio en la sección anterior, existen ensambladores que realizan su tarea en una o más fases o pasos.

El proceso de ensamble de un paso consiste en leer una línea de programa fuente y traducirla a lenguaje máquina cuando se trata de una instrucción, o se ejecuta si es una seudoinstrucción.

La tabla de símbolos se va construyendo a medida que se avanza en la lectura de las líneas del programa fuente.

Para que el ensamble de un paso funciones, todos los símbolos deben estar definidos antes de emplearse. Esto debido a que, para traducir correctamente cada instrucción, se debe conocer la dirección de cada uno de los símbolos que intervienen en ella. En otras palabras, no pueden quedar referencias pendientes porque ya no habrá otra oportunidad de resolverlas.

Tampoco podrán hacerse saltos hacia líneas posteriores. No es posible saltar hacia una línea cuya etiqueta todavía no ha sido definida.

Para resolver el problema que presenta el proceso de ensamble de un paso, se utiliza el proceso de ensamble de dos pasos o fases. En la primera fase, se lee el programa fuente y se construye la tabla de símbolos.

En la segunda fase, se vuelve a leer el programa fuente y se traduce totalmente ya que se conoce la totalidad de los símbolos utilizados (incluyendo las etiquetas) y las posiciones de memoria que se les han asignado. Como ya se conocen las direcciones de las etiquetas utilizadas, pueden realizarse saltos hacia adelante.