Funciones de un ensamblador Pass 1
1. Procesamiento de macros: Pass 1 Assembler generalmente proporciona capacidades de procesamiento de macros, lo que permite a los programadores definir y usar macros dentro de su código fuente ensamblador. Las macros se pueden ampliar con los parámetros apropiados para generar múltiples líneas de código ensamblador, lo que ayuda a simplificar y reducir las tareas de codificación repetitivas.
2. Montaje condicional: Pass 1 Assembler puede admitir declaraciones de ensamblaje condicional. Estas declaraciones permiten al ensamblador incluir o excluir selectivamente partes del código fuente del ensamblador según condiciones definidas o directivas del preprocesador. Esto puede resultar útil para crear diferentes versiones de un programa o para crear código ensamblador que sea compatible con diferentes configuraciones de hardware o sistemas operativos.
3. Generación de código: En algunos casos, Pass 1 Assembler puede realizar algunas tareas de generación de código. Esto incluye generar ciertos fragmentos de código o constantes directamente dentro del código fuente ensamblador.
4. Directivas de preprocesamiento: Paso 1 El ensamblador procesa directivas de preprocesamiento, que proporcionan instrucciones o comandos que no son instrucciones de ensamblador pero que afectan la forma en que el ensamblador interpreta y procesa el código fuente. Estas directivas pueden incluir INCLUDE para incorporar otro archivo fuente, EQUATE para definir constantes y COPY para insertar un bloque de código palabra por palabra.
5. Comprobación y diagnóstico de errores: Pass 1 Assembler puede realizar verificación de errores y proporcionar diagnósticos para ayudar al programador a identificar y corregir errores en el código fuente del ensamblador.
Pase 2 Ensamblador
Una vez que el ensamblador del Paso 1 ha procesado el código fuente del ensamblador y se han completado todas las tareas de preprocesamiento, el código está listo para ser procesado por el ensamblador principal, también conocido como ensamblador del Paso 2.
Pass 2 Assembler se centra principalmente en las siguientes tareas:
1. Resolución de símbolos:Pass 2 Assembler resuelve todos los símbolos definidos en el código fuente del ensamblador asignándoles direcciones de memoria específicas.
2. Generación de código y datos:Pass 2 Assembler genera las instrucciones de código de máquina y las estructuras de datos reales basadas en las instrucciones y directivas de ensamblaje del código fuente.
3. Cálculo de direcciones:Pass 2 Assembler calcula las direcciones de memoria para todos los símbolos e instrucciones, asegurándose de que estén ubicados correctamente en la memoria para la arquitectura de destino.
4. Comprobación de errores:Pass 2 Assembler verifica aún más el código fuente del ensamblador en busca de errores, como tipos de datos incorrectos, instrucciones no válidas o direcciones inconsistentes.
5. Ensamblaje final:una vez que se han resuelto todos los errores y el código fuente del ensamblador se ha procesado por completo, Pass 2 Assembler genera el código binario ensamblado final, que está listo para ser ejecutado o procesado adicionalmente por un vinculador si es necesario.
En resumen, Pass 1 Assembler, o Preprocessor Assembler, realiza tareas de preprocesamiento en el código fuente de ensamblaje antes del proceso de ensamblaje principal, como procesamiento de macros, ensamblaje condicional, directivas de preprocesamiento y verificación de errores. Pass 2 Assembler luego se hace cargo de la resolución de símbolos, la generación de código y datos, el cálculo de direcciones, la verificación de errores y el ensamblaje final, lo que da como resultado la generación del código binario ejecutable.