Een Pass 1 of Preprocessor Assembler is een computerprogramma dat wordt gebruikt om broncode te verwerken die is geschreven in een programmeertaal op laag niveau, zoals assembly, voordat deze wordt verwerkt door een hoofdassembler. Het is ontworpen om bepaalde voorverwerkingstaken op de assemblagebroncode uit te voeren voordat het daadwerkelijke assemblageproces plaatsvindt.
Functies van een Pass 1-assembler
1. Macroverwerking: Pass 1 Assembler biedt doorgaans macroverwerkingsmogelijkheden, waardoor programmeurs macro's kunnen definiëren en gebruiken binnen hun assemblagebroncode. Macro's kunnen worden uitgebreid met de juiste parameters om meerdere regels assemblagecode te genereren, waardoor repetitieve codeertaken worden vereenvoudigd en verminderd.
2. Voorwaardelijke vergadering: Pass 1 Assembler kan voorwaardelijke assemblage-instructies ondersteunen. Met deze instructies kan de assembler selectief delen van de assemblagebroncode opnemen of uitsluiten op basis van gedefinieerde voorwaarden of preprocessorrichtlijnen. Dit kan handig zijn voor het bouwen van verschillende versies van een programma of voor het maken van assemblagecode die compatibel is met verschillende hardwareconfiguraties of besturingssystemen.
3. Code genereren: In sommige gevallen kan Pass 1 Assembler enkele taken voor het genereren van code uitvoeren. Dit omvat het genereren van bepaalde codefragmenten of constanten rechtstreeks in de broncode van de assemblage.
4. Voorverwerkingsrichtlijnen: Pass 1 Assembler verwerkt preprocessing-richtlijnen, die instructies of opdrachten bieden die geen assemblage-instructies zijn, maar die van invloed zijn op de manier waarop de assembler de broncode interpreteert en verwerkt. Deze richtlijnen kunnen bestaan uit INCLUDE om een ander bronbestand op te nemen, EQUATE om constanten te definiëren, en COPY om een codeblok woordelijk in te voegen.
5. Foutcontrole en diagnose: Pass 1 Assembler kan foutcontroles uitvoeren en diagnostiek leveren om de programmeur te helpen fouten in de assemblagebroncode te identificeren en op te lossen.
Pass 2 Assembler
Nadat de Pass 1 Assembler de assemblagebroncode heeft verwerkt en eventuele voorbewerkingstaken zijn voltooid, is de code klaar om te worden verwerkt door de hoofdassembler, ook wel bekend als Pass 2 Assembler.
Pass 2 Assembler richt zich primair op de volgende taken:
1. Symboolresolutie:Geslaagd 2 Assembler lost alle symbolen op die in de assemblagebroncode zijn gedefinieerd door er specifieke geheugenadressen aan toe te wijzen.
2. Code- en gegevensgeneratie:Pass 2 Assembler genereert de daadwerkelijke machinecode-instructies en datastructuren op basis van de assemblage-instructies en richtlijnen in de broncode.
3. Adresberekening:Pass 2 Assembler berekent de geheugenadressen voor alle symbolen en instructies en zorgt ervoor dat ze correct in het geheugen worden geplaatst voor de doelarchitectuur.
4. Foutcontrole:Pass 2 Assembler verifieert verder de assemblagebroncode op fouten, zoals onjuiste gegevenstypen, ongeldige instructies of inconsistente adressen.
5. Eindmontage:Zodra alle fouten zijn opgelost en de broncode van de assemblage volledig is verwerkt, genereert Pass 2 Assembler de uiteindelijk samengestelde binaire code, die klaar is om te worden uitgevoerd of indien nodig verder te worden verwerkt door een linker.
Samenvattend voert Pass 1 Assembler, of Preprocessor Assembler, voorverwerkingstaken uit op de assemblagebroncode vóór het hoofdassemblageproces, zoals macroverwerking, voorwaardelijke assemblage, voorverwerkingsrichtlijnen en foutcontrole. Pass 2 Assembler neemt vervolgens de symboolresolutie, het genereren van code en gegevens, adresberekening, foutcontrole en eindmontage over, wat resulteert in het genereren van de uitvoerbare binaire code. |