Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει Μη Μη-Πτητικό Μητρώο;
Ένας μη πτητικός καταχωρητής είναι ένας τύπος μητρώου με περιεχόμενα που πρέπει να διατηρούνται σε κλήσεις υπορουτίνας. Κάθε φορά που η τιμή ενός μη πτητικού καταχωρητή αλλάζει από τη ρουτίνα, η παλιά τιμή πρέπει να αποθηκευτεί στη στοίβα πριν από την αλλαγή του μητρώου και αυτή η τιμή πρέπει να αποκατασταθεί πριν επιστρέψει. Ένας καταχωρητής είναι παρόμοιος με μια μεταβλητή, με την εξαίρεση ότι υπάρχει ένας σταθερός αριθμός μητρώων. Κάθε μητρώο είναι μια μοναδική τοποθεσία στη CPU στην οποία αποθηκεύεται μια μοναδική τιμή. Ένα μητρώο είναι το μοναδικό μέρος όπου μπορούν να διεξαχθούν μαθηματικές λειτουργίες, όπως η προσθήκη, ο πολλαπλασιασμός, η αφαίρεση κλπ. Τα μητρώα διατηρούν συχνά δείκτες που αναφέρονται στη μνήμη. Οι μετακινήσεις τιμών μεταξύ μνήμης και μητρώων είναι ένα κοινό φαινόμενο.
Η Techopedia εξηγεί το Μη Πτητικό Μητρώο
Τα ακόλουθα είναι μερικά παραδείγματα μη πτητικών μητρώων:
- ebx : μη πτητικό μητρώο που χρησιμοποιείται για γενικούς σκοπούς. Συνήθως ορίζεται σε μια κοινή τιμή μέσω μιας συνάρτησης για την επιτάχυνση των υπολογισμών.
- esi : μη πτητικό μητρώο που χρησιμοποιείται για γενικούς σκοπούς. Χρησιμοποιείται συνήθως ως δείκτης, ειδικά για οδηγίες κατηγορίας "rep" που απαιτούν πηγή και προορισμό για δεδομένα. Εδώ, το ESI δείχνει την πηγή. Ένα esi διατηρεί γενικά δεδομένα που χρησιμοποιούνται καθ 'όλη τη λειτουργία, καθώς δεν είναι επιρρεπείς σε αλλαγές.
- edi : Ένας άλλος μη πτητικός καταχωρητής που χρησιμοποιείται για γενικούς σκοπούς. Αυτό χρησιμοποιείται συνήθως ως δείκτης. Μια edi είναι ίδια με μια esi, με την εξαίρεση ότι συνήθως δείχνει στον προορισμό.
- ebp : Ένας άλλος μη πτητικός καταχωρητής που χρησιμοποιείται ως γενικός καταχωρητής. Έχει δύο ξεχωριστές χρήσεις με βάση τις ρυθμίσεις δημιουργίας. Πρόκειται είτε για μητρώο γενικού σκοπού είτε για δείκτη πλαισίου. Εάν η μεταγλώττιση δεν έχει βελτιστοποιηθεί ή εάν ο κώδικας είναι γραμμένος με το χέρι, το ebp παρακολουθεί τη θέση της στοίβας όταν ξεκινά μια λειτουργία. Δεδομένου ότι η στοίβα αλλάζει σε όλη τη λειτουργία, όταν το ebp έχει οριστεί στην αρχική τιμή, επιτρέπεται η εύκολη αναφορά των μεταβλητών που έχουν αποθηκευτεί στη στοίβα. Εάν η βελτιστοποίηση της μεταγλώττισης, το ebp θα χρησιμοποιηθεί ως γενικός καταχωρητής για την αποθήκευση οποιουδήποτε τύπου δεδομένων, ενώ οι υπολογισμοί για τον δείκτη στοίβας πραγματοποιούνται ανάλογα με την κίνηση του.
