Um Pass 1 ou Preprocessor Assembler é um programa de computador usado para processar código-fonte escrito em uma linguagem de programação de baixo nível, como assembly, antes de ser processado por um assembler principal. Ele foi projetado para executar determinadas tarefas de pré-processamento no código-fonte do assembly antes que o processo de montagem real ocorra.
Funções de um montador Pass 1 1.
Processamento de macro: O Pass 1 Assembler normalmente fornece recursos de processamento de macro, permitindo que os programadores definam e usem macros em seu código-fonte assembly. As macros podem ser expandidas com os parâmetros apropriados para gerar múltiplas linhas de código assembly, ajudando a simplificar e reduzir tarefas repetitivas de codificação.
2.
Montagem Condicional: Pass 1 Assembler pode suportar instruções assembly condicionais. Essas instruções permitem que o montador inclua ou exclua seletivamente partes do código-fonte do assembly com base em condições definidas ou diretivas de pré-processador. Isso pode ser útil para construir diferentes versões de um programa ou para criar código assembly compatível com diferentes configurações de hardware ou sistemas operacionais.
3.
Geração de código: Em alguns casos, o Pass 1 Assembler pode executar algumas tarefas de geração de código. Isso inclui a geração de determinados trechos de código ou constantes diretamente no código-fonte do assembly.
4.
Diretrizes de pré-processamento: Passo 1 O Assembler processa diretivas de pré-processamento, que fornecem instruções ou comandos que não são instruções de montagem, mas afetam como o Assembler interpreta e processa o código-fonte. Essas diretivas podem incluir INCLUDE para incorporar outro arquivo fonte, EQUATE para definir constantes e COPY para inserir um bloco de código literalmente.
5.
Verificação e diagnóstico de erros: Pass 1 Assembler pode realizar verificação de erros e fornecer diagnósticos para ajudar o programador a identificar e corrigir erros no código-fonte do assembly.
Pass 2 Montador Depois que o Pass 1 Assembler tiver processado o código-fonte do assembly e todas as tarefas de pré-processamento forem concluídas, o código estará pronto para ser processado pelo Pass 2 Assembler, também conhecido como Pass 2 Assembler.
O Pass 2 Assembler concentra-se principalmente nas seguintes tarefas:
1. Resolução de símbolos:Passo 2 O Assembler resolve todos os símbolos definidos no código-fonte do assembly, atribuindo-lhes endereços de memória específicos.
2. Geração de código e dados:Pass 2 Assembler gera as instruções de código de máquina e estruturas de dados reais com base nas instruções e diretivas de montagem no código-fonte.
3. Cálculo de Endereço:Passo 2 O Assembler calcula os endereços de memória para todos os símbolos e instruções, garantindo que eles sejam colocados corretamente na memória para a arquitetura alvo.
4. Verificação de erros:Passo 2 O Assembler verifica ainda mais o código-fonte do assembly em busca de erros, como tipos de dados inadequados, instruções inválidas ou endereços inconsistentes.
5. Montagem Final:Depois que todos os erros forem resolvidos e o código-fonte do assembly tiver sido completamente processado, o Pass 2 Assembler gera o código binário final montado, que está pronto para ser executado ou processado posteriormente por um vinculador, se necessário.
Em resumo, Pass 1 Assembler, ou Preprocessor Assembler, executa tarefas de pré-processamento no código-fonte do assembly antes do processo de montagem principal, como processamento de macro, montagem condicional, diretivas de pré-processamento e verificação de erros. O Pass 2 Assembler então assume a resolução de símbolos, geração de código e dados, cálculo de endereço, verificação de erros e montagem final, resultando na geração do código binário executável.