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

Αναζήτηση

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

7.3.5 Ένα συγκριτικό παράδειγμα

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

Γλώσσα υψηλού επιπέδου

Εντολή Περιγραφή A:= B + C Πρόσθεσε το περιεχόμενο των μεταβλητών B και C και το αποτέλεσμα καταχώρισέ το στη μεταβλητή A

Συμβολική γλώσσα

Εντολή Περιγραφή LDA B Μετάφερε στο συσσωρευτή το περιεχόμενο της θέσης μνήμης με όνομα B ADD C Πρόσθεσε στο περιεχόμενο του συσσωρευτή το περιεχόμενο της θέσης μνήμης με όνομα C STA A Μετάφερε και αποθήκευσε το περιεχόμενο του συσσωρευτή στη θέση μνήμης με όνομα A

Γλώσσα μηχανής

Εντολή Περιγραφή 0000001001011010 Μετάφερε στο συσσωρευτή το περιεχόμενο της θέσης μνήμης με διεύθυνση 01011010 0000101001011110 Πρόσθεσε στο περιεχόμενο του συσσωρευτή το περιεχόμενο της θέσης μνήμης με διεύθυνση 01011110 0000011011011110 Μετάφερε και αποθήκευσε το περιεχόμενο του συσσωρευτή στη θέση μνήμης με διεύθυνση 11011110

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