Πότε ήταν ο συναρμολογητής (συναρμολόγηση) και η γλώσσα του μηχανήματος; Εισαγωγή Σύστημα διακοπής του προγράμματος

Κρατικός προϋπολογισμός και εκπαιδευτικό ίδρυμα

Πράγμα: επιστήμη των υπολογιστών

αφηρημένη

Θέμα: Ιστορία των γλωσσών προγραμματισμού.

Συμβολομεταφράστης.

Εκτελεί: Φοιτητής βαθμού 8,

Γυμνάσιο №1467

Sorokin Nikolai

Κεφάλι: ΤΣVetkova Oksana Mikhailovna

Εισαγωγή

Με αύξηση του όγκου υπολογισμού, εμφανίστηκε το πρώτο μετρήσιμο φορητό εργαλείο - "Λογαριασμοί".

Στις αρχές του 17ου αιώνα, υπήρχε ανάγκη για πολύπλοκο υπολογισμό. Απαιτούνται εξαρτώμενες συσκευές, ικανές να εκτελέσουν μια μεγάλη ποσότητα υπολογιστών με υψηλή ακρίβεια. Το 1642, ο γαλλικός μαθηματικός Pascal κατασκευάστηκε την πρώτη μηχανική μηχανή μέτρησης - "Pascalina".

Το 1830, ο αγγλικός επιστήμονας Babidge πρότεινε την ιδέα της πρώτης προγραμματιζόμενης υπολογιστικής μηχανής ("αναλυτική μηχανή"). Θα πρέπει να ενεργοποιηθεί με τη δύναμη του ατμού και τα προγράμματα κωδικοποιήθηκαν στη διάτρηση. Δεν ήταν δυνατή η εφαρμογή αυτής της ιδέας, καθώς δεν ήταν δυνατή η πραγματοποίηση ορισμένων λεπτομερειών του αυτοκινήτου.

Το πρώτο έχει εφαρμόσει την ιδέα της διάτρητης hollerit. Εφευρέθηκε το αυτοκίνητο για να επεξεργαστεί τα αποτελέσματα της απογραφής. Στο αυτοκίνητό του, εφαρμόστηκε για πρώτη φορά ηλεκτρική ενέργεια στους υπολογισμούς. Το 1930, ο Αμερικανός Bushist Bush εφευρέθηκε τον διαφορικό αναλυτή - τον πρώτο υπολογιστή στον κόσμο.

Μια μεγάλη ώθηση στην ανάπτυξη της τεχνολογίας υπολογιστών έδωσε στον Δεύτερο Παγκόσμιο Πόλεμο. Ο στρατιωτικός πήρε τον υπολογιστή στον οποίο έγινε ο Mark-1 - ο πρώτος ψηφιακός υπολογιστής στον κόσμο, εφευρέθηκε το 1944 από τον καθηγητή Aykhan. Χρησιμοποίησε τον συνδυασμό ηλεκτρικών σημάτων και μηχανικών δίσκων. Διαστάσεις: 15 x 2,5 μ., 750000 μέρη. Θα μπορούσε να πολλαπλασιάσει δύο 23 αριθμούς εκκένωσης για 4 s.

Το 1946, ο πρώτος ηλεκτρονικός υπολογιστής δημιουργήθηκε από την ομάδα μηχανικών από το στρατιωτικό τμήμα των Ηνωμένων Πολιτειών - "Eniak". Ταχύτητα: 5000 Λειτουργίες προσθήκης και 300 πολλαπλασιασμού ανά δευτερόλεπτο. Διαστάσεις: 30 μ. Σε μήκος, όγκος - 85 m3., Βάρος - 30 τόνοι. Χρησιμοποίησε 18.000 el. λαμπτήρες.

Το πρώτο αυτοκίνητο με ένα χρόνιο πρόγραμμα - "Edsak" - δημιουργήθηκε το 1949 και το 1951 δημιούργησε το αυτοκίνητο "

Junivak "- ο πρώτος σειριακός υπολογιστής με χρόνιο πρόγραμμα. Σε αυτό το αυτοκίνητο, χρησιμοποιήθηκε μαγνητική ταινία για εγγραφή και αποθήκευση πληροφοριών

Γιατί χρειάζομαι γλώσσα προγραμματισμού;

Οι υπολογιστές εμφανίστηκαν εδώ και πολύ καιρό στο MPE μας, αλλά μόνο στο τελευταίο άρχισα να τα χρησιμοποιήσουμε τόσο σκληρά στη χρήση σε πολλά από τα χέρια της ανθρώπινης ζωής. Πριν από δέκα χρόνια ήταν μια σπανιότητα να δούμε κάποιον προσωπικό υπολογιστή - ήταν, αλλά ήταν πολύ ακριβό, και ούτε καν κάθε εταιρεία μπορούσε να έχει έναν υπολογιστή στο γραφείο μου. Και τώρα? Τώρα σε κάθε τρίτο σπίτι υπάρχει ένας υπολογιστής που έχει ήδη εισέλθει βαθιά τη ζωή των κατοίκων του σπιτιού.

Η ίδια η ιδέα της δημιουργίας τεχνητής νοημοσύνης εμφανίστηκε εδώ και πολύ καιρό, αλλά μόνο τον 20ό αιώνα άρχισε να πραγματοποιείται. Αρχικά υπήρχαν τεράστιοι υπολογιστές που επηρεάζουν το μέγεθος ενός τεράστιου σπιτιού. Η χρήση τέτοιων Μαχινού, όπως εσείς καταλαβαίνετε, δεν ήταν πολύ βολικό. Αλλά τι μπορείτε να κάνετε; Αλλά ο κόσμος δεν στέκεσε σε ένα μέρος εξελικτικής ανάπτυξης - οι άνθρωποι άλλαξαν και οι οικοτόπιλοι τους άλλαξαν, και μαζί μαζί της τις τεχνολογίες τους και περισσότερες βελτιώσεις. Και οι υπολογιστές έχουν γίνει όλο και λιγότερο στο μέγεθός τους, μέχρι να φτάσουν στο σημερινό μέγεθος.

Αλλά τελικά, πρέπει επίσης να επικοινωνήσει με το αυτοκίνητο - τελικά, που χρειάζεται ένα μη διαχειριζόμενο αυτοκίνητο; Αρχικά, οι άνθρωποι συμπεριφέρθηκαν στην επικοινωνία τους με τους υπολογιστές με ρολό Perfoch. Το Perfocard είναι μικρές κάρτες στις οποίες εφαρμόζονται οι σειρές αριθμών. Ο υπολογιστής είχε μια "κίνηση", στην οποία οι ίδιες οι κάρτες εισήχθησαν και έβαλε τρύπες σε αριθμούς με μικρές βελόνες. Μια τέτοια συνομιλία δεν είναι σε θέση να πάρει ευχαρίστηση - τελικά, δεν είναι πολύ βολικό να μεταφέρετε ένα σωρό από καρδιακό σωρό, το οποίο μετά από μια χρήση έπρεπε να πετάξει έξω.

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

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

Κατά τη διάρκεια του χρόνου που έχει περάσει από τη δεκαετία του '50, ο ψηφιακός υπολογιστής έχει γίνει ένα "μαγικό", αλλά ταυτόχρονα ακριβό, μοναδικό και υπερθερμανόμενο πίδακα ηλεκτρονικών λαμπτήρων, καλωδίων και μαγνητικών πυρήνων σε μια μηχανή μικρού μεγέθους - ένας προσωπικός υπολογιστής - που συνίσταται εκατομμυρίων μικροσκοπικών συσκευών ημιαγωγών, τα οποία συσκευάζονται σε μικρά πλαστικά κουτιά.

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

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

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

Ήδη, οι υπολογιστές μπορούν να προφέρουν σαφώς διάφορες φράσεις, φράσεις, να παίζουν μουσική i.t.d. Ένα άτομο μπορεί τώρα να γράψει μερικές λέξεις, προτάσεις και ακόμη και μουσικές συνθέσεις στον δικό τους υπολογιστή για να τους παίξει ο υπολογιστής σε οποιοδήποτε διορισμένο χρόνο.

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

Αλλά το πρόβλημα της αναγνώρισης ομιλίας αποτελεί μέρος ενός ευρύτερου προβλήματος που ονομάζεται αναγνώριση εικόνας. Εάν οι υπολογιστές μπορούν να αναγνωρίσουν τις εικόνες καλά, θα μπορούν να αναλύουν ακτινογραφίες και δακτυλικά αποτυπώματα, καθώς και να εκτελούν πολλές άλλες χρήσιμες λειτουργίες (ταξινόμηση γράμματα που ασχολούνται τώρα). Πρέπει να σημειωθεί ότι ο ανθρώπινος εγκέφαλος τέλεια αντιμετωπίζει την αναγνώριση των εικόνων, ακόμη και αν υπάρχουν διάφορους θορύβους και παραμόρφωση και μελέτες σε αυτόν τον τομέα, με στόχο την προσέγγιση των σχετικών δυνατοτήτων του υπολογιστή σε ανθρώπινες ικανότητες, είναι πολύ ελπιδοφόρες. Εάν οι υπολογιστές αναγνωρίζουν ποιοτικά την ομιλία και την ανταποκρίνονται σε αυτήν σε μια λεκτική μορφή, τότε, προφανώς, θα είναι δυνατόν να εισέλθουν σε αυτή τη μορφή του προγράμματος και των δεδομένων. Αυτό θα επιτρέψει στην επιστολή να μιλήσει στον υπολογιστή που πρέπει να κάνει και να ακούσει τη γνώμη του σχετικά με το θέμα αυτό, φυσικά, ότι οι ενδείξεις που έχουν εκδοθεί σε αυτό είναι σαφείς, δεν περιέχουν τις αντιφάσεις του i.t.

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

Συχνά διαμαρτύρονται ότι άλλοι άνθρωποι δεν μας καταλαβαίνουν. Αλλά μέχρι στιγμής, οι ίδιοι οι προσωπικοί υπολογιστές δεν είναι σε θέση να μας καταλάβουν πλήρως ή να καταλάβουμε τι θέλουμε να πούμε με ένα μισό σκελετό. Και για μια χρονική περίοδο, θα πρέπει να είμαστε ικανοποιημένοι με τέτοια μηχανήματα που απλά ακολουθούν τις οδηγίες μας, με την πραγματοποίηση τους "με ακρίβεια ενός χιλιοστού".

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

Σήμερα, οι γλώσσες προγραμματισμού υψηλότερου επιπέδου χρησιμοποιούνται σιωπηλά, που εργάζονται με τα οποία είναι πολύ πιο εύκολο από ό, τι με έναν συναρμολογητή, αφού σε αυτές, μία λέξη μπορεί να αντικαταστήσει αρκετές εντολές ταυτόχρονα. Και επιπλέον, οι περισσότερες γλώσσες προγραμματισμού υψηλού επιπέδου στα ονόματα των εντολών που χρησιμοποιούνται όταν επικοινωνεί με ισοδύναμα χρήσης υπολογιστών που ονομάζονται στα αγγλικά, τα οποία φυσικά διευκολύνουν τον προγραμματισμό. Αλλά υπάρχει ένα μείον σε αυτά σε σχέση με τις γλώσσες όπως ο συναρμολογητής - στον συναρμολογητή, όλες οι εντολές που ελήφθησαν από το πρόγραμμα διανέμονται σαφώς στη μνήμη του υπολογιστή, καταλαμβάνουν ελεύθερους χώρους, κερδίζοντας έτσι σημαντικά την ταχύτητα. Και οι γλώσσες υψηλού επιπέδου δεν γνωρίζουν πώς, αντίστοιχα, χάνοντας την ταχύτητα εκτέλεσης του προγράμματος. Και στον σημερινό κόσμο μας, όλοι γνωρίζουν ότι: "Ο χρόνος είναι χρήμα."

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

Το θωρηκτό των ανθρώπων φαίνεται να πιστεύει ότι οι όροι "υπολογιστικές μηχανές" και "υπολογιστικός εξοπλισμός" είναι συνώνυμοι και οι σύνδεσμοι τους με φυσικό εξοπλισμό, όπως μικροεπεξεργαστή, εμφάνιση, δίσκους, εκτυπωτές και άλλα καλά προσελκύουν άτομα όταν ένα άτομο βλέπει ένα άτομο υπολογιστή. Αν και αυτές οι συσκευές είναι σημαντικές, τελικά, αποτελούν μόνο την "κορυφή του Ausberg". Στο αρχικό στάδιο, χρησιμοποιούμε τον σύγχρονο υπολογιστή, δεν ασχολούμαστε με τον ίδιο τον υπολογιστή, αλλά με ένα σύνολο κανόνων που ονομάζονται γλώσσες προγραμματισμού, οι οποίες υποδεικνύουν τις ενέργειες που πρέπει να εκτελέσει ο υπολογιστής. Η σημαντική αξία της γλώσσας προγραμματισμού υπογραμμίζεται από το γεγονός ότι η ίδια η πληροφορική μπορεί να θεωρηθεί ως διερμηνέας υλικού μιας συγκεκριμένης γλώσσας που ονομάζεται γλώσσα μηχανής. Για να εξασφαλιστεί η αποτελεσματική λειτουργία του μηχανήματος, αναπτύσσονται γλώσσες μηχανών, η χρήση της οποίας αντιπροσωπεύει γνωστή δυσκολία του ατόμου. Οι περισσότεροι χρήστες δεν αισθάνονται αυτές τις δυσκολίες λόγω της παρουσίας μιας ή περισσοτέρων γλωσσών που δημιουργήθηκαν για να βελτιώσουν τη σύνδεση ενός ατόμου με το μηχάνημα. Η ευελιξία της μηχανής πληροφορικής εκδηλώνεται στο γεγονός ότι μπορεί να εκτελέσει πρόγραμμα μεταφραστικού (γενικά, ο Onm ονομάζεται μεταγλωττιστές ή διερμηνείς) να μετατρέπουν προγράμματα από τις γλώσσες που προσανατολίζονται από το χρήστη, προγράμματα στη γλώσσα του μηχανήματος. (Με τη σειρά του, ακόμη και τα προγράμματα, τα παιχνίδια, τα κελύφη του συστήματος δεν είναι τίποτα περισσότερο από ένα αρκετά απλό πρόγραμμα μεταφραστή, το οποίο, όσον αφορά την εργασία, ή το παιχνίδι διευθύνσεων με τη βοήθεια των ομάδων του στο "Inside Computer και εξωτερικά", μεταφράζοντας τους Ομάδες σε γλώσσες μηχανών. Και όλα αυτά συμβαίνουν σε πραγματικό χρόνο.)

Γλώσσες μηχανών, Γλώσσες συναρμολόγων και

Γλώσσες υψηλού επιπέδου

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

1. Γλώσσες μηχανών

2. Γλώσσες συναρμολόγησης

3. Γλώσσες υψηλού επιπέδου.

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

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

Μία από τις γλώσσες υψηλού επιπέδου είναι η γλώσσα προγραμματισμού

Ιστορικό Γλωσσών Σ.

Η γλώσσα με προέρχεται από δύο γλώσσες, BCPL και B. Το 1967, ο Martin Richards ανέπτυξε BCPL ως γλώσσα για τη σύνταξη λογισμικού συστήματος και μεταγλωττίζει. Το 1970, ο Ken Thompson χρησιμοποιείται για να δημιουργήσει λειτουργικά συστήματα πρώιμης UNIX στον υπολογιστή DEC PDP-7. Τόσο στο BCPL, όσο και μέσω μεταβλητών δεν χωρίστηκαν σε τύπους, κάθε τιμή δεδομένων κατέλαβε μία λέξη στη μνήμη και την ευθύνη για διάκριση, για παράδειγμα, οι ακέραιοι αριθμοί και οι πραγματικοί αριθμοί έπεσαν εξ ολοκλήρου στους ώμους του προγραμματιστή.

Η γλώσσα του C αναπτύχθηκε (με βάση το C) Dennis Richie από το Bell Laboratories και εφαρμόστηκε για πρώτη φορά το 1972 στον υπολογιστή Dec PDP-11. Φήμη με τη λήψη ως γλώσσα του Unix. Σήμερα, σχεδόν όλα τα μεγάλα λειτουργικά συστήματα γράφτηκαν σε C και / ή C ++. Μετά από δύο δεκαετίες, είναι διαθέσιμο στους περισσότερους υπολογιστές. Δεν εξαρτάται από το υλικό.

Στα τέλη της δεκαετίας του '70, μετατράπηκε σε αυτό που ονομάζουμε "παραδοσιακό c". Το 1983, το ενωμένο πρότυπο αυτής της γλώσσας ιδρύθηκε από την αμερικανική επιτροπή εθνικών προτύπων στον τομέα των υπολογιστών και των πληροφοριών επεξεργασίας.

συμπέρασμα

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

Κατάλογος μεταχειρισμένων λογοτεχνίας

1. Tom Svan "Development Turbo Assemble", διαλεκτική, Κίεβο, 1996

2. Berezin B.I., Berezin S.B. "Πρωτογενής πορεία προγραμματισμού", διάλογος MEPI, Μόσχα, 1996

3. Διαλέξεις ComleVa Nina Viktorovna για το θέμα "Γλώσσες προγραμματισμού και μεθόδους εκπομπής"

4.x.m.deter, πώς να προγραμματίσετε στο C, Publishing Binin, Μόσχα, 2000

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

Προγραμματισμός στον συναρμολογητή

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

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

Καταχωρητές

Οι καταχωρητές στη γλώσσα του συναρμολογητή αναφέρονται στα κύτταρα μνήμης που βρίσκονται ακριβώς πάνω στο κρύσταλλο με το Allu (επεξεργαστή). Ένα χαρακτηριστικό αυτού του τύπου μνήμης είναι ο ρυθμός έκκλησης σε αυτό, το οποίο είναι πολύ πιο γρήγορα από το RAM EMM. Ονομάζεται επίσης εξαιρετικά γρήγορος Ram (Cop ή SRAM).

Υπάρχουν οι ακόλουθοι τύποι μητρώων:

  1. Μητρώα γενικής χρήσης (RON).
  2. Σημαίες.
  3. Δείκτης εντολής.
  4. Τμήματα μητρώων.

Υπάρχουν 8 καταχωρητές γενικής χρήσης το καθένα, κάθε μέγεθος 32 bits.

Η πρόσβαση σε καταχωρητές EAX, ECX, EDX, EBX μπορεί να διεξαχθεί σε λειτουργία 32-bit, 16-bit - τσεκούρι, BX, CX, DX, καθώς και 8-bit - ΑΗ και αϊ, ΒΗ και Bl κλπ.

Το γράμμα "E" στα ονόματα των μητρώων σημαίνει επεκταθεί (προχωρημένοι). Τα ίδια τα ονόματα συνδέονται με τα ονόματά τους στα αγγλικά:

  • Μητρώο συσσωρευτών (τσεκούρι) - για αριθμητικές λειτουργίες.
  • Counter Register (CX) - για μετατοπίσεις και κύκλους.
  • Μητρώο δεδομένων (DX) - για αριθμητικές λειτουργίες και λειτουργίες εισόδου / εξόδου.
  • Βασικό μητρώο (BX) - για δείκτη σε δεδομένα.
  • Μητρώο δείκτη στοίβας (SP) - για το δείκτη Vertex στοίβα.
  • Εγγραφή δείκτη βάσης στοίβα (BP) - για ένδειξη βάσης στοίβα.
  • Εγγραφή ευρετηρίου πηγής (SI) - για τον δείκτη αποστολέα (πηγή).
  • Καταχώριση ευρετηρίου προορισμού (DI) - για τον παραλήπτη.

Η εξειδίκευση του Ρονονισμού του συναρμολογητή εξαρτάται από την εξειδίκευση του συναρμολογητή. Μπορούν να χρησιμοποιηθούν σε οποιεσδήποτε λειτουργίες. Ωστόσο, ορισμένες εντολές είναι σε θέση να εφαρμόσουν μόνο ορισμένα μητρώα. Για παράδειγμα, ο κύκλος εντολές χρησιμοποιεί το ESX για να αποθηκεύσει την μετρητή τιμή.

Εγγραφή σημαίες. Αυτό συνεπάγεται το Byte, το οποίο μπορεί να πάρει τιμές 0 και 1. Το σύνολο όλων των σημαδιών (της παραγγελίας τους 30) δείχνει την κατάσταση του επεξεργαστή. Παραδείγματα σημαίας: Σημαία μεταφοράς (CF) - Σημαία μεταφοράς, σημαία υπερχείλισης (της) - υπερχείλιση, ένθετη σημαία (NT) - Σημαία της εργασίας και πολλούς άλλους. Οι σημαίες χωρίζονται σε 3 ομάδες: κατάσταση, έλεγχος και συστηματική.


Δείκτης ομάδας (δείκτης EIP - οδηγίες). Αυτό το μητρώο περιέχει τη διεύθυνση της εντολής που πρέπει να συμπληρωθεί ως εξής, αν δεν υπάρχουν άλλες προϋποθέσεις.

Τα μητρώα τμήματος (CS, DS, SS, ES, FS, GS). Η παρουσία τους στον συναρμολογητή υπαγορεύεται από την ειδική διαχείριση της μνήμης RAM για να αυξήσει τη χρήση της σε προγράμματα. Χάρη σε αυτά, ήταν δυνατό να διαχειριστείτε τη μνήμη μέχρι 4 GB. Στην αρχιτεκτονική Win32, η ανάγκη για τμήματα εξαφανίστηκε, αλλά τα ονόματα των μητρώων διατηρούνται και χρησιμοποιούνται διαφορετικά.

Σωρός

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


Αναγνωριστικά, ακέραιοι, σύμβολα, σχόλια, ισοδυναμία

Το αναγνωριστικό στον συναρμολογητή γλώσσας προγραμματισμού έχει την ίδια έννοια όπως σε οποιαδήποτε άλλη. Επιτρέπεται η χρήση λατινικών γραμμάτων, αριθμών και συμβόλων "_", "", ";", "@", "$". Στην περίπτωση αυτή, τα κεφαλαία και τα πεζά γράμματα είναι ισοδύναμα και το σημείο μπορεί να είναι μόνο ο πρώτος χαρακτήρας αναγνωριστικού.

Στους ακέραιους στον συναρμολογητή μπορεί να επισημανθεί στα συστήματα αναφοράς 2, 8, 10 και 16. Οποιαδήποτε άλλη καταγραφή των αριθμών θα θεωρηθεί ως ένας πίνακας συναρμολογητή ως αναγνωριστικό.

Τα συμβολικά αρχεία δεδομένων επιτρέπεται να χρησιμοποιούν τα αποσπάσματα και τα αποσπάσματα. Εάν η σειρά χαρακτήρων απαιτεί ένα από αυτά, οι κανόνες είναι οι εξής:

  • Στη σειρά που συνάπτονται στην αποστροφή, τα αποσπάσματα υποδεικνύονται μία φορά, το απόστροφο - δύο φορές: "μπορεί" "t", "είπε" να είναι ή να μην είναι "".
  • Για μια σειρά που περικλείεται στην προσφορά, ο κανόνας αντιστρέφεται: διπλότυπα εισαγωγικά, τα αποσπάσματα υποδεικνύονται όπως είναι: "Δεν μπορούσε" t "," Το αγαπημένο μου μπαρ είναι "" μαύρη γάτα ".

Για να καθορίσετε το σχόλιο στη γλώσσα του συναρμολογητή, χρησιμοποιείται το σύμβολο του ερωτηματικού - "". Είναι επιτρεπτό να χρησιμοποιείτε σχόλια τόσο στην αρχή των γραμμών όσο και μετά την εντολή. Το σχόλιο τελειώνει με μια σειρά μετάφρασης.

Η οδηγία ισοδυναμίας χρησιμοποιείται με παρόμοιο τρόπο με τον οποίο οι συνεχείς εκφράσεις υποδεικνύουν σε άλλες γλώσσες. Η ισοδυναμία υποδεικνύεται με τον ακόλουθο τρόπο:

Έτσι, στο πρόγραμμα, όλες οι καταχωρήσεις θα αντικατασταθούν από τον τόπο του οποίου επιτρέπεται να προσδιορίσει έναν ακέραιο, διεύθυνση, συμβολοσειρά ή άλλο όνομα. Η οδηγία EIL είναι παρόμοια με την εργασία της στο #DEFINE στο C ++.

Οδηγίες δεδομένων

Γλώσσες υψηλού επιπέδου (C ++, Pascal) πληκτρολογούνται. Δηλαδή, χρησιμοποιούν δεδομένα που έχουν συγκεκριμένο τύπο, υπάρχουν λειτουργίες της επεξεργασίας τους, κλπ. Στη γλώσσα προγραμματισμού, δεν υπάρχει τέτοιος συναρμολογητής. Υπάρχουν μόνο 5 οδηγίες για τον προσδιορισμό των δεδομένων:

  1. DB - Byte: Επιλέξτε 1 byte κάτω από τη μεταβλητή.
  2. DW - Word: Επιλέξτε 2 byte.
  3. DD - Διπλή λέξη: Επιλέξτε 4 byte.
  4. DQ - Quad Word: Επιλέξτε 8 byte.
  5. DT - δέκα bytes: Επιλέξτε 10 bytes κάτω από τη μεταβλητή.

Το γράμμα D σημαίνει ορίζοντας.

Κάθε οδηγία μπορεί να χρησιμοποιηθεί για να δηλώσει τυχόν δεδομένα και συστοιχίες. Ωστόσο, για τις συμβολοσειρές συνιστάται η χρήση dB.

Σύνταξη:

Ως τελεστής, επιτρέπεται να χρησιμοποιείτε αριθμούς, χαρακτήρες και μια ερώτηση σημείου - ";", δηλώνει τη μεταβλητή χωρίς αρχικοποίηση. Εξετάστε παραδείγματα:

Real1 DD 12.34 Char DB "C" AR2 DB "123456", 0; Μια σειρά από 7 bytes num1 dB 11001001B; Δυαδικός αριθμός Num2 DW 7777O; Οπτικό αριθμό NUM3 DD -890D; Δεκαδικός αριθμός num4 dd 0beah; Εξαιρετικό αριθμό VAR1 DD; ; Μεταβλητή χωρίς την αρχική τιμή του AR3 DD 50 DUP (0). μια σειρά από 50 αρχικοποιημένης DUP DQ DQ DQ DQ 5 (0, 1, 1,25). Μια σειρά από 15 EL-TOV που αρχικοποιείται από επαναλήψεις 0, 1 και 1,25

Ομάδες (οδηγίες)

Η σύνταξη των εντολών του συναρμολογητή ή των οδηγιών συναρμολόγησης έχει ως εξής.

:

Στείλτε την καλή δουλειά σας στη βάση γνώσεων είναι απλή. Χρησιμοποιήστε την παρακάτω φόρμα

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

Γλώσσα προγραμματισμού

Εισαγωγή

Γλώσσα προγραμματισμού συναρμολόγων

Ιστορικό γλωσσών

Προγραμματισμός στο Assmbler

Τα πλεονεκτήματα και τα μειονεκτήματα της γλώσσας

Turbo Assembler (Tasm)

Σύστημα διακοπής προγράμματος

Διακοπή μηχανισμού

Εργασία του μηχανισμού διακοπής

συμπέρασμα

Βιβλιογραφία

εφαρμογή

Εισαγωγή

Η πρόοδος της τεχνολογίας των υπολογιστών καθόρισε τη διαδικασία εμφάνισης νέων διαφόρων εικονικών συστημάτων για την καταγραφή αλγορίθμων - γλωσσών προγραμματισμού. Υπάρχουν πολλές γλώσσες προγραμματισμού, αλλά θα επικεντρωθούμε στον συναρμολόγητο.

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

1. Σε άλλες γλώσσες προγραμματισμού, δεν είναι πάντοτε δυνατό να γράψετε μια εφαρμογή που να ικανοποιεί πλήρως τις απαιτήσεις. Και σε ορισμένες περιπτώσεις είναι εντελώς αδύνατο. Στον συσχέτιση γλωσσών προγραμματισμού, μπορείτε να γράψετε οποιαδήποτε εφαρμογή.

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

3. Το μέγεθος των εφαρμογών που δημιουργούνται σε γλώσσες υψηλού επιπέδου έχει πολύ μεγαλύτερο μέγεθος από τις εφαρμογές που δημιουργούνται στον συναρμολογητή.

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

5. Η γνώση του γλωσσικού συναρμολογητή δίνει μεγαλύτερο πλεονέκτημα έναντι εκείνων που πρόγραμμα μόνο σε γλώσσες υψηλού επιπέδου. Ο έμπειρος συναρμολογητής γνωρίζει τη δομή του υπολογιστή και τη δομή των συσκευών υλικού.

Σκοπός της εργασίας:

Περιγράψτε τη γλώσσα προγραμματισμού του συναρμολογητή.

προσδιορίστε τα οφέλη και τις ελλείψεις της γλώσσας ·

Περιγράψτε το Turbo Sealbler.

Εξοικειωθείτε με τον μηχανισμό διακοπής.

Γλώσσα προγραμματισμού συναρμολόγων

Ιστορικό συναρμολόγων

Οι προγραμματιστές έχουν ήδη εξοικειωθεί με την έννοια ενός υποπρογράμματος: χοάνη Grace και οι συνάδελφοί της χρησιμοποίησαν υποπρογράμματα στο Χάρβαρντ "Mark-1" κατά τη διάρκεια του Β 'Παγκοσμίου Πολέμου, αλλά κάθε υποπρογράμματος λύθηκε το συγκεκριμένο έργο του.

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

Οι πρώτοι προγραμματιστές σχεδόν πάντα είχαν σημειωματάρια με την καταγραφή των πιο καταναλωθέντων υπορουτίων, έτσι ώστε αν είναι απαραίτητο, δεν ήταν εκ νέου. Το πρόβλημα ήταν ότι οι διευθύνσεις της διάταξης των εντολών και των μεταβλητών υποπρογραμμάτων στη μνήμη ποικίλλουν ανάλογα με την τοποθέτησή του στο τελευταίο. Ρύθμιση των υπορουτίνων σε ένα συγκεκριμένο μέρος στη μνήμη, προφανώς απαραίτητο αυτοματοποίηση και για πρώτη φορά έγινε στην "εκπαίδευση". Οι προγραμματιστές του Cambridge άρχισαν να γράφουν ένα σύνολο ενοποιημένων υπονουριών, οι οποίες σχημάτισαν τη βιβλιοθήκη. Μετά από αυτό, ήταν αρκετό να εισέλθει μόνο μια σύντομη εντολή - και ο υπολογιστής έκανε όλες τις εργασίες για τη δημιουργία και την τοποθέτηση του υποπρογράμματος μέσα στο πρόγραμμα.

Ο Maurice Wilks κάλεσε το μνημονικό σχέδιο για την "εκπαίδευση" και τη βιβλιοθήκη υπονόμων στο σύστημα συλλογής (στο σύστημα αγγλικών συναρμολόγησης - εξ ου και η λέξη "συναρμολόγηση"), δεδομένου ότι συλλέχθηκε την ακολουθία των υπορουτίων.

Ο συναρμοσαστής (από την αγγλική γλώσσα. Ο συναρμοσαστής είναι ένας συλλέκτης - ένα πρόγραμμα υπολογιστή, ο μεταγλωττιστής κειμένου πηγής του προγράμματος που γράφτηκε στη γλώσσα του συστήματος συναρμολόγησης στη γλώσσα του μηχανήματος.

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

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

Προγραμματισμός στο Assmbler

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

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

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

Κάθε μοντέλο επεξεργαστή, κατ 'αρχήν, έχει το δικό του σύνολο εντολών και την κατάλληλη γλώσσα (ή τη διάλεκτο) του συναρμολογητή.

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

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

Είναι σαφές ότι η αποτελεσματικότητα και η ακρίβεια της γλώσσας του συναρμολογητή δίνουν ορισμένα πλεονεκτήματα. Αλλά η λεπτομέρεια της δημιουργεί κάποια προβλήματα. Πότε πρέπει να επιλέξω μια γλώσσα συναρμολογητή για τον προγραμματισμό;

Φυσικά, πρέπει να χρησιμοποιήσετε τα προγράμματα συναρμολόγησης όταν δεν υπάρχει άλλος τρόπος για να γράψετε ένα πρόγραμμα. Για παράδειγμα, οι προγραμματιστές IBM έγραψαν χρησιμοποιώντας διαδικασίες συναρμολόγησης όλες τις συσκευές I / O για τον IBM PC. Για τη διαχείριση των συστημάτων I / O και των συστημάτων διακοπής, η ακρίβεια γλώσσας συναρμολόγησης απαιτείται, η οποία δεν θα μπορούσε να παράσχει άλλη γλώσσα προγραμματισμού. Ομοίως, στη γλώσσα του συναρμολογητή στην IBM, οι διαγνωστικές διαδικασίες γράφτηκαν, οι οποίες πρέπει να ελέγξουν κάθε μέρος του εξοπλισμού.

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

Ποιο πρόγραμμα δεν είναι κατάλληλο για τη γλώσσα του συναρμολογητή; Φυσικά, μπορείτε να γράψετε οποιοδήποτε πρόγραμμα σε αυτό, ωστόσο, με ένα μεγάλο πρόγραμμα είναι καλύτερο να εργάζεστε σε μια γλώσσα υψηλού επιπέδου, όπως C ή C #. Αυτές οι γλώσσες σας επιτρέπουν να εστιάσετε στο πρόβλημά σας. Δεν χρειάζεται να ασχοληθείτε απευθείας με τις λεπτές αποχρώσεις του υλικού και του επεξεργαστή. Οι γλώσσες υψηλού επιπέδου σάς επιτρέπουν να υποχωρήσετε και να δείτε το δάσος πίσω από τα δέντρα.

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

Τα πιο δημοφιλή σήμερα είναι τα πακέτα Turbo Assembler (Tasm) του Borland, Macro Formbler για το Windows32 (MASP32), που δημιουργήθηκε από το Hutch (με βάση την παλιά εταιρεία Mass Microsoft), καθώς και επίπεδη συναρμολόγηση (FASM) και NETWIDE (NASS) , Αναπτύχθηκε ομάδα ανάπτυξης νέκτων ομάδας. Όλοι αυτοί οι συναρμολογητές παρέχουν πολύ ευρείες ευκαιρίες για τον προγραμματιστή. Μπορείτε να γράψετε προγράμματα τόσο κάτω από το DOS όσο και κάτω από τα Windows.

Υπάρχουν επίσης πολλοί άλλοι τύποι συναρμολογητή, ο αριθμός των οποίων μεγαλώνει. Για παράδειγμα: ο συναρμοσαστής Codex, ο συναρμολογητής GEMA, ο Light Macro Assembler (Lasm), τεμπέλης συναρμολόγων (Lzasm), επιτραπέζινο συναρμολογητή (TDASM), NEWBASIC ++ SENDERBLER (NBASM), TMA Macro Assembler, κλπ.

Τα πλεονεκτήματα και τα μειονεκτήματα της γλώσσας

Αξιοπρέπεια

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

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

Κατά τον προγραμματισμό του συναρμολογητή, είναι δυνατή η άμεση πρόσβαση στον εξοπλισμό, συμπεριλαμβανομένων των θυρών I / O, των μητρώων επεξεργαστών κ.λπ.

Η γλώσσα του συναρμολογητή χρησιμοποιείται για τη δημιουργία οδηγών υλικού και πυρήνων λειτουργικού συστήματος.

Η γλώσσα συναρμολόγησης χρησιμοποιείται για τη δημιουργία "υλικολογισμικού" BIOS.

Με τη βοήθεια της γλώσσας του συναρμολογητή, οι μεταγλωττιστές και οι διερμηνείς υψηλού επιπέδου δημιουργούνται και εφαρμόζεται η συμβατότητα των πλατφορμών.

Υπάρχει η ευκαιρία να μελετήσετε άλλα προγράμματα με έναν κώδικα πηγής που λείπουν χρησιμοποιώντας έναν αποσυναρμολογητή.

μειονεκτήματα

Το κύριο πλεονέκτημα του συναρμολογητή είναι σχεδόν πλήρως ισοπεδωμένο με καλή βελτιστοποίηση σε σύγχρονους μεταγλωττιστές γλωσσών υψηλού επιπέδου.

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

Κατά κανόνα, λιγότερες βιβλιοθήκες διαθέσιμες σε σύγκριση με τις σύγχρονες γλώσσες βιομηχανικού προγραμματισμού.

Δεν υπάρχει φορητότητα των προγραμμάτων σε υπολογιστές με άλλη αρχιτεκτονική και σύστημα εντολών (εκτός από το δυαδικό συμβατό).

Turbo συναρμολόγηση. (Χαστούκι.)

Ο Turbo Engellbler του Borland είναι ένας συναρμολογητής πολλαπλών προφίλ με ανάλυση προηγμένων συνδέσμων, ταχύτητα συναρμολόγησης έως 48.000 γραμμών ανά λεπτό (σε υπολογιστή IBM PS / 2, μοντέλο 60) συμβατό με το MicroAssMbler Macroassmbler της Microsoft και έναν πρόσθετο τρόπο Χρησιμοποιήστε τη λειτουργία Extended Syntax. Ανεξάρτητα από την εμπειρία σας στον προγραμματισμό, θα εκτιμήσετε αναμφισβήτητα αυτά τα χαρακτηριστικά, καθώς και πολλά άλλα κεφάλαια που διευκολύνουν σημαντικά τον προγραμματισμό στον συναρμολογητή.

Μεταξύ αυτών των κεφαλαίων, μπορείτε να αναφέρετε εν συντομία τα εξής:

Πλήρης υποστήριξη για επεξεργαστή 80386.

Βελτιωμένοι συντακτικοί τύποι τύπων.

ΑΠΛΟΠΟΙΗΜΕΝΗ ΟΡΙΣΜΟΣ ΟΡΙΣΜΟΥ ΤΜΗΜΑΤΟΣ.

Βελτιωμένη διαχείριση καταχωρίσεων.

Επέκταση των οδηγιών ποπ και ώθησης.

Σύνθετο χειριστή κλήσεων με επιχειρήματα και προαιρετική παράμετρο γλώσσας.

τοπικές ετικέτες ·

Τοπικά αναγνωριστικά στη στοίβα και να καλέσουν επιχειρήματα στις διαδικασίες.

δομές και ενώσεις ·

Εμφανισμένες οδηγίες.

Λειτουργία quirk, μεγέθυνσης μυών.

Πλήρες σφάλμα στο επίπεδο πηγής χρησιμοποιώντας ένα debugger turbo.

Ενσωματωμένο βοηθητικό πρόγραμμα παραγωγής διασταυρούμενης αναφοράς (TCREF).

Αρχεία διαμόρφωσης και αρχεία εντολών.

Το Turbo Engellbler είναι ένας ισχυρός συναρμολόγητος που εργάζεται με μια γραμμή εντολών που αντιλαμβάνεται τα αρχεία προέλευσης (αρχεία με επέκταση *. ASM *) και δημιουργεί μονάδες αντικειμένων από αυτά (αρχεία με επέκταση *. Obj *). Μετά από αυτό, μπορείτε να χρησιμοποιήσετε το πρόγραμμα διάταξης Borland Tlink. EXE, που χαρακτηρίζεται από υψηλή ταχύτητα διάταξης, για τη διάταξη των ληφθέντων μονάδων αντικειμένων και δημιουργούν εκτελέσιμα αρχεία (αρχεία με την επέκταση *. EXE *).

Το Turbo Engellbler έχει σχεδιαστεί για να συνεργάζεται με τους επεξεργαστές 80x86 και 80x87 (περισσότερες λεπτομέρειες περιλαμβάνουν τις οδηγίες επεξεργαστή 80x86 / 80x87, που περιγράφονται στα σχετικά εγχειρίδια της Intel).

Turbo Assembler, εκτός από την πλήρη υποστήριξη του μεταφραστή της Microsoft, έχει επιπλέον χαρακτηριστικά σε συνδυασμό σε λειτουργία που ονομάζονται ιδανικοί προγραμματιστές. Η χρήση αυτής της λειτουργίας επιτρέπει στον προγραμματιστή αρχάριος να εφαρμόσει ένα πιο οπτικό και απλό στυλ ανάπτυξης προγράμματος. Οι πιο έμπειροι προγραμματιστές που γράφουν στον συναρμολογητή μπορούν να χρησιμοποιήσουν ιδανική λειτουργία όπως ενσωματωμένες δομές, ενώσεις.

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

Τη δυνατότητα χρήσης πανομοιότυπων ονομάτων για τον ορισμό των μελών διαφόρων δομών ·

Εφαρμογή υψηλών και χαμηλών φορέων.

Προκαταρκτικός υπολογισμός των εκφράσεων EIL,

Τη σωστή διαχείριση των τμημάτων των δεδομένων σε συνδυασμό σε ομάδες ·

Βελτίωση της χρήσης των οδηγιών ·

Εύλογη χρήση αγκύλων σε εκφράσεις.

Το Turbo Sendbler μεταδίδει επιχειρήματα στις διαδικασίες σε γλώσσες υψηλού επιπέδου στο πλαίσιο στοίβας, τοποθετώντας επιχειρήματα πριν καλέσετε τη διαδικασία στη στοίβα. Οι διαδικασίες που γράφονται σε γλώσσες υψηλού επιπέδου διαβάζουν επιχειρήματα από τη στοίβα ανάλογα με τις ανάγκες. Όταν η διαδικασία απελευθερωθεί, μπορεί να αφαιρέσει τα επιχειρήματα από τη στοίβα ή να αφήσει αυτή τη λειτουργία για τη διαδικασία πρόκλησης.

Με έναν παραδοσιακό τρόπο, με ποια προγράμματα που γράφονται σε C ++ και συναρμολόγηση συνδυάζονται, είναι μια συλλογή διαχωρισμού με μια επόμενη διάταξη σε ένα εκτελέσιμο αρχείο. Σε αυτή την περίπτωση, μπορείτε να χρησιμοποιήσετε τον μεταγλωττιστή Borland C ++, το οποίο καλεί τον Turbo Assembler να μεταδίδει το πρόγραμμα του συναρμολογητή.

Η ανάπτυξη του προγράμματος Turbo Assembler περιλαμβάνει τέσσερα στάδια:

1ο στάδιο. Προετοιμασία του κειμένου πηγής του προγράμματος και το σχεδιάζετε με τη μορφή ενός αρχείου κειμένου (ένα ή περισσότερα) χρησιμοποιώντας κάποιο πρόγραμμα επεξεργασίας σε μορφή DOS με μια επέκταση *. Asm *.

2ο στάδιο. Συναρμολόγηση του προγράμματος χρησιμοποιώντας τον μεταφραστή TRASM, το αποτέλεσμα του οποίου είναι το αρχείο αντικειμένου με την επέκταση *. Obj *. Όταν το πρόγραμμα αποτελείται από διάφορα αρχεία (μονάδες), το συγκρότημα τους εκτελείται ανεξάρτητα το ένα από το άλλο. Εάν τα σφάλματα θα ανιχνευθούν στη διαδικασία μετάδοσης, το αρχείο αντικειμένου δεν δημιουργείται και σχηματίζεται ένα μήνυμα σφάλματος. Τα σφάλματα εξαλείφονται, μετά την οποία επαναλαμβάνεται η εκπομπή. Το αρχείο αντικειμένου (Binary-κωδικοποιημένη αναπαράσταση του προγράμματος) δεν μπορεί να εκτελεστεί στην εκτέλεση, καθώς δεν περιέχει πληροφορίες σχετικά με τη φόρτωση των τμημάτων του προγράμματος στη μνήμη του υπολογιστή.

3ο στάδιο. Η διάταξη του προγράμματος κατασκευάζεται από τον συνδετήρα (επεξεργαστή των συνδέσμων) Turbo Linker και είναι να συνδυάσει τις ενότητες αντικειμένων σε ένα εκτελέσιμο αρχείο με την εκχώρηση της αρχικής διεύθυνσης του προγράμματος. Το εκτελέσιμο αρχείο έχει μια επέκταση *. Exe *. Τα 2η και 3α στάδια ορίζουν τη διαδικασία προετοιμασίας του αρχείου εκτελεστικού προγράμματος που ονομάζεται μετάφραση.

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

Σύστημα διακοπής προγράμματος

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

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

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

Διακοπή μηχανισμού

Διακοπή (Eng. Διακοπή) - ένα σήμα που λέει στον επεξεργαστή σχετικά με την εμφάνιση οποιουδήποτε συμβάντος. Σε αυτή την περίπτωση, η εκτέλεση της τρέχουσας ακολουθίας εντολών εναιωρείται και ο έλεγχος μεταδίδεται στον χειριστή διακοπής που ανταποκρίνεται σε ένα συμβάν και το χρησιμεύει, μετά από το οποίο επιστρέφει τον έλεγχο στον διακεκομμένο κώδικα.

Η διακοπή του λογισμικού είναι μια σύγχρονη διακοπή που ένα πρόγραμμα μπορεί να εφαρμόσει χρησιμοποιώντας μια ειδική διδασκαλία.

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

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

Τα προγράμματα μπορεί να προκαλέσουν διακοπές με έναν συγκεκριμένο αριθμό. Για να το κάνετε αυτό, χρησιμοποιούν την εντολή int. Αυτές είναι οι αποκαλούμενες διακοπές λογισμικού. Οι διακοπές λογισμικού δεν είναι ασύγχρονες, όπως προκαλούνται από το πρόγραμμα.

Στους επεξεργαστές αρχιτεκτονικής X86, υπάρχει ένα εγχειρίδιο οδηγιών Int, το επιχείρημα του οποίου είναι ο αριθμός διακοπής (από 0 έως 255). Οι υπολογιστές συμβατών VIBM PC που επεξεργάζονται ορισμένες διακοπή πραγματοποιούνται από τις υπορροτίες BIOS που αποθηκεύονται στο ROM και αυτό χρησιμεύει ως διεπαφή για πρόσβαση στην υπηρεσία BIOS. Επίσης, η διακόπτης συντήρησης μπορεί να αναλάβει το BIOS των καρτών επέκτασης (για παράδειγμα, κάρτες δικτύου ή γραφικών), το λειτουργικό σύστημα και ακόμη και τα κανονικά (εφαρμοζόμενα) προγράμματα που βρίσκονται συνεχώς στη μνήμη κατά τη λειτουργία άλλων προγραμμάτων (T.N. Progress) . Σε αντίθεση με την πραγματική λειτουργία, στον προστατευόμενο τρόπο των επεξεργαστών X86, τα συμβατικά προγράμματα δεν μπορούν να διατηρήσουν τις διακοπές, αυτή η λειτουργία είναι διαθέσιμη μόνο στον κωδικό συστήματος (λειτουργικό σύστημα).

Οι χρήσεις MS-DOS για αλληλεπίδραση με τις ενότητες και τις εφαρμογές διακοπής τους με αριθμούς από 20 ώρες έως 3FH (οι αριθμοί δίνονται σε σύστημα δεκαεξαδικού αριθμού, όπως είναι συνηθισμένο κατά τον προγραμματισμό της γλώσσας του συναρμολογητή x86). Για παράδειγμα, η πρόσβαση στο κύριο σύνολο λειτουργιών MS-DOS πραγματοποιείται εκτελώντας την εντολή Int 21h (στην περίπτωση αυτή, ο αριθμός λειτουργίας και τα επιχειρήματά της μεταδίδονται σε μητρώα). Αυτή η κατανομή των αριθμών διακοπής δεν είναι σταθερό υλικό και άλλα προγράμματα μπορούν να θέσουν τους διακεκριμένους τους χειριστές αντί ή πάνω από ήδη υπάρχοντες φορέματα εγκατεστημένους από MS-DOS ή άλλα προγράμματα που, κατά κανόνα, χρησιμοποιούνται για να αλλάξουν τη λειτουργικότητα ή να επεκτείνετε τη λίστα του συστήματος Λειτουργίες. Επίσης, αυτή η ευκαιρία είναι οι ιοί.

Εργασία του μηχανισμού διακοπής

Κάθε καθορισμένη διακοπή αναγνωρίζεται από τον αριθμό του. Για παράδειγμα, ένας χρονοδιακόπτης και πληκτρολόγιο και εκτυπωτής έχουν κάθε δικό αριθμό διακοπής. Όσον αφορά το βασικό σύστημα I / O, τα προγράμματα εξυπηρέτησης διαιρούνται σε ομάδες και ένας αριθμός διακοπής καθορίζεται για όλα τα προγράμματα ομάδων.

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

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

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

Για παράδειγμα, εξετάστε το πρόγραμμα που είναι εκτελέσιμο *. Exe αρχείο, μετά την εκκίνηση που εμφανίζεται περιοδικά η κρατική σημαία της Ρωσίας στην οθόνη. Η περίοδος των εμφανίσεων είναι περίπου 1 φορά σε 2 δευτερόλεπτα (βλ. Παράρτημα). Το πρόγραμμα αυτό έχει τον ακόλουθο αλγόριθμο εργασίας (Εικ. 1):

Δημοσιεύτηκε στη διεύθυνση http://www.allbest.ru/

Σύκο. 1. Ο αλγόριθμος εργασίας του προγράμματος.

Η πρόσβαση στο λογισμικό στη μονάδα Video Bios εφαρμόζεται χρησιμοποιώντας μια διακοπή Int 10H. Όταν εργάζεστε σε λειτουργία κειμένου, χρησιμοποιούνται συνήθως οι ακόλουθες λειτουργίες του προγράμματος οδήγησης:

02h - Ρυθμίστε τη θέση του δρομέα.

03h - Πάρτε τη θέση του δρομέα.

05H - Ρυθμίστε την αποθήκευση βίντεο.

06h - Αρχικοποιήστε ή μετακινώντας το παράθυρο.

07H - Αρχικοποιήστε ή μετακινηθείτε προς τα κάτω στο παράθυρο.

09h - αποσύρετε τον χαρακτήρα και το χαρακτηριστικό στη θέση του δρομέα.

0Ah - Εμφανίστε ένα σύμβολο στη θέση του δρομέα.

0EH - Εμφανίστε ένα σύμβολο στη λειτουργία Telelet.

10h, 3Η υποπτικότητα - ενεργοποιήστε το κομμάτι τρεμούλας / φωτεινότητας.

13 ώρες - Εμφανίστε μια συμβολοσειρά στη λειτουργία TeleleType.

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

Λειτουργίες 09h, 0Ah, 0eh και 13h χρησιμοποιούνται για την εμφάνιση μεμονωμένων χαρακτήρων και χορδών χαρακτήρων (στον κύκλο). Προβλέπεται η σύναψη του ίδιου συμβόλου ενός δεδομένου αριθμού χρόνων που μπορεί να χρησιμοποιηθεί κατά τη δημιουργία ενός πλαισίου και άλλων στολιδίων.

Η λειτουργία του 0eh ανταποκρίνεται στους κωδικούς ελέγχου εκτελώντας κατάλληλες ενέργειες. Ο δρομέας μετακινείται μετά την έξοδο κάθε συμβόλου.

Η λειτουργία 13h έχει σχεδιαστεί για να εμφανίζει σειρές με χαρακτηριστικά όπως κάθε χαρακτήρα ξεχωριστά και ολόκληρη τη σειρά. Η λειτουργία μπορεί να εκτελεστεί σε τέσσερις εκδόσεις ανάλογα με τον κωδικό λειτουργίας που ορίζεται στο μητρώο Al.

Όταν εμφανίζεστε το πρόγραμμα οδήγησης BIOS στην οθόνη, πρέπει να έχετε κατά νου ότι η είσοδος από το πληκτρολόγιο Ctrl / C δεν οδηγεί στην ολοκλήρωση του προγράμματος. Είναι απαραίτητο να φοβόμαστε τους άπειρους κύκλους παραγωγής στην οθόνη - η έξοδος αυτών είναι δυνατή μόνο με την επανεκκίνηση του υπολογιστή.

Σήματα εξωτερικών διακοπών υλικού (από το χρονοδιακόπτη, το πληκτρολόγιο, τους δίσκους κ.λπ.) Εισάγετε τον επεξεργαστή που δεν είναι άμεσα, αλλά μέσω του ελεγκτή διακοπής, το οποίο χρησιμοποιείται από το τσιπ Intel 8259A. Η επεξεργασία διακοπής υλικού περιλαμβάνει αναγκαστικά τις διαδικασίες για τον έλεγχο του ελεγκτή διακοπής. Η οργάνωση του συστήματος διακοπής υλικού είναι ότι τα συμπεράσματα των συσκευών συνδέονται με τα οκτώ συμπεράσματα εισόδου του ελεγκτή στο οποίο προκύπτουν τα σήματα διακοπής. Η έξοδος ελεγκτή Int συνδέεται με την είσοδο μικροεπεξεργαστών του ίδιου ονόματος. Ταυτόχρονα, εκτός από το σήμα INT, ξεκινώντας τη διαδικασία διακοπής στον μικροεπεξεργαστή, ο ελεγκτής μεταδίδει τον αριθμό φορέα στον μικροεπεξεργαστή στις γραμμές δεδομένων μέσω των οποίων θα πρέπει να προκληθεί το πρόγραμμα επεξεργασίας της ληφθείσας διακοπής. Ο μεταδιδόμενος αριθμός φορέα σχηματίζεται στον ελεγκτή προσθέτοντας τον αριθμό βάσης που καταγράφεται σε ένα από τα μητρώα του, με τον αριθμό εισόδου στο οποίο παραλήφθηκε η αίτηση. Ο βασικός αριθμός φορέα εισάγεται αυτόματα στον ελεγκτή κατά την αρχική μπότα του υπολογιστή. Ο ελεγκτής προγραμματίζεται μέσω θυρών 20h και 21h. Δεδομένου ότι ο βασικός φορέας είναι πάντα ίσος με 8, τότε οι αριθμοί των φορέων που συνδέονται με τη διακοπή του υλικού είναι στο 8h, ..., φάσμα FH.

Στην περίπτωσή μας, είναι επίσης απαραίτητο να εξεταστούν οι διακοπές που προκαλούνται από σήματα χρονοδιακόπτη συστήματος.

Οι διακοπές είναι έτοιμες διαδικασίες που ο υπολογιστής καλεί να εκτελεί μια συγκεκριμένη εργασία. Υπάρχουν διακοπές υλικού και λογισμικού. Οι διακοπές υλικού ξεκινούν από τον εξοπλισμό ή με μια πλακέτα συστήματος ή από μια κάρτα επέκτασης. Μπορούν να προκληθούν από ένα σήμα Chip Timer, ένα σήμα από τον εκτυπωτή, πιέζοντας το πλήκτρο στο πληκτρολόγιο και σε πολλούς άλλους λόγους. Οι διακοπές υλικού δεν συντονίζονται με το έργο του λογισμικού. Όταν καλείται διακοπή, ο επεξεργαστής αφήνει το έργο του, εκτελεί μια διακοπή και στη συνέχεια επιστρέφει στην προηγούμενη θέση. Για να μπορέσετε να επιστρέψετε ακριβώς δεξιά, τόπος του προγράμματος, διεύθυνση αυτού του τόπου (CS: IP) θυμηθείτε στη στοίβα, μαζί με το μητρώο σημαίας. Στη συνέχεια, στο CS: IP φορτώνεται τη διεύθυνση του προγράμματος επεξεργασίας διακοπής και αποστέλλεται στον έλεγχο. Τα προγράμματα χειρισμού διακοπών καλούνται μερικές φορές οι οδηγοί διακοπής. Πάντα συμπληρώνονται από τις οδηγίες IRET (επιστροφή από τη διακοπή), η οποία ολοκληρώνει τη διαδικασία που ξεκίνησε με διακοπή, επιστρέφοντας τις παλιές τιμές CS: IP και σημαία, δίνοντας έτσι το πρόγραμμα τη δυνατότητα να συνεχίσει την εκτέλεση από την ίδια κατάσταση. Όλοι οι υπολογιστές IBM χρησιμοποιούν το τσιπ χρονισμού 8253 (ή 8254) για να ταιριάζουν με τους παλμούς από το τσιπ ρολογιού του συστήματος. Ο αριθμός των κύκλων του ρολογιού συστήματος μετατρέπεται σε έναν παλμό και η αλληλουχία αυτών των παλμών υπολογίζεται για να προσδιορίσει το χρόνο, ή μπορούν να σταλούν στο μεγάφωνο του υπολογιστή για να δημιουργήσουν έναν ορισμένο ήχο συχνότητας. Το μικροκυτροί 8253 διαθέτει τρία πανομοιότυπα ανεξάρτητα κανάλια, καθένα από τα οποία μπορεί να προγραμματιστεί. Το μικροκυτροί 8253 λειτουργεί ανεξάρτητα από τον επεξεργαστή. Ο επεξεργαστής προγραμματίζει το τσιπ και στη συνέχεια αναφέρεται σε άλλες περιπτώσεις. Έτσι, το 8253 λειτουργεί ως ρολόι σε πραγματικό χρόνο - θεωρεί τις παρορμήσεις του, ανεξάρτητα από το τι συμβαίνει στον υπολογιστή. Ωστόσο, το μέγιστο προγραμματιζόμενο διάστημα είναι περίπου 1/12 δευτερόλεπτα. Για να μετρήσετε τα χρονικά διαστήματα στο ρολόι και τα λεπτά, χρειάζονται κάποια άλλα μέσα. Για το λόγο αυτό συσσωρεύονται οι παρορμήσεις από το μηδενικό κανάλι του τσιπ χρονοδιακόπτη σε μια μεταβλητή στην περιοχή δεδομένων BIOS. Αυτή η συσσώρευση συνήθως ονομάζεται χρόνος μέτρησης χρόνου. 18. 2 φορές Η έξοδος δεύτερης καναλιού 0 επεξεργάζεται με διακοπή υλικού (χρονοδιακόπτης διακοπής), ο οποίος σταματά τον επεξεργαστή για λίγο και αυξάνει τον μετρητή χρόνου.

Ο αριθμός 0 αντιστοιχεί στα μεσάνυχτα 12: 00. Όταν ο μετρητής φτάσει στην τιμή της ισοδύναμης 24 ωρών, επαναφέρεται στο μηδέν. Μια άλλη φορά κατά τη διάρκεια της ημέρας καθορίζεται εύκολα από τη διαίρεση του δείκτη μετρητή κατά 18. 2 για κάθε δευτερόλεπτο. Ο μετρητής χρόνου χρησιμοποιείται στις περισσότερες φορές που σχετίζονται με το χρόνο.

συμπέρασμα

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

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

Βιβλιογραφία

Kasvands Ε. Ζ. Εισαγωγή στον προγραμματισμό στη γλώσσα του συναρμολογητή. Μέρος 1 - Μ.: Uniti - Dana, 2006.

Yurov V. Formbler. Ειδικός κατάλογος. - Αγία Πετρούπολη. : Πέτρος, 2007.

Τι είναι ένας συναρμολογητής. [Ηλεκτρονικός πόρος]. - Λειτουργία πρόσβασης: http://www.assembler.webservis.ru.

Vaulin A. S. Προγραμματισμός Γλώσσες. kn. 5 - Μ.: Σχολικό Τύπου, 2008.

Malyutin Ε. Α. Γλώσσες προγραμματισμού. - M.: Διαφωτισμός, 2008.

Abel P. Γλώσσα συναρμολόγων για την IBM PC και τον προγραμματισμό / ανά. από τα Αγγλικά Yu. V. Salikova - Μ.; Ανώτερο Σχολή 2007 - 447 σελ. : Il.

Προγραμματίζουμε στον συναρμολογητή. [Ηλεκτρονικός πόρος]. - Λειτουργία πρόσβασης: http://www.kalashnikoff.ru.

Zubkov S. V. Assembler για DOS, Windows και Unix. - M.: INFRA-M, 2009.

Bogumirsky B. Αποτελεσματική εργασία στο IBM PC στα Windows 95 SPB, Peter, 2007.

Yurov V., Khoroshko V. Pressembler - Εκπαιδευτικό μάθημα. - Αγία Πετρούπολη. : Πέτρος, 2007.

εφαρμογή

Κωδικός προγράμματος

; MOV AX, δεδομένα. αρχικοποίηση

mov ds, τσεκούρι; Τομέας Εγγραφή DS

; Διαβάστε και αποθηκεύστε τα αρχικά περιεχόμενα του φορέα 8

mov Word PTR OLD_08H, BX

mOV WORD PTR OLD_08H + 2, ES

; Θα εγκαταστήσουμε τον χειριστή διακοπής new_08h

mOV DX, Offset New_08h

Πιέστε το DS; Αποθηκεύστε για μια ώρα DS

push cs; Θα στείλουμε τα περιεχόμενα του CS.

int 21h; Καλέστε DOS (25 ώρες)

pop ds; RESTAT DS

; Δράσεις αδυνατίσματος που εκτελούνται εντός 3 δευτερολέπτων, απλά ένα πρόγραμμα εστίασης

; Ο δεύτερος κλάδος του προγράμματος ενεργοποιήθηκε μετά από 3 δευτερόλεπτα

; Λευκή λωρίδα

; Μπλε λωρίδα

; Κόκκινη λωρίδα

mOV CS: Ώρα, 20

; Εφαρμοσμένος χειριστής διακοπής από το χρονόμετρο,

; Ενεργοποιήθηκε 18, 2 φορές ανά δευτερόλεπτο

push τσεκούρι? Αποθηκεύστε δύο χρησιμοποιούμενους

push bp; Σε έναν χειριστή μητρώου

dEC CS: χρόνος; Διακοσμήστε χρονικό διάστημα

jnz outint; Μέχρι το 0, βγείτε από διακοπή

; Τα περιεχόμενα του χρονικού κελιού μειώθηκαν στο 0, εκτελέστε τη μεταγωγή του προγράμματος

mOV BP, SP; Bp \u003d τρέχουσα κορυφή στοίβα

mOV AX, Offset Fin; Μετατόπιση του μεταβατικού σημείου

mov, τσεκούρι; / Στείλτε το στη στοίβα για να τοποθετήσετε IP

mOV AX, SEG FIN; / Τμήμα μεταβατικού σημείου

mov, τσεκούρι; / Στείλτε το στη στοίβα στη θέση CS

outint: Mov Al, 20h; / Ομάδα EOI στον ελεγκτή

Έξω 20 ώρες, al; / Διακοπή

MOV AX, 0600H; AH \u003d 06 (κύλιση), Al \u003d 00 (πλήρης οθόνη)

MOV BH, 07; Κανονική ιδιότητα

MOV CX, 0000; Επάνω αριστερή θέση

MOV DX, 184FH; Κάτω δεξιά θέση

Int 10h; Έλεγχος στο BIOS

Mov ah, 02; Αριθμός λειτουργίας

Mov bh, 00; αριθμός σελίδας

Mov dh, 00; Αριθμός γραμμής

MOV DL, 00; Αριθμός στήλης

Int 10h; Εγκαταστήστε το δρομέα

pop bp; / Αφαιρέστε και τα δύο

pop ax; / Αποθηκευμένο μητρώο

itet; / Εκτός διακοπής

Ο χρόνος DW 20; / Κύτταρο για μετρήσεις χρόνου

; / Πεδία δεδομένων

old_08h DD 0; / Κύτταρο για την αποθήκευση του αρχικού φορέα

Δημοσιεύτηκε στο Allbest.ru.

...

Παρόμοια έγγραφα

    Την εξέλιξη των γλωσσών προγραμματισμού από χαμηλά επίπεδα έως τη σύγχρονη εποχή. Γλώσσες προγραμματισμού δεύτερης γενιάς - συναρμολόγηση. Επιτακτικές, λειτουργικές, λογικές και αντικειμενικές γλώσσες. Ανεξαρτησία μηχανών. Προγραμματισμός παραδειγμάτων.

    Παρουσίαση, προστέθηκε 14.10.2013

    Η μελέτη ορισμένων πτυχών της γλώσσας του συναρμολογητή και του υπολογιστή στο σύνολό του. Κατασκευή αλγορίθμων για την επίλυση της εργασίας στις γλώσσες προγραμματισμού SI, το μυαλό του συναρμολογητή και το IBM PC. Κατάρτιση ροής και γραφής προγραμμάτων σε κάθε μία από τις καταχωρημένες γλώσσες.

    Μαθήματα, πρόσθεσε 10/20/2014

    Μάθηση του συναρμολόγου γλώσσας χαμηλού επιπέδου για να γράψετε ένα παράδειγμα προγράμματος για μια εφαρμογή 16 bit. Ανάπτυξη και εφαρμογή του αλγορίθμου για την υποβολή αριθμών στον βαθμό αριθμών του πεδίου για τη βάση 2 (mod 2). Εικονογράφηση της δημιουργίας μιας τεχνικής εφαρμογής DOS.

    Εργασία μαθήματος, προστέθηκαν 11/08/2011

    Κωδικοί μηχανών και συναρμολογητής. Τις πρώτες γλώσσες προγραμματισμού υψηλού επιπέδου. Fortran γλώσσα προγραμματισμού. Πλεονεκτήματα και μειονεκτήματα του Algol. Επιστημονικά και λογιστικά προγράμματα. Τις βασικές αρχές που τηρούνται κατά τη δημιουργία μιας βασικής γλώσσας προγραμματισμού.

    Εργασία μαθημάτων, προστέθηκαν 06/21/2014

    Η γλώσσα προγραμματισμού ως τυπικό σύστημα σημείων που έχει σχεδιαστεί για την καταγραφή προγραμμάτων. Refali ως αλγοριθμική γλώσσα αναδρομικών λειτουργιών. Ο Lisp ως συναρμολογητής επικεντρώθηκε στην εργασία με τις λίστα δομές. Πρόλογος: Έννοια, πάγια περιουσιακά στοιχεία.

    Παρουσίαση, προστέθηκε 22.02.2014

    Χαρακτηριστικά του συναρμολογητή - μια γλώσσα με χαμηλού επιπέδου που χρησιμοποιείται για τη δημιουργία απλών εφαρμογών. Προγράμματα δεσμεύσεων σε διάφορες γλώσσες. Τυπική μορφή για εντολές εγγραφής, οδηγίες και οδηγίες γλωσσών συναρμολογητή. Ανάπτυξη του παιχνιδιού "φίδι".

    Εργασία μαθημάτων, προστέθηκαν 07/20/2014

    Χαρακτηριστικά των γλωσσών προγραμματισμού: Σύντομη ιστορία, χρονολογία. Κύριοι τύποι γλωσσών προγραμματισμού: συναρμολόγηση. Baisik. Δημιουργία και χρήση τύπων στο Excel. Εφαρμογή των φορέων σε φόρμουλες. Χρησιμοποιώντας λειτουργίες στο Excel. Σπίτι διακοπών στο Site.

    Έκθεση πρακτικής, προστέθηκε 06/03/2011

    Εισάγετε και εξόδους χρησιμοποιώντας τη μονάδα συνδεδεμένης IO. Χαρακτηριστικά της εργασίας με μονοδιάστατες και δισδιάστατες συστοιχίες. Δοκιμάζοντας την κατάσταση των σημαίες. Rrincips και δεξιότητες με τον υδραυλικό τομέα και το κέντρο. Ανάπτυξη του συστήματος του αλγορίθμου του προγράμματος στον συναρμολογητή.

    Μαθήματα, πρόσθεσε 02.12.2009

    Μελετώντας τα χαρακτηριστικά του λειτουργικού συστήματος, ένα σύνολο προγραμμάτων που ελέγχουν τη λειτουργία προγραμμάτων εφαρμογής και εφαρμογών συστήματος. Περιγραφές αρχιτεκτονικής και λογισμικού σύγχρονων λειτουργικών συστημάτων. Πλεονεκτήματα του συναρμολόγου γλώσσας προγραμματισμού.

    Παρουσίαση, προστέθηκε 04/22/2014

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

Assmbler (ASM, SENDERBLER); από τα Αγγλικά. Συναρμολογήστε - Συλλέξτε, Mount) - Γλώσσα προγραμματισμού χαμηλού επιπέδου, βοηθητικό πρόγραμμα ως μέρος ενός λειτουργικού συστήματος αυτόματης μετάφρασης του αρχικού προγράμματος που θα εκτελεστεί σε υπολογιστή, γλώσσα μηχανής. Τύπος μεταφραστή. Οι έννοιες του συναρμολογητή αντικατοπτρίζουν την αρχιτεκτονική της ηλεκτρονικής υπολογιστικής μηχανής. Ο συναρμολογητής είναι μια συμβολική μορφή μιας καταχώρησης γλώσσας μηχανής, η χρήση του οποίου απλοποιεί τα προγράμματα γραφής μηχανών. Για τον ίδιο υπολογιστή, μπορούν να αναπτυχθούν διαφορετικές γλώσσες του συναρμολογητή. Σε αντίθεση με τις γλώσσες υψηλού επιπέδου, στην οποία τα προβλήματα εφαρμογής αλγορίθμων είναι κρυμμένα από τους προγραμματιστές, η γλώσσα του συναρμολογητή συνδέεται στενά με το σύστημα εντολών υπολογιστών. Ο συναρμολογητής παρέχει πρόσβαση σε μητρώα, καθορίζοντας μεθόδους αντιμετώπισης και περιγραφές λειτουργιών όσον αφορά τις εντολές του επεξεργαστή. Μπορεί να περιέχει υψηλότερο επίπεδο: ενσωματωμένες και καθορισμένες εντολές μακροεντολών που ταιριάζουν με τις εντολές πολλαπλών μηχανών, την αυτόματη επιλογή εντολών ανάλογα με τον τύπο των τελεστών, τις περιγραφές δομών δεδομένων.

Χαρακτηριστικά συναρμολόγων

Ο συναρμολογητής καλέστε επίσης τον μεταγλωττιστή από τη γλώσσα του συναρμολογητή στις εντολές γλώσσας του μηχανήματος. Ένα άλλο όνομα ενός τέτοιου μεταγλωττιστή - Mnemokode. Προορίζεται για παρουσίαση σε μια βολική (μνημονική) μορφή κωδίκων χειρισμού μηχανών, εξασφαλίζει την αποτελεσματική χρήση των πόρων του συστήματος (επεξεργαστής, μνήμη, περιφέρεια). Το MOOCODE χρησιμοποιείται σε μέρη όπου απαιτείται ταχύτητα, περιορίζεται στο μέγεθος της μνήμης RAM. Ο συναρμολογητής ονομάζεται επίσης το κεντρικό σύστημα εντολών επεξεργαστή.

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

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

Συνήθως, τα προγράμματα ή τα τμήματα του κώδικα γράφονται στη γλώσσα του συναρμολογητή σε περιπτώσεις όπου ο προγραμματιστής πρέπει να βελτιστοποιήσει την ταχύτητα (κατά τη δημιουργία οδηγών), το μέγεθος του κώδικα. Οι περισσότεροι μεταγλωττιστές επιτρέπουν το συνδυασμό στο ίδιο πρόγραμμα, κώδικα γραμμένο σε διαφορετικές γλώσσες προγραμματισμού. Αυτό σας επιτρέπει να γράφετε σύνθετα προγράμματα χρησιμοποιώντας μια γλώσσα υψηλού επιπέδου, χωρίς να χάσετε την ταχύτητα σε κρίσιμες εργασίες, χρησιμοποιώντας εξαρτήματα που γράφονται στη γλώσσα του συναρμολογητή. Ο συνδυασμός επιτυγχάνεται με την τοποθέτηση θραυσμάτων στη γλώσσα του συναρμολογητή στο κείμενο του προγράμματος (οδηγίες ειδικής γλώσσας) ή διαδικασίες γραφής στη γλώσσα του συναρμολογητή. Αυτή η μέθοδος χρησιμοποιείται για απλούς μετασχηματισμούς δεδομένων, αλλά δεν ισχύει σε έναν πλήρη κώδικα συναρμολόγησης με δεδομένα και υποπρογράμματα με πλήθος εισόδων και εξόδους που δεν υποστηρίζονται από γλώσσες υψηλού επιπέδου.

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

Γλώσσα προγραμματισμού

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

Οι εντολές γλώσσας του συναρμολογητή είναι ένας σε μία αντιστοιχεί στις ομάδες επεξεργαστών και, στην πραγματικότητα, είναι μια βολική συμβολική μορφή καταγραφής (mnemokode) εντολών και των επιχειρημάτων τους. Επίσης, η γλώσσα του συναρμολογητή παρέχει βασικές αφαίρεση λογισμικού: δεσμεύοντας τα μέρη του προγράμματος και δεδομένων μετά από ετικέτες με συμβολικά ονόματα και οδηγία.

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

Κάθε μοντέλο επεξεργαστή, κατ 'αρχήν, έχει το δικό του σύνολο εντολών και την κατάλληλη γλώσσα (ή τη διάλεκτο) του συναρμολογητή.

Πλεονεκτήματα και μειονεκτήματα

  • Την ελάχιστη ποσότητα περιττών κώδικα (η χρήση μικρότερου αριθμού εντολών και αναφορών στη μνήμη). Ως αποτέλεσμα - υψηλής ταχύτητας και μικρότερο μέγεθος προγράμματος
  • Μεγάλοι όγκοι κώδικα, μεγάλος αριθμός πρόσθετων δευτερευόντων εργασιών
  • Κακή αναγνωσιμότητα κώδικα, δυσκολία υποστήριξης (εντοπισμός εντοπισμού, προσθήκη ευκαιριών)
  • Η δυσκολία εφαρμογής των παραδειγμάτων προγραμματισμού και οποιωνδήποτε άλλων σύνθετων συμβάσεων, της πολυπλοκότητας της κοινής ανάπτυξης
  • Λιγότερες διαθέσιμες βιβλιοθήκες, η μικρή τους συμβατότητα
  • Άμεση πρόσβαση στον εξοπλισμό: θύρες I / O, ειδικοί καταχωρητές επεξεργαστών
  • Η δυνατότητα να γράψετε έναν αυτο-τροποποιητικό κώδικα (δηλ. Metaprogramming, και χωρίς την ανάγκη για διερμηνέα λογισμικού)
  • Μέγιστη "Fit" για την επιθυμητή πλατφόρμα (η χρήση ειδικών οδηγιών, τεχνικά χαρακτηριστικά του "σιδήρου")
  • Την μισαλλοδοξία σε άλλες πλατφόρμες (εκτός από δυαδικά συμβατά).

Σύνταξη

Το γενικά αποδεκτό πρότυπο για τη σύνταξη των γλωσσών συναρμολόγησης δεν υπάρχει. Ωστόσο, υπάρχουν de facto πρότυπα - παραδοσιακές προσεγγίσεις που οι περισσότεροι προγραμματιστές του συναρμολογητή τηρούν. Τα κύρια πρότυπα πληροφοριών είναι η Intel-Syntax και η AT & T-Syntax.

Η γενική μορφή των οδηγιών εγγραφής είναι η ίδια και για τα δύο πρότυπα:

`[Ετικέτα:] opcode [Operands] [, σχόλιο]`

Η εμφάνιση είναι άμεσα μνημονικές οδηγίες στον επεξεργαστή. Τα προθέματα (επαναλήψεις, αλλαγές όπως η διεύθυνση κ.λπ.) μπορούν να προστεθούν σε αυτό. Δεδομένου ότι οι τελεστές, οι σταθερές, τα ονόματα καταχωρούν, οι διευθύνσεις στο RAM, κλπ. Οι διαφορές μεταξύ των προτύπων της Intel και της AT & T αφορούν κυρίως τη σειρά των τελεστών και της σύνταξης με διαφορετικές μεθόδους αντιμετώπισης.

Το Mnemonics που χρησιμοποιείται είναι συνήθως το ίδιο για όλους τους επεξεργαστές μιας αρχιτεκτονικής ή οικογένειας αρχιτεκτόνων (μεταξύ γνωστών - Mnemonics των επεξεργαστών και των ελεγκτών Motorola, Arm, X86). Περιγράφονται στις προδιαγραφές του επεξεργαστή.

Για παράδειγμα, ο επεξεργαστής ZILOG Z80 κληρονομεί το σύστημα εντολών Intel I8080, το επεκτάθηκε και άλλαξε το μνημονικό (και καταχωρούν τους χαρακτηρισμούς) με τον δικό τους τρόπο. Για παράδειγμα, άλλαξα το Intel Mov στο Ld. Οι επεξεργαστές της Motorola Fireball κληρονομούνται το σύστημα εντολών Z80, το κόβουμε. Ταυτόχρονα, η Motorola επέστρεψε επίσημα στο Intel Mnemonicals. Και αυτή τη στιγμή το ήμισυ του συναρμολόγητου για το Fireball συνεργάζεται με το Intel Mnemonicals και το μισό με το Mnemonicics Zilog.

Διευθυντικός

Εκτός από τις οδηγίες, το πρόγραμμα μπορεί να περιέχει οδηγίες: εντολές που δεν αποστέλλονται απευθείας στις οδηγίες μηχανής και τους διαχειριστές μεταγλωττιστών. Το σετ και η σύνταξη θα διαφέρει σημαντικά και δεν εξαρτώνται από την πλατφόρμα υλικού, αλλά από τον μεταγλωττιστή που χρησιμοποιείται (δημιουργώντας διαλέκτους γλώσσας μέσα σε μια οικογένεια αρχιτεκτονικών). Ως σετ, οι οδηγίες μπορούν να κατανεμηθούν:

  • Καθορισμός δεδομένων (σταθερές και μεταβλητές)
  • Διαχείριση της οργάνωσης του οργανισμού σε παραμέτρους αρχείου μνήμης και εξόδου
  • Λειτουργία λειτουργίας του μεταγλωττιστή
  • Όλα τα είδη αφαίρεσης (δηλ. Στοιχεία υψηλού επιπέδου γλώσσες) - από την καταχώριση των διαδικασιών και των λειτουργιών (για την απλούστευση της εφαρμογής του παραδείγματος προγραμματισμού) σε υπό όρους δομές και κύκλους (για το δομμό του δομικού προγραμματισμού)
  • Μακροεντολή

Προέλευση και κριτική για τον όρο "Γλώσσα συναρμολογητή"

Αυτός ο τύπος γλωσσών έλαβε το όνομά του από το όνομα μεταφραστή (μεταγλωττιστής) από αυτές τις γλώσσες - συναρμολόγηση (ENG. ΣΥΝΕΔΡΙΑ - ΣΥΛΛΟΓΗ). Το όνομα του τελευταίου οφείλεται στο γεγονός ότι δεν υπήρχαν γλώσσες υψηλότερου επιπέδου στους πρώτους υπολογιστές και η μόνη εναλλακτική λύση στη δημιουργία προγραμμάτων που χρησιμοποιούν τον συναρμολογητή ήταν προγραμματισμός απευθείας σε κωδικούς.

Η γλώσσα συναρμολόγησης στα ρωσικά ονομάζεται συχνά "συναρμολόγηση" (και κάτι που συνδέεται με αυτό είναι "συναρμολογητής"), η οποία, σύμφωνα με την αγγλική μετάφραση της λέξης, είναι εσφαλμένη, αλλά ταιριάζει στους κανόνες της ρωσικής γλώσσας. Ωστόσο, ο ίδιος ο ίδιος (πρόγραμμα) ονομάζεται επίσης απλά "συναρμολογητής" και όχι ο μεταγλωττιστής γλώσσας συναρμολόγησης, κλπ.

Η χρήση του όρου "Γλώσσα συναρμολογητή" μπορεί επίσης να προκαλέσει εσφαλμένη γνώμη σχετικά με την ύπαρξη μιας ενιαίας γλώσσας χαμηλού επιπέδου ή τουλάχιστον ενός προτύπου για τέτοιες γλώσσες. Όταν καταγράφηκε τη γλώσσα στην οποία γράφεται ένα συγκεκριμένο πρόγραμμα, είναι σκόπιμο να προσδιοριστεί, για την οποία η αρχιτεκτονική προορίζεται και σε ποια διάλεκτο της γλώσσας είναι γραμμένη.

Στοιχεία σύνταξης:

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

Γειά σου Κόσμε!

Παράδειγμα για εκδόσεις της Intel X86 (IA32)

mOV AX, CS MOV DS, AX MOV AH, 9 MOV DX, Offset Γεια σας INT 21H XOR AX, AXT 21H HELLO: DB "HELLO WORLD!", 13, 10, "$"

Γειά σου Κόσμε!

Παράδειγμα για εκδόσεις της Amiga

Κίνηση. L # dos κίνηση. L 4. W, A6 JSR - $ 0198 (A6). Oldopenlibrary κίνηση. L D0, A6 BEQ. μικρό. Να μετακινηθείτε. L # Helloworld, D1 α) Μετακίνηση # 13, D2 JSR - $ 03ae (A6). Writechars β) JSR - $ 03b4; Move putstr. L A6, A1 κίνηση. L 4. W, A6 JSR - $ 019e (A6). Στεγανοποίηση. OUT RTS DOS DC. b "dos.library", 0 Helloworld DC. B "Γεια σας κόσμο!" , $ A, 0

Γειά σου Κόσμε!

Παράδειγμα για εκδόσεις Ατατιστών

Κίνηση. L # Helloworld, - (A7) Μετακίνηση # 9, - (A7) TRAP # 1 ADDQ. L # 6, A7 Μετακίνηση # 0, - (A7) Trap # 1 Helloworld: DC. B "Hello World!", $ 0d, $ 0Α, 0

Γειά σου Κόσμε!

Παράδειγμα για εκδόσεις της Intel X86 (IA32)

Το NASM LINUX χρησιμοποιείται από την Intel Syntax. Σύνταξη και σύνδεση:

  • nASM -F ELF -O HELLO.O HELLO.ASM
  • ld -o hello hello.o

Ενότητα. Δεδομένα MSG DB "Γεια σας, WORLD!", 0xA LEN EL $ - MSG. Κείμενο Global _start _start:; Σημείο εισόδου MOV EAX, 4; "Write" Σύστημα κλήσης MOV EBX, 1 MOV ECX, MSG; Δείκτης στα δεδομένα MOV EDX, LEN; Ποσότητα δεδομένων int 0x80; Καλέστε τον πυρήνα MOV IAX, 1; Κλήση συστήματος "_EXIT" MOV EBX, 0; Επιστροφή 0 (όλα καλά) int 0x80; Καλέστε τον πυρήνα

Γειά σου Κόσμε!

Παράδειγμα για εκδόσεις PDP-8

/ - Σχόλια.

/ HELLO WORLD ON SENDERBLER για DEC PDP - 8 * 200 HELLO, CLA CLL TLS / TLS Ορίζει τη σημαία εκτύπωσης. TAD Charac / Δημιουργεί ένα μητρώο δείκτη DCA IR1 / για να λάβετε χαρακτήρες TAD M6 / Ρύθμιση του μετρητή για μετρήσεις DCA / Ενίσχυση χαρακτήρων. Επόμενο, Tad I IR1 / Πάρτε ένα σύμβολο. Τύπος JMS / Τύπος του. Isz Count / Κάνε κάτι άλλο; JMP NEXT / όχι, εισάγετε έναν άλλο χαρακτήρα τύπου HLT, 0 / τύπου TSF JMP υπορουτίνας. - 1 TLS CLA JMP Τύπος Charac ,. / Χρησιμοποιείται ως αρχική τιμή IR1. 310 / H 305 / E 314 / L 314 / L 317 / O 254 /, 240/327 / W 317 / O 322 / R 314 / L 304 / D 241 /! M6, - 15 Count, 0 IR1 \u003d $ 10

Γειά σου Κόσμε!

Παράδειγμα για εκδόσεις PDP-11

Το πρόγραμμα είναι γραμμένο στο Macro-11 MacRoAssembler για τη σύνταξη και λειτουργία αυτού του προγράμματος στην εντολή RT-11 OS:

Macro hello.

Εντοπίστηκαν σφάλματα: 0

Link Hello - Link. Τρέχει γεια - τρέξιμο

Τίτλος Γεια σας κόσμο; Ονομα. Mcall. . Έξοδος Γεια σας :: MOV #MSG, R1; Η αρχική διεύθυνση της συμβολοσειράς είναι $ 1: MOVB (R1) +, R0, Παίρνουμε το ακόλουθο σύμβολο Done BeQ. Εάν μηδέν, βγείτε από τον κύκλο. Ttyout; Διαφορετικά, εκτυπώστε το σύμβολο B 1 $. Επαναλάβετε τον κύκλο :. Έξοδος MSG :. Asciz / Hello, World! /; String Hello, World! . Τελειώσει γεια? Τέλος του προγράμματος HELLO

Γειά σου Κόσμε!

Παράδειγμα για εκδόσεις συστήματος / 360, σύστημα / 370

Σύστημα IBM / 360/370/390 Βασική γλώσσα συναρμολόγησης.

// Exec συγκρότημα εκκίνησης Κύριο Balr 2, 0 Χρήση *, 2 Ανοίξτε την εκτύπωση MVC BUF, HW Βάλτε εκτύπωση Κλείσιμο εκτύπωσης EOJ HW DC CL132 "HWO WORLD" BUF DS CL132 Εκτύπωση DTFPR IOAREA1 \u003d BUF, DEVADDR \u003d SYSLST, BLKSIZE \u003d 132, * Συσκευή \u003d 3203, έλεγχος \u003d ναι, printov \u003d ναι end main / * // exec lnkedt // exec / * / &

Γειά σου Κόσμε!

Παράδειγμα για εκδόσεις της Apple II

* Hello World για 6502 Apple] [* ******************************** Strout EL $ DB3A LDY #\u003e HELLO LDA #< HELLO JMP STROUT HELLO ASC "HELLO WORLD !", 00

Γειά σου Κόσμε!

Παράδειγμα για εκδόσεις PDP-10

CHTTYO - Όλες οι εισόδους / εξόδου πραγματοποιούνται χρησιμοποιώντας κανάλια I / O. Είναι καλύτερο να κάνετε συμβολικά ονόματα για αυτά τα κανάλια που χρησιμοποιείτε και να τα αρχίσετε με το CH. Καθορίστε αυτά τα ονόματα χρησιμοποιώντας το χειριστή MIDAS \u003d\u003d.

Η κλήση είναι ένας συμβολικός χαρακτηρισμός για να καλέσετε μια κλήση συστήματος. Τη μορφή του: .call.

Το άνοιγμα ανοίγει το κανάλι εισόδου / εξόδου για χρήση. Απαιτεί δύο παραμέτρους - ο αριθμός καναλιού και το όνομα της συσκευής στο έξι.

Χάστε το% LSFil είναι μια κλήση συστήματος που εκτυπώνει ένα μήνυμα σφάλματος εισόδου / εξόδου αν ξαφνικά συνέβη.

Το IOT είναι μια κλήση συστήματος που πραγματικά ασχολείται με την είσοδο / έξοδο. Ως παράμετρος, πρέπει να καθορίσετε το κανάλι και τη διεύθυνση που περιέχει τον κωδικό συμβόλου για την έξοδο. Για παράδειγμα, το "H αντιπροσωπεύει h.

Τίτλος Printhello a \u003d 1 chttyo \u003d\u003d 1; Κανάλι για έξοδο. Αρχή:; Ανοίγοντας το κανάλι TTY. . Καλέστε [Setz; Έβδομη / Άνοιγμα / [. Uao, chttyo]; [Έβδομη / TTY /] ((SETZ))]. Χάνουν% lsfil. IOT Chttyo, ["h]; Εκτύπωση Hello World Symbol .. Iot Chttyo, [" E]. IOT Chttyo, ["L]. Iot Chttyo, [" L]. Iot chttyo, [o]. Iot chttyo, [^ m]; σύμβολο μιας νέας γραμμής. Iot chttyo, [w]. Iot chttyo, [o]. Iot Chttyo, ["r]. IOT Chttyo, ["L]. Iot Chttyo, [" D]. Αξία; Πρόγραμμα, στάση :) τέλος

Αριθμοί Fibonacci:

Παράδειγμα για εκδόσεις mips32

Mars Emulator. Συμπέρασμα Mars Console:

Οι αριθμοί Fibonacci είναι: 1 1 2 3 5 8 13 21 34 55 89 144 - Το πρόγραμμα ολοκληρώνεται το τρέξιμο -

Το πρόγραμμα εμφανίζει 15 αριθμούς Fibonacci. Ο αριθμός των αριθμών μπορεί να αλλάξει στο τμήμα.Data.

Χώρος δεδομένων:. "" Κεφάλι:. " "Οι αριθμοί Fibonacci είναι: \\ n" FIB: .WWORD 0: 15 Μέγεθος :.word 15 .Text Main: La $ T0, FIB LA $ T5, μέγεθος LW $ T5, 0 ($ T5) Li $ t2, 1 add.d $ f0, $ f2, $ F4 SW $ T2, 0 ($ T0) SW $ T2, 4 ($ T0) ADDI $ T1, $ T5, - 2 LOOP: LW $ T3, 0 ($ T0) LW $ T4, 4 ($ T0) Προσθέστε $ T2, $ t3, $ t4 sw $ t2, 8 ($ t0) addi $ t0, $ t0, 4 addi $ t1, $ t1, 4 addi $ t1, $ t1, - 1 bgtz $ t1, βρόχος la $ a0, fib move $ a1, $ t5 jal Εκτύπωση Li $ v0, 10 Syscall Εκτύπωση: Προσθήκη $ T0, $ Zero, $ A0 Προσθήκη $ T1, $ Zero, $ A1 LA $ A0, Head Li $ V0, 4 Syscall Out: LW $ A0, 0 ($ T0) Li $ V0, 1 Syscall La $ A0, Space Li $ v0, 4 Syscall addi li $ v0, 1 la $ A0, ($ T2) Syscall La $ A0, String1 Li $ V0, 4 Syscall Multi $ T1, $ T2 MFLO $ T1 Li $ V0, 1 LA $ A0, ($ T1) Syscall La $ A0, String2 Li $ v0, 4 Syscall Addiu $ T2, $ T2, 1 Beq $ T2, 16, Endloop J Loop Endloop: Li $ v0, 10 Συστρέφω