En one-pass assembler er en assembler som leser gjennom kildekoden bare én gang, og genererer maskinkode mens den går. En to-pass assembler, derimot, leser gjennom kildekoden to ganger. Den første passeringen er å generere en symboltabell, som kartlegger etiketter og variabler til minneadressene deres. Den andre passeringen er å bruke symboltabellen til å generere maskinkoden.
Den største fordelen med en en-pass assembler er at den er raskere enn en to-pass assembler. Dette er fordi den ikke trenger å lese gjennom kildekoden to ganger. Den største ulempen med en one-pass assembler er at den ikke kan løse foroverreferanser. Dette betyr at hvis en etikett eller variabel brukes før den er definert, vil ikke assembleren kunne generere riktig maskinkode.
To-pass-montører kan løse foroverreferanser, men de er tregere enn én-pass-montører. Dette er fordi de trenger å lese gjennom kildekoden to ganger. Hovedfordelen med en to-pass assembler fremfor en en-pass assembler er at den kan produsere mer effektiv maskinkode. Dette er fordi den har tilgang til symboltabellen under den andre passeringen, som lar den optimere maskinkoden.