Αναπαραστάσεις αριθμών στο δεκαεξαδικό σύστημα αριθμών. Δεκαεξαδικά και δυαδικά συστήματα αριθμών

Παιδικά είδη 10.10.2019
Παιδικά είδη

Το δεκαεξαδικό σύστημα αριθμών έχει ένα αλφάβητο που αποτελείται από 16 ψηφία:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, c, d, e, f.

Όταν γράφουμε έναν αριθμό στο δεκαεξαδικό σύστημα, τα γράμματα A, B, C, D, E, F χρησιμοποιούνται αντίστοιχα για την εγγραφή των ψηφίων που δηλώνουν τους αριθμούς 10, 11, 12. 13, 14. 15.

Μετατροπή αριθμών από δεκαεξαδικό σε δεκαδικό

Μπορείτε να μετατρέψετε οποιονδήποτε δεκαεξαδικό αριθμό σε δεκαδικό χρησιμοποιώντας τον ήδη γνωστό τύπο

Παραδείγματα.

    AE07 16 =10∙16 3 +14∙16 2 +0∙16 1 +7∙16 0 =44551 10 .

    100 16 =1∙16 2 +0∙16 1 +0∙16 0 =256 10 .

    58 16 =5∙16 1 +8∙16 0 =.88 10 .

    2A 16 =2∙16 1 +10∙16 0 =42 10.

Η μετατροπή ενός αριθμού από το δεκαδικό σύστημα σε δεκαεξαδικό πραγματοποιείται με τον ίδιο τρόπο όπως σε δυαδικό.

Μετατροπή αριθμών από δεκαεξαδικό σε δυαδικό και αντίστροφα

Μπορείτε να μετατρέψετε οποιονδήποτε δεκαεξαδικό αριθμό σε δυαδικό ως εξής. Κάθε ψηφίο ενός δεκαεξαδικού αριθμού γράφεται ως τετραψήφιος δυαδικός αριθμός - σημειωματάριο. Μετά από αυτό, τα μηδενικά στα αριστερά μπορούν να απορριφθούν.

2) 2A= 0010 1010 2 = 101010 2 .

3) 58 16 = 0101 1000 2 = 1011000 2 .

Αντίθετα, μπορείτε να μετατρέψετε οποιονδήποτε δυαδικό αριθμό σε δεκαεξαδικό με τον ίδιο τρόπο. Κάθε τέσσερα δυαδικά ψηφία, μετρώντας από τα δεξιά προς τα αριστερά, γράφονται ως ένα δεκαεξαδικό ψηφίο. Αυτοί οι αριθμοί βρίσκονται επίσης από δεξιά προς τα αριστερά.

Παραδείγματα.

2. 101010 2 = 10 1010 2 = 2Α.

3. 1011000 2 = 101 1000 2 = 58 16 .

Οκταδικό σύστημα αριθμών

Το οκταδικό σύστημα αριθμών έχει ένα αλφάβητο που αποτελείται από 8 ψηφία:

0, 1, 2, 3, 4, 5, 6, 7.

Η μετατροπή ενός αριθμού από το δεκαδικό σύστημα σε οκταδικό και αντίστροφο πραγματοποιείται με τον ίδιο τρόπο όπως η μετατροπή σε/από δυαδικό.

Μετατροπή αριθμών από οκταδικό σε δυαδικό και αντίστροφο

Κάθε ψηφίο ενός οκταδικού αριθμού γράφεται ως τριψήφιος δυαδικός αριθμός - τριάδα.

Παραδείγματα.

2563 8 = 010 101 110 011 2 =10101110011 2 .

1001101 2 = 001 001 101 2 = 115 8 .

Μεθοδολογικό υλικό για το εργαστηριακό μάθημα Νο. 1

Θέμα εργαστηριακού μαθήματος: Αριθμητικά συστήματα. Πληροφορίες μέτρησης.

Αριθμός ωρών: 2.

Παραδείγματα με λύσεις

    Μετάφραση απόΠ -ary system to 10-ary system.Ας υποθέσουμε ότι πρέπει να μετατρέψουμε έναν αριθμό σε ένα συγκεκριμένο σύστημα αριθμών σε δεκαδικό. Για να το κάνετε αυτό, πρέπει να το αντιπροσωπεύσετε στη φόρμα

11100110 2 = 1∙2 7 + 1∙2 6 + 1∙2 5 + 0∙2 4 + 0∙2 3 + 1∙2 2 + 1∙2 1 + 0∙2 0 = 128 + 64 + 32 + 4 + 2 = 230 10 .

2401 5 = 2∙5 3 + 4∙5 2 + 0∙5 1 + 1∙5 0 = 250 + 100 + 0 + 1 = 351.

    Μετατροπή από 10ψήφιο σύστημα σεΠ -ichnaya.

2.1 98 10 → Χ 2.

Διαιρούμε τον αριθμό με το 2. Στη συνέχεια διαιρούμε το ημιτελές πηλίκο με το 2. Συνεχίζουμε μέχρι το ημιτελές πηλίκο να γίνει μικρότερο του 2, δηλ. ίσο με 1.

    98: 2 = 49. Υπόλοιπο - 0 .

    49: 2 = 24. Υπόλοιπο - 1 .

    24: 2 = 12. Υπόλοιπο - 0 .

    12: 2 = 6. Υπόλοιπο - 0 .

    6: 2 = 3. Υπόλοιπο - 0 .

    3: 2 = 1 . Υπόλοιπο - 1 .

Εφόσον το τελευταίο μερικό πηλίκο είναι 1, η διαδικασία έχει τελειώσει. Καταγράφουμε όλα τα υπόλοιπα από κάτω προς τα πάνω, ξεκινώντας από το τελευταίο ημιτελές πηλίκο και παίρνουμε τον αριθμό 1100010. Άρα 98 10 = 1100010 2.

2.2 2391 10 → X 16.

Διαιρέστε τον αριθμό με το 16. Στη συνέχεια διαιρέστε το μερικό πηλίκο με το 16. Συνεχίστε μέχρι το μερικό πηλίκο να είναι μικρότερο από 16.

    2391: 16 = 149. Υπόλοιπο - 7 .

    149: 16 = 9 . Υπόλοιπο - 5 .

Εφόσον το τελευταίο μερικό πηλίκο (9) είναι μικρότερο από 16, η διαδικασία έχει τελειώσει. Σημειώνουμε, ξεκινώντας από το τελευταίο ημιτελές πηλίκο, όλα τα υπόλοιπα από κάτω προς τα πάνω και παίρνουμε τον αριθμό 957. Άρα 2391 10 = 957 16.

2.3 12165 10 → X 2.

Εάν μετατρέψετε με διαίρεση στο δυαδικό σύστημα, θα έχετε μια μάλλον δυσκίνητη διαδικασία. Μπορείτε πρώτα να μετατρέψετε τον αριθμό σε οκταδικό και, στη συνέχεια, να αντικαταστήσετε τα οκταδικά ψηφία από τα δεξιά προς τα αριστερά με τριάδες.

12165 10 = 27605 8 = 010 111 110 000 101 = 10111110000101.

    Προσδιορισμός της βάσης του αριθμητικού συστήματοςΠ .

Ένα αγόρι έγραψε για τον εαυτό του: «Έχω 24 δάχτυλα, 5 σε κάθε χέρι και 12 στα πόδια μου». Πώς μπορεί αυτό να είναι;

Λύση. Είναι απαραίτητο να προσδιοριστεί η βάση του συστήματος αριθμών Π. Αφού ξέρουμε ότι υπάρχουν μόνο 10 δάχτυλα 10, τότε 12 Π =1∙Π+2 = 10 10 . Από εδώ παίρνουμε την εξίσωση Π + 2 = 10  Π= 8. Άρα το αγόρι εννοούσε αριθμούς στο οκταδικό σύστημα. Πράγματι, υπάρχουν 24 8 = 2∙8+4 = 20 10 δάχτυλα και 12 8 = 1∙8+2 = 10 10 δάχτυλα.

0123456789ABCDEF. Λαμβάνοντας ως βάση τον αριθμό 16, παίρνουμε το δεκαεξαδικό σύστημα αριθμών. Εδώ μπορούμε να χρησιμοποιήσουμε 10 ψηφία του δεκαδικού συστήματος, προσθέτοντας 6 ακόμη ψηφία - γράμματα του λατινικού αλφαβήτου (A, B, C, D, E, F): 0, 1, 2, 3, 4, 5, 6, 7 , 8, 9 , A, B, C, D, E, F 10 11 12 13 14 15 Συνολικά 16 διαφορετικοί χαρακτήρες αποτελούν το αλφάβητο του δεκαεξαδικού συστήματος αριθμών. Μπορείτε να γράψετε οποιονδήποτε αριθμό συμπεριλαμβανομένων όλων αυτών των πρόσημα: A37, 1B45, F302, 1A3C5... - σημειώστε: χρησιμοποιούμε πρόσημα από 0 έως F. Για το δεκαεξαδικό σύστημα αριθμών q=16. Περιεχόμενο.

Διαφάνεια 32από την παρουσίαση «Ιστορία των συστημάτων μέτρησης και αριθμών». Το μέγεθος του αρχείου με την παρουσίαση είναι 2292 KB.

Πληροφορική 9η τάξη

περίληψη άλλων παρουσιάσεων

“Modeling” 9η τάξη - Η μοντελοποίηση ως μέθοδος γνώσης. Σύστημα αρχείων υπολογιστή. Το τεστ ολοκληρώθηκε. Ο Πτολεμαίος έχτισε ένα πρότυπο του κόσμου. Μοντέλο ατόμου με τη μορφή παιδικής κούκλας. Είναι πιο βολικό να χρησιμοποιείτε ένα μοντέλο πληροφοριών όταν περιγράφετε την τροχιά ενός αντικειμένου. Υπάρχοντα χαρακτηριστικά του αντικειμένου. Περιγραφή του δέντρου. Είναι πιο βολικό να χρησιμοποιήσετε ένα μοντέλο πληροφοριών. Κατάλογος βουλευτών της Κρατικής Δούμας. Κατάλογος μαθητών σχολείων. διάταξη της τάξης.

"Ιστορία των συστημάτων μέτρησης και αριθμών" - Η βάση του συστήματος αριθμών. Ντουζίνες. Δεκαδικός αριθμός. Σλαβική κυριλλική αρίθμηση. Αρίθμηση. Λουλούδι λωτού. Η θέση ενός ψηφίου σε έναν αριθμό ονομάζεται ψηφίο του. Θέση αριθμού. Στην αρχαιότητα, οι άνθρωποι περπατούσαν ξυπόλητοι. Ένα σύστημα αριθμών θέσης χαρακτηρίζεται από τη βάση του. Διαίρεση κατά βάση. Γράψιμο αριθμών νέου τύπου. Πολλαπλασιασμός δυαδικών αριθμών. Μετατροπή δεκαδικού αριθμού. Αριθμητικές πράξεις.

"Ταξινόμηση σε υπολογιστικά φύλλα" - Ταξινόμηση και αναζήτηση δεδομένων σε υπολογιστικά φύλλα. Αναζήτηση δεδομένων στο ET. Η σειρά της ένθετης ταξινόμησης. Τμήμα. Συνθήκες αναζήτησης για αρχεία. Γράψτε τα ονόματα. Πρακτική δουλειά. Αύξουσα ταξινόμηση. Η σειρά των γραμμών. Ταξινόμηση και αναζήτηση δεδομένων. Μισθός και ηλικία. Ανακλαστική οθόνη. Ταξινόμηση δεδομένων. Επιλέξτε παραδείγματα βάσεων δεδομένων. Ταξινόμηση εγγραφών. Διαφορά μεταξύ εγγραφής και πεδίου. Πώς να χρησιμοποιήσετε το αυτόματο φίλτρο.

"Κυκλικά προγράμματα" - Δημιουργήστε ένα πρόγραμμα. Βρείτε το ποσό. Εισαγάγετε έναν ακέραιο αριθμό. Να βρείτε τον αριθμό των τριψήφιων φυσικών αριθμών. Να βρείτε το άθροισμα των φυσικών αριθμών. Υπολογίζω. Βρόχος με μετασυνθήκη. Εκτυπώστε τον πίνακα στην οθόνη. Ένα αρχικό τέλος. Βρόχος με προϋπόθεση. Διαβήτης. Κυκλικά προγράμματα. Επιστήμη των υπολογιστών. Πίνακας συναρτήσεων. Η έννοια του κύκλου. Βρόχος με μια παράμετρο. Εισαγωγή αρχικών δεδομένων. Πίνακας μετατροπής δολαρίων. Βρείτε τον αριθμό των αριθμών.

«Η μοντελοποίηση ως μέθοδος επιστημονικής γνώσης» - Πίνακας τύπου «αντικείμενα-ένα». Περιγραφές του αντικειμένου. Μέθοδος κατανόησης του περιβάλλοντος κόσμου. Επίλυση προβλήματος. Εκπαιδευτικοί πόροι. Πέντε παιδιά. Επισημοποίηση. Στάδια μοντελοποίησης. Αγόρι. Ιεραρχικό μοντέλο. Περιγραφή του αντικειμένου μοντελοποίησης. Γιούρα. Πασχαλιά. Ονομασίες διακομιστών. Τεχνικά μοντέλα. Διαγράμματα βαθμίδων. Διάγραμμα. Τύπος. Η μοντελοποίηση ως μέθοδος γνώσης. Μοντέλα σε γραφήματα. Προβλήματα που λύνονται με τη χρήση γραφημάτων.

"Τι είναι το email" - Διεύθυνση ηλεκτρονικού ταχυδρομείου. Δρομολόγηση αλληλογραφίας. Γράμμα. Πώς λειτουργεί το email. X-mailer. Το ζήτημα της εμφάνισης του e-mail. Ημερομηνία Αντίγραφο. ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ. Δομή επιστολών. Ιστορικό email. Αποστολέας. ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ.

Όποιος επικοινωνεί με υπολογιστή ή άλλο ψηφιακό εξοπλισμό έχει συναντήσει μυστηριώδεις καταχωρήσεις όπως το 10FEF, οι οποίες φαίνονται σαν κάποιο είδος κώδικα για τους μη μυημένους. Τι κρύβεται πίσω από αυτά τα σύμβολα; Αποδεικνύεται ότι είναι απλώς αριθμοί. Αυτά που χρησιμοποιούν δεκαεξαδικό

Αριθμητικά συστήματα

Κάθε μαθητής γνωρίζει, ή τουλάχιστον έχει ακούσει κάπου, ότι όλοι οι αριθμοί που χρησιμοποιούμε συνήθως φέρουν αυτό το όνομα απλώς και μόνο επειδή υπάρχουν μόνο δέκα διαφορετικά σύμβολα (από το 0 έως το 9). Οποιοσδήποτε αριθμός στο συνηθισμένο μας σύστημα μπορεί να γραφτεί με τη βοήθειά τους. Ωστόσο, αποδεικνύεται ότι δεν είναι πάντα βολικό να το χρησιμοποιείτε. Για παράδειγμα, κατά την ανταλλαγή πληροφοριών μεταξύ ψηφιακών συσκευών, είναι πιο εύκολο να χρησιμοποιήσετε ένα σύστημα αριθμών στο οποίο υπάρχουν μόνο δύο ψηφία: "0" - δεν υπάρχει σήμα - ή "1" - υπάρχει ένα σήμα (τάση ή κάτι άλλο) . Λέγεται δυαδικό. Ωστόσο, για να περιγράψετε τις διαδικασίες μέσα σε τέτοιες συσκευές που το χρησιμοποιούν, θα πρέπει να κάνετε σημειώσεις που είναι πολύ μεγάλες και δυσνόητες. Ως εκ τούτου, εφευρέθηκε το δεκαεξαδικό σύστημα αριθμών.

Η έννοια του δεκαεξαδικού συστήματος

Γιατί οι ψηφιακές συσκευές χρησιμοποιούν ένα σύστημα που περιέχει δεκαέξι διαφορετικά σύμβολα; Όπως γνωρίζετε, οι πληροφορίες στους υπολογιστές μεταδίδονται με τη μορφή byte, τα οποία συνήθως περιέχουν 8 bit. Μια μονάδα δεδομένων - μια λέξη μηχανής - περιλαμβάνει 2 byte, δηλαδή 16 bit. Έτσι, με τη βοήθεια δεκαέξι διαφορετικών συμβόλων, είναι δυνατό να περιγραφεί η πληροφορία που είναι το μικρότερο σωματίδιο στην ανταλλαγή. Το δεκαεξαδικό σύστημα αριθμών περιλαμβάνει τους συνήθεις αριθμούς μας (φυσικά, από το 0 έως το 9), καθώς και τα πρώτα γράμματα (A, B, C, D, E, F). Είναι με τη βοήθεια αυτών των συμβόλων που συνηθίζεται να γράφουμε οποιαδήποτε μονάδα πληροφοριών. Μπορείτε να εκτελέσετε οποιεσδήποτε αριθμητικές πράξεις με αυτά. Δηλαδή πρόσθεση, αφαίρεση, πολλαπλασιασμός, διαίρεση. Το αποτέλεσμα θα είναι επίσης ένας δεκαεξαδικός αριθμός.

Πού χρησιμοποιείται;

Το δεκαεξαδικό σύστημα χρησιμοποιείται για την καταγραφή κωδικών σφαλμάτων. Μπορούν να εμφανιστούν κατά τη λειτουργία διαφόρων προϊόντων λογισμικού. Για παράδειγμα, αυτός είναι ο τρόπος με τον οποίο κωδικοποιούνται τα σφάλματα του λειτουργικού συστήματος. Κάθε αριθμός είναι στάνταρ. Μπορείτε να μάθετε ποιο ακριβώς σφάλμα παρουσιάστηκε κατά τη διαδικασία εργασίας αποκρυπτογραφώντας το χρησιμοποιώντας τις οδηγίες. Τέτοια σύμβολα χρησιμοποιούνται επίσης κατά τη σύνταξη προγραμμάτων σε γλώσσες χαμηλού επιπέδου, όπως η συναρμολόγηση. Το δεκαεξαδικό σύστημα αριθμών είναι επίσης αγαπητό από τους προγραμματιστές, επειδή τα στοιχεία του μπορούν πολύ εύκολα να μετατραπούν σε δυαδικά, τα οποία είναι «εγγενή» σε όλη την ψηφιακή τεχνολογία. Αυτά τα σύμβολα χρησιμοποιούνται επίσης για την περιγραφή χρωμάτων. Επιπλέον, απολύτως όλα τα αρχεία στον υπολογιστή (κείμενο, γραφικά, ακόμη και μουσική ή βίντεο) παρουσιάζονται μετά τη μετάδοση ως ακολουθία. Είναι πιο βολικό να προβάλετε την πηγή με τη μορφή δεκαεξαδικών χαρακτήρων.

Φυσικά, οποιοσδήποτε αριθμός μπορεί να γραφτεί σε διαφορετικά συστήματα αριθμών. Αυτό είναι δεκαδικό, δυαδικό και δεκαεξαδικό. Για να μεταφράσετε μια λέξη από το ένα από αυτά σε ένα άλλο, θα πρέπει να χρησιμοποιήσετε μια υπηρεσία όπως έναν μεταφραστή συστήματος αριθμών ή να το κάνετε μόνοι σας χρησιμοποιώντας έναν συγκεκριμένο αλγόριθμο.

Δεκαεξαδικός συμβολισμός ("Hex")- ένας βολικός τρόπος αναπαράστασης δυαδικών τιμών. Όπως το δεκαδικό σύστημα αριθμών έχει βάση το δέκα και το δυαδικό σύστημα έχει βάση το δύο, το δεκαεξαδικό σύστημα αριθμών έχει βάση το δεκαέξι.

Το σύστημα αριθμών βάσης 16 χρησιμοποιεί τους αριθμούς 0 έως 9 και τα γράμματα A έως F. Το σχήμα δείχνει τις ισοδύναμες δεκαδικές, δυαδικές και δεκαεξαδικές τιμές για τους δυαδικούς αριθμούς 0000 έως 1111. Βρίσκουμε ευκολότερο να εκφράσουμε μια τιμή ως ένα δεκαεξαδικό ψηφίο από τέσσερα bit

Κατανόηση Bytes

Δεδομένου ότι τα 8 bit (bytes) είναι η τυπική δυαδική ομαδοποίηση, οι δυαδικοί αριθμοί 00000000 έως 11111111 μπορούν να αναπαρασταθούν με δεκαεξαδικό συμβολισμό ως οι αριθμοί 00 έως FF. Τα προηγούμενα μηδενικά εμφανίζονται πάντα για να ολοκληρωθεί η αναπαράσταση των 8 bit. Για παράδειγμα, η δυαδική τιμή 0000 1010 σε δεκαεξαδικό θα ήταν 0Α.

Αναπαράσταση Δεκαεξαδικών Τιμών

Παρακαλώ σημειώστε:Είναι σημαντικό να διακρίνουμε τις δεκαεξαδικές τιμές από τις δεκαδικές τιμές για τους χαρακτήρες 0 έως 9, όπως φαίνεται στο σχήμα.

Οι δεκαεξαδικές τιμές συνήθως αντιπροσωπεύονται στο κείμενο με μια τιμή που προηγείται από το 0x (όπως το 0x73) ή με τη χρήση δείκτη του 16. Λιγότερο συχνά, μπορεί να ακολουθούνται από το γράμμα H, όπως το 73H. Ωστόσο, επειδή το κείμενο του δείκτη δεν αναγνωρίζεται στη γραμμή εντολών ή σε περιβάλλοντα προγραμματισμού, προηγείται το "0x" (μηδέν X) στην τεχνική αναπαράσταση δεκαεξαδικών αριθμών. Επομένως, τα παραπάνω παραδείγματα θα εμφανίζονται ως 0x0A και 0x73 αντίστοιχα.

Ο δεκαεξαδικός συμβολισμός χρησιμοποιείται για την αναπαράσταση διευθύνσεων MAC Ethernet και διευθύνσεων IP Έκδοσης 6.

Δεκαεξαδικές μετατροπές

Η μετατροπή αριθμών μεταξύ δεκαδικών και δεκαεξαδικών τιμών είναι απλή, αλλά η γρήγορη διαίρεση ή πολλαπλασιασμός με το 16 δεν είναι πάντα βολική. Εάν τέτοιες μετατροπές είναι απαραίτητες, είναι συνήθως ευκολότερο να μετατρέψετε μια δεκαδική ή δεκαεξαδική τιμή σε δυαδική και στη συνέχεια να μετατρέψετε τη δυαδική τιμή σε δεκαδική ή δεκαεξαδική, ανάλογα με το τι θέλετε να λάβετε.

Με εξάσκηση, είναι δυνατό να αναγνωριστούν τα δυαδικά μοτίβα bit που αντιστοιχούν σε δεκαδικές και δεκαεξαδικές τιμές. Το σχήμα δείχνει αυτά τα μοτίβα για ορισμένες τιμές 8-bit.

Δεκαεξαδικό σύστημα αριθμών. το πρώτο μας πρόγραμμα.

Για να γράψετε προγράμματα σε Assembly, πρέπει να κατανοήσετε το δεκαεξαδικό σύστημα αριθμών. Δεν υπάρχει τίποτα περίπλοκο σε αυτό. Χρησιμοποιούμε το δεκαδικό σύστημα στη ζωή. Είμαι σίγουρος ότι το γνωρίζετε όλοι, γι' αυτό θα προσπαθήσω να εξηγήσω το δεκαεξαδικό σύστημα χρησιμοποιώντας μια αναλογία με το δεκαδικό σύστημα.

Έτσι, στο δεκαδικό σύστημα, αν προσθέσουμε ένα μηδέν σε οποιονδήποτε αριθμό στα δεξιά, τότε αυτός ο αριθμός θα αυξηθεί κατά 10 φορές. Για παράδειγμα: 1 x 10 = 10; 10 x 10 = 100; 100 x 10 = 1000, κ.λπ. Σε αυτό το σύστημα χρησιμοποιούμε αριθμούς από το 0 έως το 9, δηλ. δέκα διαφορετικοί αριθμοί (για την ακρίβεια, γι' αυτό λέγεται δεκαδικός).

Στο δεκαεξαδικό σύστημα, χρησιμοποιούμε δεκαέξι «ψηφία». Έγραψα συγκεκριμένα τη λέξη «ψηφία» σε εισαγωγικά, γιατί... Δεν χρησιμοποιεί μόνο αριθμούς. Και αλήθεια, πώς μπορεί να είναι αυτό; Επιτρέψτε μου να εξηγήσω: από το 0 έως το 9 μετράμε με τον ίδιο τρόπο όπως στο δεκαδικό, αλλά τότε θα είναι έτσι: A, B, C, D, E, F. Ο αριθμός F δεν είναι δύσκολος μετρήστε, θα είναι ίσο με 15 στο δεκαδικό σύστημα (βλ. Πίνακα 1).

Δεκαδικός αριθμός

Δεκαεξαδικός αριθμός

Πίνακας 1. Δεκαδικά και δεκαεξαδικά συστήματα.

Έτσι, αν προσθέσουμε ένα μηδέν στα δεξιά οποιουδήποτε αριθμού στο δεκαεξαδικό σύστημα, τότε αυτός ο αριθμός θα αυξηθεί κατά16 μια φορά.

Παράδειγμα 1: 1 x 16 = 10; 10 x 16 = 100; 100 x 16 = 1000, κ.λπ.

Καταφέρατε να διακρίνετε τους δεκαεξαδικούς αριθμούς από τους δεκαδικούς στο Παράδειγμα 1; Και από αυτή τη σειρά: 10, 12, 45, 64, 12, 8, 19; Αυτά μπορεί να είναι είτε δεκαεξαδικά είτε δεκαδικά. Προκειμένου να αποφευχθεί η σύγχυση και ο υπολογιστής να μπορεί να διακρίνει καθαρά έναν αριθμό από τον άλλο, στο assembler είναι συνηθισμένο να τοποθετείται το σύμβολο h ή H μετά από έναν δεκαεξαδικό αριθμό ( Το H είναι συντομογραφία για τα αγγλικά. δεκαεξαδικό (δεκαεξαδικό). Για συντομία, μερικές φορές ονομάζεται απλώς Γοητεύω ) . Και μην βάζετε τίποτα μετά το δεκαδικό. Επειδή Οι αριθμοί από το 0 έως το 9 και στα δύο συστήματα έχουν την ίδια σημασία, τότε οι αριθμοί που γράφονται ως 5 και 5h είναι οι ίδιοι.

Οτι. Το Παράδειγμα 1 (βλ. παραπάνω) θα ήταν πιο σωστό να γραφτεί ως εξής: 1 x 16 = 10h; 10h x 16 = 100h; 100h x 16 = 1000h. Ή ως εξής: 1h x 10h = 10h; 10h x 10h = 100h; 100h x 10h = 1000h.

Θα εξετάσουμε γιατί χρειάζεται το δεκαεξαδικό σύστημα σε επόμενα τεύχη. Προς το παρόν, για το παράδειγμα του προγράμματος μας, το οποίο θα συζητηθεί παρακάτω, πρέπει να γνωρίζουμε την ύπαρξη δεκαεξαδικών αριθμών.

Λοιπόν, ας συνοψίσουμε. Το δεκαεξαδικό σύστημα αριθμών αποτελείται από 10 ψηφία (από το 0 έως το 9) και 6 γράμματα του λατινικού αλφαβήτου (A, B, C, D, E, F). Αν προσθέσουμε ένα μηδέν στα δεξιά οποιουδήποτε αριθμού στο δεκαεξαδικό σύστημα, τότε αυτός ο αριθμός θα αυξηθεί κατά16 μια φορά. Είναι πολύ σημαντικό να κατανοήσουμε αυτό το θέμα, αφού θα το χρησιμοποιούμε συνεχώς όταν γράφουμε προγράμματα.

Τώρα λίγο για το πώς θα φτιάξω παραδείγματα στο Assembly. Δεν είναι απολύτως βολικό να τα παρουσιάζετε σε μορφή HTML, επομένως πρώτα θα υπάρχει ο ίδιος ο κώδικας του προγράμματος με αριθμημένες γραμμές και αμέσως μετά θα υπάρχουν επεξηγήσεις και σημειώσεις.

Σαν αυτό:

γραμμές Κωδικός προγράμματος
(1) mov ah, 9

Επεξηγήσεις:

Στη γραμμή (1) κάνουμε αυτό, και στη γραμμή (15) κάνουμε αυτό.

Τεράστιο αίτημα: ΜΗΝ αντιγράψετε προγράμματα από μια σελίδα στο πρόχειρο και στη συνέχεια επικολλήστε τα στο Σημειωματάριο (ή οπουδήποτε αλλού)! Πληκτρολογήστε τα ξανά με μη αυτόματο τρόπο σε ένα πρόγραμμα επεξεργασίας κειμένου. Εάν έχετε εκτυπωτή, επιλέξτε το πρόγραμμα, εκτυπώστε το επιλεγμένο τμήμα και, στη συνέχεια, μεταφέρετέ το στο πρόγραμμα επεξεργασίας από χαρτί. Όλα τα παραδείγματα πρέπει να πληκτρολογήσετε μόνοι σας!Αυτό θα επιταχύνει την απομνημόνευση των χειριστών.

Και επιπλέον. Δεν υπάρχει διαφορά μεταξύ πεζών και κεφαλαίων γραμμάτων στο assembler. Αρχεία της φόρμας:

Ο συναρμολογητής τα αντιλαμβάνεται με τον ίδιο τρόπο. Μπορείτε, φυσικά, να αναγκάσετε το assembler να κάνει διάκριση μεταξύ πεζών και κεφαλαίων χαρακτήρων, αλλά δεν θα το κάνουμε προς το παρόν. Για να διευκολύνετε την ανάγνωση του προγράμματος, είναι καλύτερο να πληκτρολογήσετε τελεστές με πεζά γράμματα και να ξεκινήσετε τα ονόματα των υπορουτινών και των ετικετών με κεφαλαία γράμματα. Εξαρτάται όμως ποιος θα βολευτεί.

Ας προχωρήσουμε λοιπόν στο πρώτο μας πρόγραμμα:

(1) τμήμα CSEG

(2)org 100h

(4) Έναρξη:

(6) mov ah,9

(7) mov dx,offset μήνυμα

(8) int 21h

(10) int 20h

(11)

(12) Μήνυμα db "Hello, world!$"

(13) CSEG τελειώνει

(14) τέλος Αρχή

Για να εξηγήσουμε όλους τους τελεστές σε αυτό το παράδειγμα, θα χρειαστούμε αρκετές εκδόσεις. Επομένως, απλά θα παραλείψουμε την περιγραφή ορισμένων εντολών σε αυτό το στάδιο. Απλώς υποθέστε ότι έτσι πρέπει να είναι. Θα εξετάσουμε λεπτομερώς αυτούς τους χειριστές στο πολύ εγγύς μέλλον. Έτσι, οι γραμμές με αριθμό (1), (2) και (13) απλά αγνοείτε.

Οι γραμμές (3), (5), (9) και (11) παραμένουν κενές. Αυτό γίνεται για λόγους σαφήνειας. Ο συναρμολογητής απλώς θα τα παραλείψει.

Τώρα ας προχωρήσουμε στην εξέταση των υπόλοιπων τελεστών. Ο κωδικός προγράμματος ξεκινά με τη γραμμή (4). Αυτό είναι ένα σημάδι που λέει στον assembler την αρχή του κώδικα. Η γραμμή (14) περιέχει τους τελεστές τέλος Αρχή (Ξεκινήστε αγγλικά Αρχή; τέλος τέλος). Αυτό είναι το τέλος του προγράμματος. Γενικά, αντί για τη λέξηΑρχίζουν κάτι άλλο θα μπορούσε να είχε χρησιμοποιηθεί. Για παράδειγμα,Αρχή:. Σε αυτή την περίπτωση, θα έπρεπε να τερματίσουμε το πρόγραμμαΤέλος Έναρξη (14).

Οι γραμμές (6) (8) εμφανίζουν το μήνυμα Hello, world!. Εδώ θα πρέπει να μιλήσουμε εν συντομία για τους καταχωρητές επεξεργαστών (θα εξετάσουμε αυτό το θέμα πιο αναλυτικά στο επόμενο τεύχος).

Ένας καταχωρητής επεξεργαστή είναι μια ειδικά εκχωρημένη μνήμη για την αποθήκευση ενός αριθμού.

Για παράδειγμα:

Αν θέλουμε να προσθέσουμε δύο αριθμούς, τότε στα μαθηματικά το γράφουμε ως εξής:

Α, Β και Γ πρόκειται για ένα είδος καταχωρητών (αν μιλάμε για υπολογιστή) στους οποίους μπορούν να αποθηκευτούν κάποια δεδομένα. Το A=5 μπορεί να διαβαστεί ως: Αντιστοιχίστε στον Α τον αριθμό 5 .

Για να εκχωρήσετε μια τιμή σε έναν καταχωρητή, υπάρχει ένας τελεστής mov στο Assembler (από το αγγλικό move load). Η γραμμή (6) πρέπει να διαβαστεί ως εξής: Φόρτωση στο μητρώο A.H.αριθμός 9 (με άλλα λόγια, αναθέτουμε A.H.αριθμός 9).Παρακάτω θα δούμε γιατί αυτό είναι απαραίτητο.

Στη γραμμή (7) φορτώνουμε στο μητρώο DX διεύθυνση μηνύματος για έξοδο (σε αυτό το παράδειγμα θα είναι η συμβολοσειράΓεια σου κόσμο!$).

Οι διακοπές θα καλυφθούν αναλυτικά σε επόμενα τεύχη. Εδώ θα πω δυο λόγια.

Διακοπή MS-DOS είναι ένα είδος υπορουτίνας (μέρος MS-DOS), το οποίο βρίσκεται μόνιμα στη μνήμη και μπορεί να κληθεί ανά πάσα στιγμή από οποιοδήποτε πρόγραμμα.

Ας εξετάσουμε τα παραπάνω χρησιμοποιώντας ένα παράδειγμα (Σημειώσεις με μικρά γράμματα):

Το πρόγραμμα για την πρόσθεση δύο αριθμών

HomePrograms

Α=5 Εισάγουμε την τιμή 5 στη μεταβλητή Α

Β=8 στη μεταβλητή Β η τιμή 8

Προσθήκη υπορουτίνων κλήσης

τώρα το C ισούται με 13

Α=10 το ίδιο πράγμα, απλά διαφορετικοί αριθμοί

Β=25

Προσθήκη υπορουτίνων κλήσης

τώρα το C είναι ίσο με 35

Τέλος Προγράμματος

Προσθήκη υπορουτίνας

Γ=Α+Β

ReturnFromSubroutine επιστρέφουμε στο μέρος από το οποίο καλέσαμε

EndSubroutine

Σε αυτό το παράδειγμα, καλέσαμε την υπορουτίνα δύο φορές Πρόσθεση, το οποίο πρόσθεσε δύο αριθμούς που του μεταβιβάστηκαν σε μεταβλητέςΑ και Β . Το αποτέλεσμα τοποθετείται στη μεταβλητή C. Όταν καλείται μια υπορουτίνα, ο υπολογιστής θυμάται από πού κλήθηκε και, στη συνέχεια, όταν η υπορουτίνα τελειώσει, ο υπολογιστής επιστρέφει στο μέρος από το οποίο κλήθηκε. Οτι. Μπορείτε να καλέσετε υπορουτίνες απεριόριστες φορές από οπουδήποτε.

Κατά την εκτέλεση της γραμμής (8) ενός προγράμματος Συναρμολόγησης, καλούμε μια υπορουτίνα (στην περίπτωση αυτή ονομάζεται διακοπή), η οποία εμφανίζει τη γραμμή στην οθόνη. Για το σκοπό αυτό, στην πραγματικότητα, τοποθετούμε τις απαραίτητες τιμές στα μητρώα. Όλη την απαραίτητη εργασία (εξαγωγή γραμμής, μετακίνηση του δρομέα) αναλαμβάνει η υπορουτίνα. Αυτή η γραμμή μπορεί να διαβαστεί ως εξής: καλέστε την εικοστή πρώτη διακοπή ( int από τα αγγλικά διακοπή διακοπή). Σημειώστε ότι μετά τον αριθμό 21 υπάρχει ένα γράμμαη . Αυτό, όπως ήδη γνωρίζουμε, είναι ένας δεκαεξαδικός αριθμός (33 σε δεκαδικό). Φυσικά, τίποτα δεν μας εμποδίζει να αντικαταστήσουμε τη γραμμή int 21h έως int 33. Το πρόγραμμα θα λειτουργήσει σωστά. Είναι απλώς κοινή πρακτική στο Assembler να υποδεικνύεται ο αριθμός διακοπής σε δεκαεξαδικό.

Στη γραμμή (10) καλούμε, όπως ίσως μαντέψατε, το interrupt 20η . Για να καλέσετε αυτήν τη διακοπή, δεν χρειάζεται να καθορίσετε καμία τιμή στους καταχωρητές. Εκτελεί μόνο μία εργασία: έξοδο από το πρόγραμμα (έξοδος στο DOS). Ως αποτέλεσμα της εκτέλεσης της διακοπής 20h, το πρόγραμμα θα επιστρέψει εκεί από όπου ξεκίνησε (φόρτωση, κλήση). Για παράδειγμα, σε Norton Commander ή DOS Navigator.

Η γραμμή (12) περιέχει το μήνυμα προς έξοδο. Πρώτη λέξη (μήνυμα μήνυμα) τίτλος μηνύματος. Μπορεί να είναι οτιδήποτε (για παράδειγμα,χάος ή χορδή, κ.λπ.). ΣΧΕΤΙΚΑ ΜΕ Δώστε προσοχή στη γραμμή (7), στην οποία φορτώνουμε στο μητρώο DX τη διεύθυνση του μηνύματός μας.

Μπορούμε να δημιουργήσουμε μια άλλη γραμμή, την οποία θα καλέσουμεΑκατάστατο 2. Στη συνέχεια, ξεκινώντας από τη γραμμή (9), εισαγάγετε τις ακόλουθες εντολές:

(10) mov dx, offset Mess2

(13) Μήνυμα db "Hello, world!$"

(14) Mess2 db "Είμαι ΕΓΩ! $"

και συναρμολογήστε ξανά το πρόγραμμά μας. Ελπίζω να μπορείτε να μαντέψετε τι θα συμβεί

Δώστε προσοχή στον τελευταίο χαρακτήρα στις γραμμέςΜήνυμα και Mess2 - $. Δείχνει στο τέλος της γραμμής. Αν το αφαιρέσουμε, τότε 21η η διακοπή θα συνεχίσει να βγαίνει μέχρι να συναντήσει έναν χαρακτήρα κάπου στη μνήμη $. Στην οθόνη θα δούμεσκουπίδια.

Εάν έχετε πρόγραμμα εντοπισμού σφαλμάτων, μπορείτε να δείτε πώς θα λειτουργεί το πρόγραμμά μας.

Ο σκοπός αυτού του θέματος δεν ήταν να καταλάβει αναλυτικά με κάθε χειριστή. Αυτό είναι αδύνατο, γιατί δεν έχετε αρκετές γνώσεις ακόμα. Πιστεύω ότι μετά από 3-4 εκδόσεις θα κατανοήσετε την αρχή και τη δομή ενός προγράμματος Assembly. Ίσως η γλώσσα Assembly σας φάνηκε εξαιρετικά περίπλοκη, αλλά πιστέψτε με, αυτό είναι με την πρώτη ματιά.



Συνιστούμε να διαβάσετε

Μπλουζα