Pass1 og Pass2 er to pass av en to-pass assembler, et dataprogram som brukes i systemprogramvare for å oversette monteringsspråk til maskinkode. Her er en sammenligning og kontrast mellom de to:
1. Formål:
- Pass1 (Symbol Table Generation): Hensikten med Pass1 er å skanne hele monteringsprogrammet og lage en symboltabell, som inneholder adressene og attributtene (type, omfang) til alle symboler (f.eks. variabler, etiketter) som er definert i programmet.
- Pass2 (kodegenerering): Hensikten med Pass2 er å faktisk generere maskinkodeinstruksjonene basert på symboltabellen opprettet i Pass1 og instruksjonene spesifisert i monteringsprogrammet.
2. Utførte funksjoner:
- Pass1:
- Leser og analyserer hver setning av monteringsprogrammet linje for linje.
- Identifiserer og lagrer symboler i symboltabellen.
- Tildeler minneadresser til hvert symbol.
- Utfører syntaks og leksikalsk analyse, oppdager eventuelle syntaksfeil eller udefinerte symboler.
- Pass2:
- Bruker symboltabellen generert av Pass1 for å løse symbolske referanser.
- Genererer de faktiske maskinkodeinstruksjonene som tilsvarer hver monteringsinstruksjon.
- Utfører siste feilkontroll for å bekrefte at alle symboler er definert og brukt riktig.
3. Utdata:
- Pass1: Utgangen til Pass1 er symboltabellen, som brukes av Pass2 for kodegenerering.
- Pass2: Utdataene fra Pass2 er det kjørbare maskinkodeprogrammet. Dette programmet kan lastes direkte inn i minnet og kjøres av CPU.
Oppsummert fokuserer Pass1 av en systemprogramvaremontør på å lage symboltabellen og analysere monteringsprogrammet for feil, mens Pass2 bruker denne symboltabellen til å generere de tilsvarende maskinkodeinstruksjonene og produsere det endelige kjørbare programmet.