Εξήγηση για συστήματα επεξεργασίας Endian μεγάλο και μικρό Endian αρχιτεκτονικής

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 102025 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Κατά τη σχεδίαση των υπολογιστών, υπάρχουν δύο διαφορετικές αρχιτεκτονικές για το χειρισμό της αποθήκευσης της μνήμης. Αυτοί ονομάζονται Endian μεγάλο και μικρό Endian και αναφέρονται στην παραγγελία στην οποία αποθηκεύονται τα byte στη μνήμη. Τα Windows NT έχει σχεδιαστεί γύρω από το μικρό Endian αρχιτεκτονική και δεν έχει σχεδιαστεί ώστε να είναι συμβατός με μεγάλο Endian, επειδή τα περισσότερα προγράμματα που έχουν συνταχθεί με εξάρτηση από ορισμένες σε μικρό Endian.

Περισσότερες πληροφορίες

Αυτές οι δύο φράσεις προέρχονται από "Big End σε" και "Λίγο τέλος." Αναφέρονται στον τρόπο στο οποίο αποθηκεύεται η μνήμη. Σε έναν υπολογιστή της Intel, το μικρό τέλος αποθηκεύεται πρώτα. Αυτό σημαίνει ότι μια λέξη δεκαεξαδική μορφή 0x1234 αποθηκεύεται στη μνήμη ως (0x34 0x12). Η μικρή τέλος ή κάτω άκρο, αποθηκεύεται πρώτα. Το ίδιο ισχύει για μια τιμή τεσσάρων byte, για παράδειγμα 0x12345678 θα αποθηκευτούν ως (0x78 0x56 0x34 0x12). "Big End σε" πραγματοποιεί με αντίστροφη τρόπο, ώστε να 0x1234 θα αποθηκευτούν ως (0x12 0x34) στη μνήμη. Αυτή είναι η μέθοδος που χρησιμοποιείται από υπολογιστές Motorola και μπορεί επίσης να χρησιμοποιηθεί σε υπολογιστές με RISC. Οι υπολογιστές με RISC υπολογιστές με επεξεργαστή MIPS και των υπολογιστών DEC Alpha είναι δυνατό να ρυθμιστούν για Endian μεγάλο ή μικρό Endian. Τα Windows NT λειτουργεί μόνο σε κατάσταση λειτουργίας μικρό Endian και στους δύο υπολογιστές.

Τα Windows NT έχει σχεδιαστεί γύρω από το μικρό Endian αρχιτεκτονικής. Το επίπεδο αφαίρεσης υλικού (HAL) έχει συνταχθεί έτσι ώστε όλα τα ζητήματα που σχετίζονται με το λειτουργικό σύστημα να γίνεται αυτόματα. Επομένως, είναι δυνατή η δημιουργία ενός HAL που θα μπορούσε να λειτουργήσει σε μεγάλο Endian αρχιτεκτονική. Το βασικό πρόβλημα με θύρες ο κώδικας έχει να κάνει με τον τρόπο που ο κώδικας έχει γραφεί για όλα τα προγράμματα. Κωδικός γράφεται συχνά με την προϋπόθεση ότι Endian μεγάλο ή μικρό Endian χρησιμοποιείται. Αυτό μπορεί να μην είναι συγκεκριμένες για το HAL, μπορεί να είναι κάτι τόσο απλή όσο η Μασκάρισμα bit για γραφικά. Για να διευκρινίσετε περισσότερες αυτή την έννοια, ακολουθούν δύο παραδείγματα προγραμματισμού.

Παράδειγμα 1

   struct
   {
      WORD y;
      WORD x;
   } POS;

   lparam = (DWORD) POS;
				
Βασικά, δεν υπάρχει στον κώδικα ότι μικρό Endian χρησιμοποιείται την υπόθεση. Εναλλαγή των byte που λαμβάνεται στη δομή "C". Αυτή είναι ταχύτερη από την αρχιτεκτονική Intel, αλλά δεν θα λειτουργήσει με μεγάλο Endian.

Παράδειγμα 2

Ένα άλλο παράδειγμα είναι μια κοινή πρακτική χρησιμοποιώντας μάσκες bit. Ακολουθεί ένα παράδειγμα ορίζει μια μάσκα bit:
   #define BITMASK    0x0008
				
Αυτό σας επιτρέπει να ελέγξετε εάν το 4ο bit είναι ένα 1 αν κάνετε και με έναν άλλο αριθμό. Επίσης, μπορείτε να ορίσετε την 4η bit, OR ων του με μια άλλη τιμή. Το πρόβλημα παρουσιάζεται όταν κάνετε OR ή και αυτό με DWORD (Double Word) ή οτιδήποτε άλλο εκτός από μια ΛΕΞΗ μέγεθος τιμή. Αυτό προκαλεί παράξενα πράγματα που πρέπει να συμβεί και μη αναμενόμενα αποτελέσματα. Μπορείτε να κάνετε υποθέσεις σχετικά με τον τρόπο λειτουργίας με μικρό Endian, αλλά δεν θα λειτουργήσει με μεγάλο Endian τον ίδιο τρόπο. Με αυτές τις υποθέσεις που είναι ενσωματωμένη ήδη δημιουργείται ένα μεγάλο όγκο κώδικα.

Σημειώστε ότι τα chip PowerPC και Sparc είναι επίσης switchable μεταξύ Endian μικρό και μεγάλο Endian. Ωστόσο, η υλοποίηση του chip PowerPC PowerMac Apple έχει κολλήσει στο μεγάλο Endian λειτουργίας. Επομένως, τα Windows NT ενδέχεται να port το PowerPC, αλλά μάλλον δεν για την υλοποίηση του PowerPC PowerMac.

Ιδιότητες

Αναγν. άρθρου: 102025 - Τελευταία αναθεώρηση: Σάββατο, 18 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Windows NT Workstation 3.1
Λέξεις-κλειδιά: 
kbhardware kbmt KB102025 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:102025

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com