Χρήστης:Jimmyboy4/Γλώσσα μηχανής
From Wikipedia, the free encyclopedia
Στον προγραμματισμό υπολογιστών, ως κώδικας μηχανής θεωρούμε οποιαδήποτε γλώσσα προγραμματισμού χαμηλού επιπέδου, που αποτελείται από οδηγίες γλώσσας μηχανής, οι οποίες χρησιμοποιούνται για τον έλεγχο της κεντρικής μονάδας επεξεργασίας ενός υπολογιστή (CPU). Κάθε εντολή αναγκάζει τη CPU να εκτελέσει μια πολύ συγκεκριμένη εργασία, όπως μια λειτουργία φόρτωσης, αποθήκευσης, άλματος ή μία λειτουργία αριθμητικής λογικής μονάδας (ALU) σε μία ή περισσότερες μονάδες δεδομένων στους καταχωρητές ή στη μνήμη της CPU.
Ο κώδικας μηχανής είναι μια αυστηρά αριθμητική γλώσσα που έχει σχεδιαστεί για να εκτελείται όσο το δυνατόν γρηγορότερα και μπορεί να θεωρηθεί ως η αναπαράσταση του χαμηλότερου επιπέδου ενός μεταγλωττισμένου ή συναρμολογημένου προγράμματος υπολογιστή ή ως μια πρωτόγονη και εξαρτώμενη από το υλικό, γλώσσα προγραμματισμού. Ενώ είναι δυνατό να γραφτούν προγράμματα απευθείας σε κώδικα μηχανής, η διαχείριση μεμονωμένων bit και ο υπολογισμός αριθμητικών διευθύνσεων και σταθερών χειροκίνητα είναι κουραστικά και επιρρεπή σε σφάλματα. Για αυτόν τον λόγο, τα προγράμματα πολύ σπάνια γράφονται απευθείας σε κώδικα μηχανής σε σύγχρονες συνθήκες, αλλά μπορεί να χρησιμοποιηθούν για τον εντοπισμό σφαλμάτων χαμηλού επιπέδου, την επιδιόρθωση προγραμμάτων (ειδικά όταν η πηγή συναρμολογητή δεν είναι διαθέσιμη) και την αποσυναρμολόγηση γλώσσας συναρμολόγησης .
Η πλειονότητα των πρακτικών προγραμμάτων σήμερα είναι γραμμένα σε γλώσσες υψηλότερου επιπέδου ή σε γλώσσα συναρμολόγησης. Στην συνέχεια, ο πηγαίος κώδικας μεταφράζεται σε εκτελέσιμο κώδικα μηχανής από βοηθητικά προγράμματα όπως μεταγλωττιστές, συναρμολογητές και συνδέτες, με σημαντική εξαίρεση τα ερμηνευμένα προγράμματα, που δεν μεταφράζονται σε κώδικα μηχανής. Ωστόσο, ο ίδιος ο διερμηνέας, που μπορεί να θεωρηθεί και ως εκτελεστής ή επεξεργαστής των οδηγιών του πηγαίου κώδικα, συνήθως αποτελείται από απευθείας εκτελέσιμο κώδικα μηχανής (που δημιουργείται από τη συναρμολόγηση ή τον πηγαίο κώδικα γλώσσας υψηλού επιπέδου).
Ο κώδικας μηχανής είναι εξ ορισμού το χαμηλότερο επίπεδο λεπτομέρειας προγραμματισμού ορατό από τον προγραμματιστή, αλλά εσωτερικά πολλοί επεξεργαστές χρησιμοποιούν μικροκώδικα, ή βελτιστοποιούν και μετατρέπουν τις οδηγίες κώδικα μηχανής σε ακολουθίες μικρο-λειτουργιών . Στις περισσότερες περιπτώσεις, αυτό δεν θεωρείται ως κωδικός μηχανής.