En multi-pass assembler er et assembler program, der laver flere passeringer over kildekoden for at generere maskinkoden. I en single-pass assembler læser assembleren kun kildekoden én gang og genererer maskinkoden. I en multi-pass assembler laver assembleren flere passeringer over kildekoden, hvor hvert pass udfører en specifik opgave.
Det første gennemløb af en multi-pass assembler bruges normalt til at generere en symboltabel. Symboltabellen indeholder adresserne på alle symbolerne (variabler, etiketter osv.) i kildekoden. Den anden gennemgang af en multi-pass assembler bruger normalt symboltabellen til at generere maskinkoden.
Multi-pass assemblere er generelt mere effektive end single-pass assemblere, da de kan bruge informationen indsamlet i den første passage til at optimere maskinkodegenereringen i den anden passage. Men multi-pass assemblers er også mere komplekse end single-pass assemblers, da de kræver flere pass over kildekoden.
Her er nogle af fordelene ved at bruge en multi-pass assembler:
* Forbedret kodeeffektivitet:Multi-pass assemblers kan bruge information indsamlet i den første passage til at optimere maskinkodegenereringen i den anden passage. Dette kan resultere i mindre og hurtigere kode.
* Forbedret fejlregistrering:Multi-pass assemblers kan opdage fejl i kildekoden, som kan være svære at opdage i en single-pass assembler. Dette kan hjælpe med at undgå subtile fejl i koden.
* Forbedret understøttelse af komplekse funktioner:Multi-pass assemblers kan udvides til at understøtte mere komplekse funktioner, såsom makroer, betinget samling og inkludere sætninger. Dette kan gøre montageprocessen mere fleksibel og lettere.