En Pass 1 eller Preprocessor Assembler er et computerprogram, der bruges til at behandle kildekode skrevet i et lavniveau programmeringssprog såsom assembler, før det behandles af en hovedassembler. Det er designet til at udføre visse forbehandlingsopgaver på assembly-kildekoden, før selve assembly-processen finder sted.
Funktioner af en Pass 1-samler
1. Makrobehandling: Pass 1 Assembler giver typisk makrobehandlingsfunktioner, der giver programmører mulighed for at definere og bruge makroer i deres assembly-kildekode. Makroer kan udvides med de passende parametre for at generere flere linjer med monteringskode, hvilket hjælper med at forenkle og reducere gentagne kodningsopgaver.
2. Betinget samling: Bestået 1 Assembler kan understøtte betingede monteringserklæringer. Disse sætninger giver assembleren mulighed for selektivt at inkludere eller udelukke dele af assembly-kildekoden baseret på definerede betingelser eller præprocessor-direktiver. Dette kan være nyttigt til at bygge forskellige versioner af et program eller til at skabe assembly-kode, der er kompatibel med forskellige hardwarekonfigurationer eller operativsystemer.
3. Kodegenerering: I nogle tilfælde kan Pass 1 Assembler udføre nogle kodegenereringsopgaver. Dette inkluderer generering af visse kodestykker eller konstanter direkte i assembly-kildekoden.
4. Forbehandlingsdirektiver: Pass 1 Assembler behandler forbehandlingsdirektiver, som giver instruktioner eller kommandoer, der ikke er monteringsinstruktioner, men som påvirker, hvordan assembleren fortolker og behandler kildekoden. Disse direktiver kan omfatte INCLUDE for at inkorporere en anden kildefil, EQUATE til at definere konstanter og COPY for at indsætte en kodeblok ordret.
5. Fejlkontrol og diagnostik: Pass 1 Assembler kan udføre fejlkontrol og levere diagnostik for at hjælpe programmøren med at identificere og rette fejl i assembly-kildekoden.
Pass 2 Assembler
Når Pass 1 Assembleren har behandlet assembly-kildekoden, og eventuelle forbehandlingsopgaver er udført, er koden klar til at blive behandlet af hovedassembleren, også kendt som Pass 2 Assembler.
Pass 2 Assembler fokuserer primært på følgende opgaver:
1. Symbolopløsning:Pass 2 Assembler løser alle symboler, der er defineret i assembly-kildekoden ved at tildele specifikke hukommelsesadresser til dem.
2. Kode- og datagenerering:Pass 2 Assembler genererer de faktiske maskinkodeinstruktioner og datastrukturer baseret på monteringsinstruktionerne og direktiverne i kildekoden.
3. Adresseberegning:Bestået 2 Assembler beregner hukommelsesadresserne for alle symboler og instruktioner og sikrer, at de er placeret korrekt i hukommelsen for målarkitekturen.
4. Fejlkontrol:Pass 2 Assembler verificerer yderligere assembly-kildekoden for fejl, såsom ukorrekte datatyper, ugyldige instruktioner eller inkonsistente adresser.
5. Final Assembler:Når alle fejl er blevet løst, og assembly-kildekoden er blevet fuldstændig behandlet, genererer Pass 2 Assembler den endelige assemblerede binære kode, som er klar til at blive eksekveret eller yderligere behandlet af en linker, hvis det er nødvendigt.
Sammenfattende udfører Pass 1 Assembler eller Preprocessor Assembler forbehandlingsopgaver på assembly-kildekoden før hovedassembleringsprocessen, såsom makrobehandling, betinget assemblering, forbehandlingsdirektiver og fejlkontrol. Pass 2 Assembler overtager derefter at håndtere symbolopløsning, kode- og datagenerering, adresseberegning, fejlkontrol og endelig samling, hvilket resulterer i genereringen af den eksekverbare binære kode.