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

Αναζήτηση

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

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

Επειδή ο κάθε τύπος ΚΜΕ έχει διαφορετικό ρεπερτόριο εντολών, τα προγράμματα που εκτελεί πρέπει να είναι διατυπωμένα στη δική της γλώσσα μηχανής. Αυτά τα προγράμματα αποτελούνται από ακολουθίες 0 και 1.

Οι εντολές που αναγνωρίζει μια τυπική ΚΜΕ ανήκουν σε μια από τις πιο κάτω κατηγορίες: - εντολές μεταφοράς δεδομένων μεταξύ της κεντρικής μνήμης και των καταχωρητών της ΚΜΕ - εντολές μεταφοράς δεδομένων μεταξύ των καταχωρητών - εντολές αριθμητικών πράξεων - εντολές λογικών πράξεων - εντολές ελέγχου της ροής εκτέλεσης των εντολών - διάφορες βοηθητικές εντολές. Κάθε εντολή στη γλώσσα μηχανής αποτελείται από δύο τμήματα, τον κωδικό λειτουργίας (operation code, OP code) και τον τελεστέο (operand).

Κωδικός λειτουργίας Τελεστέος

Ο κωδικός λειτουργίας προσδιορίζει τη λειτουργία της εντολής, για παράδειγμα "πρόσθεσε στο συσσωρευτή" ή "αποθήκευσε το περιεχόμενο του συσσωρευτή στην τάδε θέση μνήμης", και αντιστοιχεί σε μια από τις οδηγίες του συνόλου οδηγιών της ΚΜΕ. Ο τελεστέος αφορά τα δεδομένα στα οποία δρα η εντολή ή τη διεύθυνση στην οποία βρίσκονται αποθηκευμένα. Το μέγεθος (ο αριθμός των bit) κάθε εντολής μπορεί να είναι σταθερός ή μεταβλητός. Για παράδειγμα, στον επεξεργαστή Z80, η εντολή 1110011010110011, κατευθύνει την ΚΜΕ να προσθέσει στο περιεχόμενο του καταχωρητή με το όνομα accumulator τον αντίστοιχο δυαδικό του 179(10) δεκαδικό αριθμό 179. Τα πρώτα 8 ψηφία είναι ο κωδικός λειτουργίας, ενώ τα 8 επόμενα ο τελεστέος της εντολής, ο αριθμός 179(10). Ένα πρόγραμμα γραμμένο σε γλώσσα μηχανής θα έμοιαζε κάπως έτσι: 1110011010110011 1011011010111011 101001111011011010100010 0101011010010011 1110011010110110 110001101011011110110100 1101011000110101 10101110 1100011010110010 (Κωδικός Λειτουργίας/ Τελεστέος)

Z80: Επεξεργαστής της εταιρείας Ζilog στο τέλος της δεκαετίας του ‘70

Η κάθε εντολή θα μπορούσε, αντί να παρασταθεί στο δυαδικό σύστημα, να παρασταθεί στο οκταδικό ή στο δεκαεξαδικό, ώστε να είναι μικρότερος ο αριθμός των ψηφίων της. Τα πρώτα προγράμματα γράφονταν σε γλώσσα μηχανής. Ωστόσο η γραφή προγραμμάτων άμεσα στη γλώσσα μηχανής του υπολογιστή είναι μια πολύ δύσκολη και αντιπαραγωγική εργασία. Δύο από τις βασικότερες αιτίες είναι η δυσκολία απομνημόνευσης των κωδικών των εντολών και η δυσκολία να εντοπιστεί κάποιο πιθανό λάθος ανάμεσα σε όλα αυτά τα 0 και 1. Γι' αυτό, από πολύ νωρίς, αναζητήθηκαν τρόποι να γράφονται τα προγράμματα σε γλώσσα πιο προσιτή στον άνθρωπο. Η επιδίωξη αυτή, οδήγησε στην ανάπτυξη των διαφόρων γλωσσών προγραμματισμού, καθώς επίσης και στην ανεύρεση τρόπων για την εκτέλεση από τον υπολογιστή των προγραμμάτων που γράφονται σε αυτές τις γλώσσες.