Um assembler multipassagem é um programa assembler que faz múltiplas passagens no código-fonte para gerar o código de máquina. Em um montador de passagem única, o montador lê o código-fonte apenas uma vez e gera o código de máquina. Em um montador multipassagem, o montador faz múltiplas passagens pelo código-fonte, cada passagem executando uma tarefa específica.
A primeira passagem de um montador multipassagem geralmente é usada para gerar uma tabela de símbolos. A tabela de símbolos contém os endereços de todos os símbolos (variáveis, rótulos, etc.) no código-fonte. A segunda passagem de um montador multipassagem geralmente usa a tabela de símbolos para gerar o código de máquina.
Os montadores de múltiplas passagens são geralmente mais eficientes do que os montadores de passagem única, pois podem usar as informações coletadas na primeira passagem para otimizar a geração do código de máquina na segunda passagem. No entanto, os montadores de múltiplas passagens também são mais complexos do que os montadores de passagem única, pois exigem múltiplas passagens no código-fonte.
Aqui estão algumas das vantagens de usar um montador multipassagem:
* Melhor eficiência do código:Montadores multipassagens podem usar as informações coletadas na primeira passagem para otimizar a geração do código de máquina na segunda passagem. Isso pode resultar em código menor e mais rápido.
* Detecção de erros aprimorada:Montadores de múltiplas passagens podem detectar erros no código-fonte que podem ser difíceis de detectar em um montador de passagem única. Isso pode ajudar a evitar erros sutis no código.
* Suporte aprimorado para recursos complexos:Montadores multipass podem ser estendidos para oferecer suporte a recursos mais complexos, como macros, montagem condicional e instruções de inclusão. Isso pode tornar o processo de montagem mais flexível e fácil.