En Pass 1 eller Preprocessor Assembler är ett datorprogram som används för att bearbeta källkod skriven i ett programmeringsspråk på låg nivå, såsom assembler, innan den bearbetas av en huvudmontör. Den är utformad för att utföra vissa förbearbetningsuppgifter på monteringskällkoden innan själva monteringsprocessen äger rum.
Funktioner hos en Pass 1-montör
1. Makrobearbetning: Pass 1 Assembler tillhandahåller vanligtvis makrobearbetningsfunktioner, vilket gör att programmerare kan definiera och använda makron i sin assembly-källkod. Makron kan utökas med lämpliga parametrar för att generera flera rader med monteringskod, vilket hjälper till att förenkla och minska repetitiva kodningsuppgifter.
2. Villkorlig montering: Godkänd 1 Assembler kan stödja villkorliga sammanställningsuttalanden. Dessa satser tillåter assemblern att selektivt inkludera eller exkludera delar av assembler-källkoden baserat på definierade villkor eller förbearbetningsdirektiv. Detta kan vara användbart för att bygga olika versioner av ett program eller för att skapa monteringskod som är kompatibel med olika hårdvarukonfigurationer eller operativsystem.
3. Kodgenerering: I vissa fall kan Pass 1 Assembler utföra vissa kodgenereringsuppgifter. Detta inkluderar generering av vissa kodavsnitt eller konstanter direkt i assembly-källkoden.
4. Förberedningsdirektiv: Pass 1 Assembler bearbetar förbearbetningsdirektiv, som tillhandahåller instruktioner eller kommandon som inte är monteringsinstruktioner utan påverkar hur assemblern tolkar och bearbetar källkoden. Dessa direktiv kan inkludera INCLUDE för att infoga en annan källfil, EQUATE för att definiera konstanter och COPY för att infoga ett kodblock ordagrant.
5. Felkontroll och diagnostik: Pass 1 Assembler kan utföra felkontroll och tillhandahålla diagnostik för att hjälpa programmeraren att identifiera och åtgärda fel i assembly-källkoden.
Pass 2 Assembler
Efter att Pass 1 Assembler har bearbetat assembler-källkoden och eventuella förbearbetningsuppgifter har slutförts, är koden sedan redo att bearbetas av huvudassemblern, även känd som Pass 2 Assembler.
Pass 2 Assembler fokuserar främst på följande uppgifter:
1. Symbolupplösning:Pass 2 Assembler löser alla symboler som definieras i assembly-källkoden genom att tilldela specifika minnesadresser till dem.
2. Kod- och datagenerering:Pass 2 Assembler genererar de faktiska maskinkodinstruktionerna och datastrukturerna baserat på monteringsinstruktionerna och direktiven i källkoden.
3. Adressberäkning:Pass 2 Assembler beräknar minnesadresserna för alla symboler och instruktioner, och säkerställer att de är korrekt placerade i minnet för målarkitekturen.
4. Felkontroll:Pass 2 Assembler verifierar vidare assembly-källkoden för fel, såsom felaktiga datatyper, ogiltiga instruktioner eller inkonsekventa adresser.
5. Final Assembler:När alla fel har lösts och assembly-källkoden har bearbetats fullständigt, genererar Pass 2 Assembler den slutliga assemblerade binära koden, som är redo att exekveras eller vidarebearbetas av en länkare om det behövs.
Sammanfattningsvis utför Pass 1 Assembler, eller Preprocessor Assembler, förbearbetningsuppgifter på assembly-källkoden före huvudassembleringsprocessen, såsom makrobearbetning, villkorlig assemblering, förbearbetningsdirektiv och felkontroll. Pass 2 Assembler tar sedan över för att hantera symbolupplösning, kod- och datagenerering, adressberäkning, felkontroll och slutmontering, vilket resulterar i genereringen av den körbara binära koden.