En multi-pass assembler er et assembler program som gjør flere passeringer over kildekoden for å generere maskinkoden. I en single-pass assembler leser assembler kildekoden bare én gang og genererer maskinkoden. I en multi-pass assembler, gjør assembleren flere passeringer over kildekoden, hver pass utfører en spesifikk oppgave.
Den første passeringen av en multi-pass assembler brukes vanligvis til å generere en symboltabell. Symboltabellen inneholder adressene til alle symbolene (variabler, etiketter osv.) i kildekoden. Den andre passeringen av en multi-pass assembler bruker vanligvis symboltabellen for å generere maskinkoden.
Multipass-montører er generelt mer effektive enn enkeltpassmontører, ettersom de kan bruke informasjonen som samles inn i det første passet for å optimalisere maskinkodegenereringen i det andre passet. Imidlertid er flerpassmontører også mer komplekse enn enkeltpassmontører, siden de krever flere passeringer over kildekoden.
Her er noen av fordelene ved å bruke en multi-pass assembler:
* Forbedret kodeeffektivitet:Multipass-montører kan bruke informasjon samlet i den første passeringen for å optimalisere maskinkodegenereringen i den andre passasjen. Dette kan resultere i mindre og raskere kode.
* Forbedret feildeteksjon:Multi-pass assemblers kan oppdage feil i kildekoden som kan være vanskelig å oppdage i en single-pass assembler. Dette kan bidra til å unngå subtile feil i koden.
* Forbedret støtte for komplekse funksjoner:Multi-pass assemblers kan utvides til å støtte mer komplekse funksjoner, for eksempel makroer, betinget montering, og inkluderer uttalelser. Dette kan gjøre monteringsprosessen mer fleksibel og enklere.