En multi-pass assembler är ett assemblerprogram som gör flera övergångar över källkoden för att generera maskinkoden. I en enkelpassad assembler läser assemblern källkoden endast en gång och genererar maskinkoden. I en multi-pass assembler gör assemblern flera pass över källkoden, varje pass utför en specifik uppgift.
Det första passet av en multi-pass assembler används vanligtvis för att generera en symboltabell. Symboltabellen innehåller adresserna till alla symboler (variabler, etiketter, etc.) i källkoden. Det andra passet av en multi-pass assembler använder vanligtvis symboltabellen för att generera maskinkoden.
Multi-pass assemblers är i allmänhet mer effektiva än single-pass assemblers, eftersom de kan använda informationen som samlas in i det första passet för att optimera maskinkodgenereringen i det andra passet. Men multi-pass assemblers är också mer komplexa än single-pass assemblers, eftersom de kräver flera pass över källkoden.
Här är några av fördelarna med att använda en multi-pass assembler:
* Förbättrad kodeffektivitet:Multi-pass assemblers kan använda information som samlats in i det första passet för att optimera maskinkodgenereringen i det andra passet. Detta kan resultera i mindre och snabbare kod.
* Förbättrad feldetektering:Multi-pass assemblers kan upptäcka fel i källkoden som kan vara svåra att upptäcka i en single-pass assembler. Detta kan hjälpa till att undvika subtila buggar i koden.
* Förbättrat stöd för komplexa funktioner:Multi-pass assemblers kan utökas för att stödja mer komplexa funktioner, såsom makron, villkorlig montering, och inkluderar uttalanden. Detta kan göra monteringsprocessen mer flexibel och enklare.