Προκειμένου το μηχάνημα να μπορεί να εκτελεί εντολέςένα άτομο σε επίπεδο υλικού, είναι απαραίτητο να ορίσετε μια συγκεκριμένη ακολουθία ενεργειών στη γλώσσα "μηδενικά και αυτά". Ο συναρμολογητής θα γίνει βοηθός σε αυτό το θέμα. Είναι ένα βοηθητικό πρόγραμμα που λειτουργεί με τη μετάφραση των εντολών σε γλώσσα μηχανής. Ωστόσο, η σύνταξη ενός προγράμματος είναι μια πολύ επίπονη και πολύπλοκη διαδικασία. Αυτή η γλώσσα δεν προορίζεται να δημιουργήσει απλές και απλές ενέργειες. Προς το παρόν, οποιαδήποτε γλώσσα προγραμματισμού που χρησιμοποιείται (το Assembler λειτουργεί τέλεια) σας επιτρέπει να γράφετε ειδικές αποδοτικές εργασίες που επηρεάζουν σημαντικά τη λειτουργία του υλικού. Ο κύριος σκοπός είναι η δημιουργία μικρο-οδηγιών και μικρών κωδικών. Αυτή η γλώσσα παρέχει περισσότερες δυνατότητες από, για παράδειγμα, Pascal ή C.
Σύντομη περιγραφή των γλωσσών συναρμολόγησης
Όλες οι γλώσσες προγραμματισμού χωρίζονται σε επίπεδα:χαμηλή και υψηλή. Οποιοδήποτε από τα συντακτικά συστήματα της «οικογένειας» του Assembler διαφέρει στο ότι ενώνει ταυτόχρονα μερικά από τα πλεονεκτήματα των πιο διαδεδομένων και σύγχρονων γλωσσών. Συνδέονται με άλλους από το γεγονός ότι το σύστημα υπολογιστή μπορεί να χρησιμοποιηθεί πλήρως.
Ένα ξεχωριστό χαρακτηριστικό του μεταγλωττιστή είναιευκολία στη χρήση. Σε αυτό διαφέρει από εκείνους που λειτουργούν μόνο με υψηλά επίπεδα. Εάν λάβετε υπόψη οποιαδήποτε τέτοια γλώσσα προγραμματισμού, το Assembler είναι δύο φορές πιο γρήγορο και καλύτερο. Δεν χρειάζεται πολύς χρόνος για να γράψετε ένα ελαφρύ πρόγραμμα σε αυτό.
Εν συντομία για τη δομή της γλώσσας
Γενικά μιλάμε για εργασία και δομήτη λειτουργία της γλώσσας, μπορούμε να πούμε με βεβαιότητα ότι οι εντολές της αντιστοιχούν πλήρως σε αυτές του επεξεργαστή. Δηλαδή, το Assembler χρησιμοποιεί τους μνημονικούς κωδικούς που είναι πιο βολικοί για τον άνθρωπο να γράφουν.
Σε αντίθεση με άλλες γλώσσες προγραμματισμού,Ο συναρμολογητής χρησιμοποιεί συγκεκριμένες ετικέτες αντί διευθύνσεων για να γράψει θέσεις μνήμης. Μεταφράζονται στις λεγόμενες οδηγίες μαζί με τη διαδικασία εκτέλεσης κώδικα. Πρόκειται για σχετικές διευθύνσεις που δεν επηρεάζουν τη λειτουργία του επεξεργαστή (δεν μεταφράζονται σε γλώσσα μηχανής), αλλά είναι απαραίτητες για αναγνώριση από το ίδιο το περιβάλλον προγραμματισμού.
Κάθε γραμμή επεξεργαστή έχει το δικό της σύνολο εντολών. Σε αυτήν την περίπτωση, οποιαδήποτε διαδικασία θα είναι σωστή, συμπεριλαμβανομένου του μεταφρασμένου κώδικα του μηχανήματος.
Η γλώσσα συναρμολόγησης έχει πολλές συνταγές, οι οποίες θα συζητηθούν στο άρθρο.
Τα πλεονεκτήματα της γλώσσας
Η πιο σημαντική και βολική προσαρμογή γλώσσαςΟ συναρμολογητής θα είναι ότι μπορείτε να γράψετε οποιοδήποτε πρόγραμμα για τον επεξεργαστή σε αυτό, το οποίο θα είναι πολύ συμπαγές. Εάν ο κώδικας αποδειχθεί τεράστιος, τότε το περιβάλλον προγραμματισμού ανακατευθύνει ορισμένες διαδικασίες στη μνήμη RAM. Ταυτόχρονα, κάνουν τα πάντα αρκετά γρήγορα και χωρίς αποτυχίες, εκτός εάν, φυσικά, ελέγχονται από έναν εξειδικευμένο προγραμματιστή.
Προγράμματα οδήγησης, λειτουργικά συστήματα, BIOS, μεταγλωττιστές, διερμηνείς κ.λπ. είναι όλα τα γλωσσικά προγράμματα συναρμολόγησης.
Όταν χρησιμοποιείτε έναν αποσυναρμολογητή αυτόεκτελεί μετάφραση από μηχάνημα σε γλώσσα υπολογιστή, μπορείτε εύκολα να καταλάβετε πώς λειτουργεί μια συγκεκριμένη εργασία συστήματος, ακόμη και αν δεν υπάρχει καμία εξήγηση για αυτό. Ωστόσο, αυτό είναι δυνατό μόνο εάν τα προγράμματα είναι ελαφριά. Δυστυχώς, είναι αρκετά δύσκολο να κατανοήσουμε μη ασήμαντους κωδικούς.
Μειονεκτήματα της γλώσσας
Δυστυχώς, αρχάριοι προγραμματιστές (και συχνάεπαγγελματίες) είναι δύσκολο να καταλάβεις τη γλώσσα. Ο συναρμολογητής απαιτεί μια λεπτομερή περιγραφή της απαιτούμενης εντολής. Η ανάγκη χρήσης οδηγιών μηχανής αυξάνει την πιθανότητα εσφαλμένων ενεργειών και την πολυπλοκότητα της εκτέλεσης.
Για να γράψετε ακόμη και το απλούστερο πρόγραμμα, ένας προγραμματιστής πρέπει να είναι καταρτισμένος και το επίπεδο γνώσεων του είναι αρκετά υψηλό. Δυστυχώς, ο μέσος ειδικός γράφει κακούς κωδικούς
Εάν η πλατφόρμα για την οποία δημιουργείται το πρόγραμμαενημερώνεται, τότε όλες οι εντολές πρέπει να ξαναγραφούν χειροκίνητα - αυτό απαιτείται από την ίδια τη γλώσσα. Ο συναρμολογητής δεν υποστηρίζει τη λειτουργία της αυτόματης ρύθμισης της υγείας των διαδικασιών και της αντικατάστασης οποιωνδήποτε στοιχείων.
Γλωσσικές εντολές
Όπως αναφέρθηκε παραπάνω, κάθε επεξεργαστής έχει το δικό του σύνολο οδηγιών. Τα απλούστερα στοιχεία που αναγνωρίζονται από οποιονδήποτε τύπο είναι οι ακόλουθοι κωδικοί:
- Η μεταφορά δεδομένων γίνεται χρησιμοποιώντας mov κ.λπ.
- Αριθμητικές σχετικές εντολές: sub, imul, κ.λπ.
- Οι δυαδικές και λογικές συναρτήσεις μπορούν να υλοποιηθούν χρησιμοποιώντας ή, και, και ούτω καθεξής. Είναι αυτά τα βασικά στοιχεία της συναρμολόγησης που της επιτρέπουν να είναι παρόμοια με άλλα.
- Για να κάνετε τη μετάβαση από έναεντολές σε άλλο, πρέπει να γράψετε τους ακόλουθους τελεστές: djnz, cfsneq, cjne. Σε έναν άπειρο προγραμματιστή, μπορεί να φαίνεται ότι αυτό είναι μόνο ένα σωρό γράμματα, αλλά αυτό δεν ισχύει.
- Είσοδος και έξοδος χρησιμοποιούνται όταν υπάρχει ανάγκη για είσοδο σε (ή έξοδο από) μια θύρα.
- Οι εντολές ελέγχου περιλαμβάνουν int. Χάρη σε αυτόν, μπορείτε να σταματήσετε την εκτέλεση οποιωνδήποτε διαδικασιών υπέρ της κύριας δράσης.
Χρήση οδηγιών
Προγραμματισμός μικροελεγκτών στη γλώσσα(Ο συναρμολογητής το επιτρέπει και κάνει εξαιρετική λειτουργία) το χαμηλότερο επίπεδο στις περισσότερες περιπτώσεις τελειώνει καλά. Είναι καλύτερο να χρησιμοποιείτε επεξεργαστές με περιορισμούς πόρων. Για τεχνολογία 32-bit, αυτή η γλώσσα είναι εξαιρετική. Μπορείτε συχνά να δείτε οδηγίες σε κωδικούς. Τι είναι αυτό? Και σε τι χρησιμοποιείται;
Πρώτον, πρέπει να εστιάσετε στο γεγονός ότιοι οδηγίες δεν μεταφράζονται σε μηχανογραφική γλώσσα. Καθορίζουν τον τρόπο λειτουργίας του μεταγλωττιστή. Σε αντίθεση με τις εντολές, αυτές οι παράμετροι, που έχουν διαφορετικές λειτουργίες, διαφέρουν όχι λόγω διαφορετικών επεξεργαστών, αλλά λόγω διαφορετικού μεταφραστή. Μεταξύ των κύριων οδηγιών είναι οι εξής:
- Γνωστές μακροεντολές.
- Υπάρχουν επίσης οδηγίες που διαθέτει η ανώτερη γλώσσα. Ο συναρμολογητής τα «διαβάζει» τέλεια και τους εκτελεί
- Λειτουργίες ελέγχου και διαχείρισης τρόπων μεταγλώττισης.
- Αναγνώριση σταθερών και μεταβλητών.
- Ρύθμιση της εργασίας των προγραμμάτων που βρίσκονται στη μνήμη RAM.
Προέλευση του ονόματος
Χάρη στην οποία πήρε το όνομά της η γλώσσα -"Συμβολομεταφράστης"? Μιλάμε για έναν μεταφραστή και έναν μεταγλωττιστή, οι οποίοι κρυπτογραφούν δεδομένα. Στα Αγγλικά, το Assembler δεν σημαίνει τίποτα περισσότερο από ένα assembler. Το πρόγραμμα δεν συναρμολογήθηκε με το χέρι, χρησιμοποιήθηκε μια αυτόματη δομή. Επιπλέον, προς το παρόν, η διαφορά μεταξύ των όρων έχει ήδη εξαφανιστεί μεταξύ των χρηστών και των ειδικών. Η γλώσσα συναρμολόγησης αναφέρεται συχνά ως γλώσσες προγραμματισμού, αν και είναι απλώς μια χρησιμότητα.
Λόγω του γενικά αποδεκτού συλλογικού ονόματος γιαΜερικοί άνθρωποι πιστεύουν λανθασμένα ότι υπάρχει μία μόνο γλώσσα χαμηλού επιπέδου (ή τυποποιημένοι κανόνες για αυτήν). Για να κατανοήσει ο προγραμματιστής ποια δομή μιλάμε, είναι απαραίτητο να διευκρινιστεί για ποια πλατφόρμα χρησιμοποιείται μια συγκεκριμένη γλώσσα συναρμολόγησης.
Εργαλεία μακροεντολών
Συγκεντρωτικές γλώσσες που έχουν δημιουργηθεί σχετικάπρόσφατα, έχετε μακροοικονομικά κεφάλαια. Διευκολύνουν την εγγραφή και εκτέλεση του προγράμματος. Λόγω της παρουσίας τους, ο μεταφραστής εκτελεί τον γραπτό κώδικα πολλές φορές πιο γρήγορα. Κατά τη δημιουργία μιας επιλογής υπό όρους, μπορείτε να γράψετε ένα τεράστιο μπλοκ εντολών, αλλά είναι ευκολότερο να χρησιμοποιήσετε εργαλεία μακροεντολών. Θα σας επιτρέψουν να κάνετε εναλλαγή μεταξύ ενεργειών γρήγορα, σε περίπτωση που πληρούται μια προϋπόθεση ή όχι.
Όταν χρησιμοποιείτε οδηγίες της γλώσσας μακροεντολών, ο προγραμματιστήςπαίρνει μακροεντολές συναρμολόγησης. Μερικές φορές μπορεί να χρησιμοποιηθεί ευρέως και μερικές φορές η λειτουργικότητά του μειώνεται σε μία εντολή. Η παρουσία τους στον κώδικα διευκολύνει την εργασία με αυτόν, το καθιστά σαφέστερο και πιο διαισθητικό. Ωστόσο, θα πρέπει να είστε προσεκτικοί - σε ορισμένες περιπτώσεις, οι μακροεντολές, αντίθετα, επιδεινώνουν την κατάσταση.