Λειτουργίες συναρμολογητή Pass 1
1. Επεξεργασία μακροεντολών: Το Pass 1 Assembler παρέχει συνήθως δυνατότητες επεξεργασίας μακροεντολών, επιτρέποντας στους προγραμματιστές να ορίζουν και να χρησιμοποιούν μακροεντολές στον πηγαίο κώδικα της συναρμολόγησης τους. Οι μακροεντολές μπορούν να επεκταθούν με τις κατάλληλες παραμέτρους για τη δημιουργία πολλαπλών γραμμών κώδικα συναρμολόγησης, βοηθώντας στην απλοποίηση και τη μείωση των επαναλαμβανόμενων εργασιών κωδικοποίησης.
2. Συναρμολόγηση υπό όρους: Το Pass 1 Assembler μπορεί να υποστηρίξει δηλώσεις συναρμολόγησης υπό όρους. Αυτές οι δηλώσεις επιτρέπουν στον assembler να συμπεριλάβει ή να αποκλείσει επιλεκτικά τμήματα του πηγαίου κώδικα συγκρότησης βάσει καθορισμένων συνθηκών ή οδηγιών προεπεξεργαστή. Αυτό μπορεί να είναι χρήσιμο για τη δημιουργία διαφορετικών εκδόσεων ενός προγράμματος ή για τη δημιουργία κώδικα συναρμολόγησης που είναι συμβατός με διαφορετικές διαμορφώσεις υλικού ή λειτουργικά συστήματα.
3. Δημιουργία κώδικα: Σε ορισμένες περιπτώσεις, το Pass 1 Assembler μπορεί να εκτελέσει ορισμένες εργασίες δημιουργίας κώδικα. Αυτό περιλαμβάνει τη δημιουργία συγκεκριμένων αποσπασμάτων κώδικα ή σταθερών απευθείας μέσα στον πηγαίο κώδικα του συγκροτήματος.
4. Οδηγίες προεπεξεργασίας: Το Pass 1 Assembler επεξεργάζεται οδηγίες προεπεξεργασίας, οι οποίες παρέχουν οδηγίες ή εντολές που δεν είναι οδηγίες συναρμολόγησης, αλλά επηρεάζουν τον τρόπο με τον οποίο ο συναρμολογητής ερμηνεύει και επεξεργάζεται τον πηγαίο κώδικα. Αυτές οι οδηγίες μπορεί να περιλαμβάνουν το INCLUDE για την ενσωμάτωση ενός άλλου αρχείου προέλευσης, το EQUATE για τον ορισμό σταθερών και το COPY για την εισαγωγή ενός μπλοκ κώδικα αυτολεξεί.
5. Έλεγχος σφαλμάτων και διαγνωστικά: Το Pass 1 Assembler μπορεί να πραγματοποιήσει έλεγχο σφαλμάτων και να παρέχει διαγνωστικά για να βοηθήσει τον προγραμματιστή να εντοπίσει και να διορθώσει σφάλματα στον πηγαίο κώδικα της συναρμολόγησης.
Pass 2 Assembler
Αφού το Pass 1 Assembler επεξεργαστεί τον πηγαίο κώδικα της συναρμολόγησης και έχουν ολοκληρωθεί τυχόν εργασίες προεπεξεργασίας, ο κώδικας είναι έτοιμος για επεξεργασία από τον κύριο assembler, γνωστό και ως Pass 2 Assembler.
Το Pass 2 Assembler εστιάζει κυρίως στις ακόλουθες εργασίες:
1. Ανάλυση συμβόλων:Το Pass 2 Assembler επιλύει όλα τα σύμβολα που ορίζονται στον πηγαίο κώδικα της συγκρότησης εκχωρώντας συγκεκριμένες διευθύνσεις μνήμης σε αυτά.
2. Δημιουργία κώδικα και δεδομένων:Το Pass 2 Assembler δημιουργεί τις πραγματικές οδηγίες κώδικα μηχανής και δομές δεδομένων με βάση τις οδηγίες συναρμολόγησης και τις οδηγίες στον πηγαίο κώδικα.
3. Υπολογισμός διευθύνσεων:Το Pass 2 Assembler υπολογίζει τις διευθύνσεις μνήμης για όλα τα σύμβολα και τις οδηγίες, διασφαλίζοντας ότι έχουν τοποθετηθεί σωστά στη μνήμη για την αρχιτεκτονική προορισμού.
4. Έλεγχος σφαλμάτων:Το Pass 2 Assembler επαληθεύει περαιτέρω τον πηγαίο κώδικα της συναρμολόγησης για σφάλματα, όπως ακατάλληλους τύπους δεδομένων, μη έγκυρες οδηγίες ή ασυνεπείς διευθύνσεις.
5. Τελική συναρμολόγηση:Μόλις επιλυθούν όλα τα σφάλματα και ολοκληρωθεί η επεξεργασία του πηγαίο κώδικα της συναρμολόγησης, το Pass 2 Assembler δημιουργεί τον τελικό συναρμολογημένο δυαδικό κώδικα, ο οποίος είναι έτοιμος να εκτελεστεί ή να υποβληθεί σε περαιτέρω επεξεργασία από έναν σύνδεσμο, εάν είναι απαραίτητο.
Συνοπτικά, το Pass 1 Assembler ή το Preprocessor Assembler εκτελεί εργασίες προεπεξεργασίας στον πηγαίο κώδικα της συναρμολόγησης πριν από την κύρια διαδικασία συναρμολόγησης, όπως επεξεργασία μακροεντολών, συναρμολόγηση υπό όρους, οδηγίες προεπεξεργασίας και έλεγχος σφαλμάτων. Στη συνέχεια, το Pass 2 Assembler αναλαμβάνει να χειριστεί την ανάλυση συμβόλων, τη δημιουργία κώδικα και δεδομένων, τον υπολογισμό της διεύθυνσης, τον έλεγχο σφαλμάτων και την τελική συναρμολόγηση, με αποτέλεσμα τη δημιουργία του εκτελέσιμου δυαδικού κώδικα.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα