Μια συμβολική γλώσσα (Αγγλικά: assembly language) είναι μια χαμηλού επιπέδου γλώσσα προγραμματισμού, δηλαδή μια γλώσσα πολύ κοντά στη γλώσσα μηχανής και στο υλικό του υπολογιστή. Κάθε συγκεκριμένη αρχιτεκτονική συνόλου εντολών, δηλαδή κάθε οικογένεια επεξεργαστών, έχει τη δική της συμβολική γλώσσα, η οποία δίνεται συνήθως από τον κατασκευαστή της.
Ένα πρόγραμμα σε γλώσσα μηχανής είναι ένα μοτίβο από bits στα οποία κωδικοποιούνται εντολές του επεξεργαστή και δεδομένα. Αυτό γίνεται πιο ευανάγνωστο αντικαθιστώντας τις ακολουθίες των bits με μνημονικά σύμβολα.
Για παράδειγμα ένας επεξεργαστής της αρχιτεκτονικής x86/IA-32 θα καταλάβει την εντολή σε γλώσσα μηχανής:
10110000 01100001
Ένας προγραμματιστής όμως είναι πιο εύκολο να θυμάται την ισοδύναμη συμβολική αναπαράσταση, για παράδειγμα μια τυπική εντολή σε συμβολική γλώσσα είναι η εξής:
mov al, 061h
που είναι συντομογραφία της αγγλικής λέξης move ("μετακίνησε"). Η εντολή αυτή μετακινεί τη δεκαεξαδική τιμή 61 (97 στο δεκαδικό σύστημα) στον καταχωρητή με το όνομα "al".
Η μετατροπή ενός προγράμματος από συμβολική γλώσσα σε γλώσσα μηχανής γίνεται από ένα συμβολομεταφραστή (assembler) και το αντίστροφο γίνεται από έναν αντισυμβολομεταφραστή (disassembler).
§
§
Γλώσσα μηχανής συμβολική γλώσσα
Ένα πρόγραμμα σε γλώσσα μηχανής είναι ένα μοτίβο από bits στα οποία κωδικοποιούνται εντολές του επεξεργαστή και δεδομένα. Αυτό γίνεται πιο ευανάγνωστο αντικαθιστώντας τις ακολουθίες των bits με μνημονικά σύμβολα.
Για παράδειγμα ένας επεξεργαστής της αρχιτεκτονικής x86/IA-32 θα καταλάβει την εντολή σε γλώσσα μηχανής:
10110000 01100001
Ένας προγραμματιστής όμως είναι πιο εύκολο να θυμάται την ισοδύναμη συμβολική αναπαράσταση, για παράδειγμα μια τυπική εντολή σε συμβολική γλώσσα είναι η εξής:
mov al, 061h
που είναι συντομογραφία της αγγλικής λέξης move ("μετακίνησε"). Η εντολή αυτή μετακινεί τη δεκαεξαδική τιμή 61 (97 στο δεκαδικό σύστημα) στον καταχωρητή με το όνομα "al".
Η μετατροπή ενός προγράμματος από συμβολική γλώσσα σε γλώσσα μηχανής γίνεται από ένα συμβολομεταφραστή (assembler) και το αντίστροφο γίνεται από έναν αντισυμβολομεταφραστή (disassembler).
§
]
- Εγχειρίδο Χρήσης AT91 του Χαρίδημου Βέργου και του Νικόλαου Κωστάρα.
- Αρχιτεκτονική Η/Υ ΙΙ - Συμβατική μηχανή και συμβολική γλώσσα, Δ. Σπινέλλης, ΟΠΑ.
§
Γλώσσα μηχανής συμβολική γλώσσα
Μια συμβολική γλώσσα είναι μια χαμηλού επιπέδου γλώσσα προγραμματισμού για ηλεκτρονικούς υπολογιστές, μικροεπεξεργαστές, μικροελεγκτές, και άλλες προγραμματιζόμενες συσκευές στις οποίες κάθε κατάσταση αντιστοιχεί σε μια απλή εντολή γλώσσα μηχανής. Μια συμβολική γλώσσα είναι σε ένα συγκεκριμένο αρχιτεκτονική του υπολογιστή, σε αντίθεση με τις περισσότερες υψηλού επιπέδου γλώσσες προγραμματισμού, η οποία μπορεί να είναι πιο φορητές.
Συνέλευση Γλώσσα χρησιμοποιεί «μνημονικών κωδίκων» ή «σύμβολα». αντί να θυμόμαστε τις ακριβείς θέσεις μνήμης όπου αποθηκεύονται τα δεδομένα και οι οδηγίες, είναι συμβολική διευθύνσεις μνήμης που χρησιμοποιείται για τα δεδομένα.
Ένα βοηθητικό πρόγραμμα που ονομάζεται assembler χρησιμοποιείται για να μεταφράσει τις δηλώσεις συμβολική γλώσσα σε κώδικα μηχανής του υπολογιστή προορισμού.
Στην κανονική επαγγελματική χρήση, ο όρος συναρμολόγησης χρησιμοποιείται για να αναφερθεί τόσο σε συμβολική γλώσσα, και το λογισμικό που συγκεντρώνει ένα σύνολο γλώσσα προγράμματος. Έτσι: ". ASM-Χ ήταν μια ευρέως χρησιμοποιούμενη, S/370 συναρμολόγησης" "CP / CMS γράφτηκε σε S/360 συναρμολόγησης", καθώς και [παραπομπή που απαιτείται]
Πολλοί κατασκευαστές προσφέρουν πρόσθετους μηχανισμούς για τη διευκόλυνση της ανάπτυξης του προγράμματος, τον έλεγχο της διαδικασίας συναρμολόγησης, καθώς και τον εντοπισμό σφαλμάτων βοήθεια. Συναρμολογητές περιλαμβάνουν συχνά μια μακροεντολή εγκατάσταση (όπως περιγράφεται παρακάτω), και ονομάζονται μακρο συναρμολογητές.
§
Γλώσσα μηχανής ονομάζουμε μια γλώσσα προγραμματισμού που περιλαμβάνει εντολές γραμμένες σε μορφή ακολουθιών bit άμεσα εκτελέσιμες από την Κεντρική Μονάδα Επεξεργασίας (KME). Ονομάζεται γλώσσα μηχανής επειδή μέσω αυτής, και καμίας άλλης, επιτυγχάνεται «επικοινωνία» με τον υπολογιστή. Προγράμματα που γράφονται σε άλλες γλώσσες προγραμματισμού, για να γίνουν εκτελέσιμα πρέπει να «μεταφραστούν» από έναν συμβολομεταφραστή (assembler) σε γλώσσα μηχανής.
Η γλώσσα μηχανής αποτελείται από συμβολοσειρές από 0 και 1, δηλαδή από μια ακολουθία από 0 και 1, όπως για παράδειγμα 00101011010. Κάτι τέτοιο αποτελεί ένα διαφορετικό σύστημα αρίθμησης. Θα μπορούσε κανείς να πει ότι όπως οι άνθρωποι «χρησιμοποιούν» το δεκαδικό σύστημα αρίθμησης, έτσι οι υπολογιστές χρησιμοποιούν το δυαδικό. Οι υπολογιστές, επομένως, είναι προγραμματισμένοι να «καταλαβαίνουν» αριθμούς σε δυαδικό σύστημα. Ένας μνημονικός τρόπος της γλώσσας αυτής είναι η έκφραση των αριθμών αυτών σε δεκαεξαδικό σύστημα.
Είναι προφανές ότι ο προγραμματισμός σε αυτήν την γλώσσα απαιτεί πολύ καλή γνώση της λειτουργίας ενός υπολογιστή και πολύ καλό χειρισμό της γλώσσας αυτής, καθώς συγκριτικά με άλλες γλώσσες υψηλότερου επιπέδου, αυτή είναι η πιο δυσνόητη από έναν ανθρώπινο νου.
Κάθε ψηφίο μιας συμβολοσειράς της γλώσσας μηχανής ονομάζεται bit. Επομένως, η τιμή ενός bit μπορεί να ειναι ή 0 ή 1 και τίποτα άλλο. Μια συμβολοσειρά από οκτώ bit ονομάζεται byte.
http://www.atariarchives.org/mlb/
Machine Language For Beginners
C: Assembler Programs
D: Disassembler Programs
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices in which each statement corresponds to a single machine language instruction. An assembly language is specific to a certain computer architecture, in contrast to most high-level programming languages, which may be more portable.
Assembly Language uses 'mnemonic codes' or 'symbols'. instead of remembering the exact memory locations where data and instructions are stored, symbolic memory addresses are used for data.
A utility program called an assembler is used to translate assembly language statements into the target computer's machine code.
In normal professional usage, the term assembler is used to refer both to an assembly language, and to software which assembles an assembly-language program. Thus: "CP/CMS was written in S/360 assembler" as well as "ASM-H was a widely-used S/370 assembler."[citation needed]
Many assemblers offer additional mechanisms to facilitate program development, control the assembly process, and aid debugging. Assemblers often include a macro facility (described below), and are called macro assemblers.
Γλώσσα μηχανής συμβολική γλώσσαΣυνέλευση Γλώσσα χρησιμοποιεί «μνημονικών κωδίκων» ή «σύμβολα». αντί να θυμόμαστε τις ακριβείς θέσεις μνήμης όπου αποθηκεύονται τα δεδομένα και οι οδηγίες, είναι συμβολική διευθύνσεις μνήμης που χρησιμοποιείται για τα δεδομένα.
Ένα βοηθητικό πρόγραμμα που ονομάζεται assembler χρησιμοποιείται για να μεταφράσει τις δηλώσεις συμβολική γλώσσα σε κώδικα μηχανής του υπολογιστή προορισμού.
Στην κανονική επαγγελματική χρήση, ο όρος συναρμολόγησης χρησιμοποιείται για να αναφερθεί τόσο σε συμβολική γλώσσα, και το λογισμικό που συγκεντρώνει ένα σύνολο γλώσσα προγράμματος. Έτσι: ". ASM-Χ ήταν μια ευρέως χρησιμοποιούμενη, S/370 συναρμολόγησης" "CP / CMS γράφτηκε σε S/360 συναρμολόγησης", καθώς και [παραπομπή που απαιτείται]
Πολλοί κατασκευαστές προσφέρουν πρόσθετους μηχανισμούς για τη διευκόλυνση της ανάπτυξης του προγράμματος, τον έλεγχο της διαδικασίας συναρμολόγησης, καθώς και τον εντοπισμό σφαλμάτων βοήθεια. Συναρμολογητές περιλαμβάνουν συχνά μια μακροεντολή εγκατάσταση (όπως περιγράφεται παρακάτω), και ονομάζονται μακρο συναρμολογητές.
§
Η γλώσσα μηχανής αποτελείται από συμβολοσειρές από 0 και 1, δηλαδή από μια ακολουθία από 0 και 1, όπως για παράδειγμα 00101011010. Κάτι τέτοιο αποτελεί ένα διαφορετικό σύστημα αρίθμησης. Θα μπορούσε κανείς να πει ότι όπως οι άνθρωποι «χρησιμοποιούν» το δεκαδικό σύστημα αρίθμησης, έτσι οι υπολογιστές χρησιμοποιούν το δυαδικό. Οι υπολογιστές, επομένως, είναι προγραμματισμένοι να «καταλαβαίνουν» αριθμούς σε δυαδικό σύστημα. Ένας μνημονικός τρόπος της γλώσσας αυτής είναι η έκφραση των αριθμών αυτών σε δεκαεξαδικό σύστημα.
Είναι προφανές ότι ο προγραμματισμός σε αυτήν την γλώσσα απαιτεί πολύ καλή γνώση της λειτουργίας ενός υπολογιστή και πολύ καλό χειρισμό της γλώσσας αυτής, καθώς συγκριτικά με άλλες γλώσσες υψηλότερου επιπέδου, αυτή είναι η πιο δυσνόητη από έναν ανθρώπινο νου.
Κάθε ψηφίο μιας συμβολοσειράς της γλώσσας μηχανής ονομάζεται bit. Επομένως, η τιμή ενός bit μπορεί να ειναι ή 0 ή 1 και τίποτα άλλο. Μια συμβολοσειρά από οκτώ bit ονομάζεται byte.
http://www.atariarchives.org/mlb/
Machine Language For Beginners
C: Assembler Programs
D: Disassembler Programs
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices in which each statement corresponds to a single machine language instruction. An assembly language is specific to a certain computer architecture, in contrast to most high-level programming languages, which may be more portable.
Assembly Language uses 'mnemonic codes' or 'symbols'. instead of remembering the exact memory locations where data and instructions are stored, symbolic memory addresses are used for data.
A utility program called an assembler is used to translate assembly language statements into the target computer's machine code.
In normal professional usage, the term assembler is used to refer both to an assembly language, and to software which assembles an assembly-language program. Thus: "CP/CMS was written in S/360 assembler" as well as "ASM-H was a widely-used S/370 assembler."[citation needed]
Many assemblers offer additional mechanisms to facilitate program development, control the assembly process, and aid debugging. Assemblers often include a macro facility (described below), and are called macro assemblers.