Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

Ψευδοεντολές

Οι ψευδοεντολές δε μεταφράζονται από το συμβολομεταφραστή σε εντολές μηχανής, αλλά χρησιμοποιούνται κατά τη μετάφραση του προγράμματος. Έχουν και αυτές ένα συμβολικό όνομα που τοποθετείται στο αντίστοιχο τμήμα της εντολής αλλά δεν αντιστοιχεί με κάποιο κώδικα εντολής. Οι ψευδοεντολές μπορούν και αυτές να έχουν συμπληρωμένα και τα υπόλοιπα τμήματά τους.

Στην αρχή του προγράμματος γράφουμε μία ψευδοεντολή ΝΑΜ (από τη λέξη name = όνομα). Στο τμήμα διεύθυνσής της γράφουμε μία λέξη που αποτελεί το όνομα του προγράμματος.

Το πρόγραμμα που υπολογίζει την απόλυτη τιμή ενός αριθμού θα ξεκινά με την ψευδοεντολή «NAM ABS» (από τη λέξη absolute = απόλυτος).

Για να ορίσουμε θέσεις μνήμης που περιέχουν κάποιους αριθμούς και έχουν ένα συμβολικό όνομα, χρησιμοποιούμε την ψευδοεντολή CON (από τη λέξη constant = σταθερά). Στην ψευδοεντολή αυτή πρέπει να δώσουμε μία ετικέτα, για να μπορούμε να αναφερόμαστε στις θέσεις μνήμης αυτές, και αντί για πεδίο διεύθυνσης γράφουμε μία σειρά από αριθμούς.

Η πραγματική διεύθυνση μνήμης που αντιστοιχεί στην ετικέτα δε μας ενδιαφέρει· την επιλέγει ο συμβολομεταφραστής.

Με την ψευδοεντολή «DATA CON 0,8,27» ορίζουμε τρεις θέσεις μνήμης, που περιέχουν τους αριθμούς Ο, 8 και 27 αντίστοιχα. Στην πρώτη θέση αναφερόμαστε ως «DATA», στη δεύτερη ως «DATA+1» και στην τρίτη ως «DATA+3».

Αν μέσα στο πρόγραμμά μας υπάρχει η εντολή «LDA DATA+1», αυτή θα μεταφέρει στον Α το περιεχόμενο της θέσης μνήμης DATA+1, δηλαδή την τιμή 8.

Όπως συμβολίζουμε θέσεις μνήμης που περιέχουν δεδομένα, μπορούμε να συμβολίσουμε θέσεις μνήμης όπου θα αποθηκευθούν τα αποτελέσματα που υπολογίζει το πρόγραμμα. Αυτό γίνεται με μία ψευδοεντολή RES (από το αγγλικό ρήμα reserve = κρατώ, κάνω κράτηση).

Στην ψευδοεντολή RES δίνουμε μία ετικέτα, για να αναφερόμαστε στις θέσεις μνήμης που κρατεί. Το πεδίο διεύθυνσής της περιέχει έναν αριθμό, το πλήθος των θέσεων μνήμης που θέλουμε να κρατήσουμε.

Με την ψευδοεντολή «SUM RES 2» κρατάμε δύο θέσεις μνήμης για να αποθηκεύσουμε αποτελέσματα. Για να καταχωρήσουμε το περιεχόμενο του Α στην πρώτη από αυτές τις θέσεις, θα γράψουμε την εντολή «STA SUM», ενώ για να το αποθηκεύσουμε στη δεύτερη θέση θα γράψουμε «STA SUM+1».

Το τέλος του προγράμματος συμβολίζεται από μία ψευδοεντολή END. Στο τμήμα διεύθυνσής της γράφουμε την ετικέτα της πρώτης εντολής του προγράμματος. Έτσι μπορούμε στην αρχή του προγράμματος σε συμβολική γλώσσα να τοποθετήσουμε δεδομένα, αλλά η εκτέλεσή του να αρχίσει από το σημείο που θα υποδείξουμε με την ψευδοεντολή END.

Δεν πρέπει να μπερδέψουμε την ψευδοεντολή END με την εντολή HLT. Η πρώτη απευθύνεται μόνο στο συμβολομεταφραστή και υποδεικνύει την ολοκλήρωση της μετάφρασης. Η δεύτερη απευθύνεται και στον υπολογιστή και προκαλεί παύση της λειτουργίας του.

Ας δούμε ένα πλήρες πρόγραμμα γραμμένο σε συμβολική γλώσσα, που υπολογίζει την απόλυτη τιμή ενός αριθμού. Ο αριθμός βρίσκεται στη θέση μνήμης που έχει οριστεί με την ψευδοεντολή CON και έχει ετικέτα NUM, και το αποτέλεσμα αποθηκεύεται στη θέση μνήμης που έχει οριστεί με την ψευδοεντολή RES και έχει ετικέτα ABS. Στο πρόγραμμα αυτό οι εντολές άλματος χρησιμοποιούνται για τη διακλάδωση της ροής εκτέλεσής του.