En enpassad assembler är en assembler som bara läser igenom källkoden en gång och genererar maskinkod allt eftersom. En två-pass assembler, å andra sidan, läser igenom källkoden två gånger. Det första passet är att generera en symboltabell, som mappar etiketter och variabler till deras minnesadresser. Det andra passet är att använda symboltabellen för att generera maskinkoden.
Den största fördelen med en en-pass assembler är att den är snabbare än en två-pass assembler. Detta beror på att den inte behöver läsa igenom källkoden två gånger. Den största nackdelen med en en-pass assembler är att den inte kan lösa framåtriktade referenser. Detta innebär att om en etikett eller variabel används innan den definieras, kommer assembleraren inte att kunna generera korrekt maskinkod.
Tvåpasssmontörer kan lösa framåtriktade referenser, men de är långsammare än enpasssammanställare. Detta beror på att de behöver läsa igenom källkoden två gånger. Den största fördelen med en två-pass assembler jämfört med en en-pass assembler är att den kan producera mer effektiv maskinkod. Detta beror på att den har tillgång till symboltabellen under det andra passet, vilket gör att den kan optimera maskinkoden.