Upload
kristen-mccullough
View
26
Download
0
Embed Size (px)
DESCRIPTION
Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης. Μάθημα Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφαλαίο Πέμπτο Η συμβολική γλώσσα μηχανής του ΜΙΧ 1009 Καθηγητής: Α. Βαφειάδης 2004. Πλεονεκτήματα της συμβολικής γλώσσας μηχανής. - PowerPoint PPT Presentation
Citation preview
1Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης
Μάθημα
Οργάνωση και Αρχιτεκτονική Υπολογιστών
Κεφαλαίο Πέμπτο
Η συμβολική γλώσσα μηχανής του ΜΙΧ 1009
Καθηγητής: Α. Βαφειάδης
2004
2Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Πλεονεκτήματα της συμβολικής γλώσσας μηχανής
Δουλεύουμε με σύμβολα και όχι με αριθμούς. Οι διευθύνσεις της μνήμης είναι σύμβολα και όχι αριθμοί. Π.χ LDA LABEL,0(0:5)
Μας δίνει τη δυνατότητα να παραλείψουμε ορισμένες τιμές στα πεδία Ι και F, οι οποίες επαναλαμβάνονται συνεχώς.(Default values)
Οι αριθμητικές τιμές που εκ των πραγμάτων αναγκαζόμαστε να έχουμε στο πρόγραμμα (σταθερές κ.λ.π) είναι στο δεκαδικό και όχι στο οκταδικό σύστημα. Η μετατροπή γίνεται από τον συμβολομεταφραστή στη φάση της μετάφρασης.
3Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Κατηγορίες εντολών συμβολικής Γλώσσας Μηχανής
Ψευδοεντολές (pseudo instructions) με τις οποίες ορίζουμε ουσιαστικά της μεταβλητές και τις σταθερές του προγράμματος, δηλαδή αντιστοιχίζουμε σε συμβολικά ονόματα, διευθύνσεις μνήμης (μεταβλητές) ή αριθμητικές τιμές (σταθερές).
Εκτελέσιμες εντολές (instructions) με τις οποίες συντάσσεται η λογική του προγράμματος. Κάθε εντολή ή ψευδοεντολή περιγράφεται σε μόνο μια γραμμή.
Σχόλια
4Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Περιγραφή εντολής
Ετικέτα όνομα εντολής Διεύθυνση παράγοντα σχόλια
ή Παράγοντας εντολής
Συμβολική διεύθυνση ή σταθερά, Δείκτης (F-πεδίο)
5Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Δεσμευμένη σύνταξη εντολών(fixed format)
1 10 12 15 17 36 38 ----------------+-+------+---+---------------------------+-+----------------------------------------------- LDA FOR,2(1:5) rA<-- MEM[FOR + REG[2]](1:5)
LDA FOR Φόρτωσε στον rA το περιεχόμενο
* της διεύθυνσης FOR.LOOP LDA FOR (1:5) Φόρτωσε στον rA την απόλυτη
τιμή* της διεύθυνσης FOR. LDA FOR,1 rA <-- MEM[FOR + REG[1]]* ENT1 14 rI1 <-- 14 (ΑΡΧΙΚΗ ΤΙΜΗ).ANT DEC1 1 Αφαίρεσε 1 από τον rI1. J1P ANT Αν το περιεχόμενο του rI1 είναι
* θετικό πήγαινε στην εντολή με* συμβολική διεύθυνση ANT HLT Σταμάτησε το πρόγραμμα.
6Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Δομές δεδομένων συμβολομεταφραστή
Ο πίνακας των συμβολικών ονομάτων των εντολών (opcode table)
Ο πίνακας των συμβολικών ονομάτων που ορίζει ο προγραμματιστής και ο οποίος ονομάζεται συμβολικός πίνακας(symbol table)
Μια μεταβλητή που ονομάζεται μετρητής θέσης(location counter).
7Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Δομές δεδομένων συμβολομεταφραστή.
Συμβολικό Συμβολικό όνομαόνομα
Τιμή (Διεύθυνση Τιμή (Διεύθυνση
ή σταθερά)ή σταθερά)
ΧΥΧΧΥΧ 04370437
ΑΝΤΑΝΤ1 1 00030003
ΑΑ -7-7
ΒΒ 2323
LOOPLOOP 20022002
ANT ANT 16311631
LP LP 1818
Συμβολικό Συμβολικό όνομαόνομα
CC F-πεδίοF-πεδίο
LDALDA 1010 (L:R)(L:R)
ST1 ST1 3131 (L:R)(L:R)
ADD ADD 0101 (L:R)(L:R)
FADDFADD 0101 0606
CMPCMPAA 7070 (L:R)(L:R)
JMP JMP 4747 0000
JSJ JSJ 4747 0101
JOVJOV 4747 0202
ΙΝΙΝ 4444 NN
OUTOUT 4455 NN
Συμβολικός Πίνακας Εντολών
Συμβολικός Πίνακας
Μετρητής θέσης
0043
8Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Κατηγορίες συμβολομεταφραστών
Ενός περάσματος (one pass assembler) Ανάγνωση μιας εντολής από το αρχείο εισόδου
Τοποθέτηση ενός συμβολικού(αν υπάρχει) ονόματος στον συμβολικό πίνακα
Μετάφραση της εντολής σε αριθμητική μορφή
τοποθέτηση της μεταφρασμένες εντολής στη μνήμη ή σε αρχείο(object file).
Δύο περασμάτων (two pass assembler) Ο assembler διαβάζει εντολή προς εντολή το αρχείο
εισόδου και σχηματίζει τον συμβολικό πίνακα.
Ο assembler ξαναδιαβάζει το πρόγραμμα και με τη βοήθεια του συμπληρωμένου συμβολικού πίνακα κατασκευάζει τον αριθμητικό κώδικα.
τοποθέτηση της μεταφρασμένες εντολής σε αρχείο(object file).
9Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Σύνταξη συμβολικού ονόματος
Συμβολικό όνομα Συμβολική διεύθυνση(όνομα μεταβλητής)
Όνομα σταθεράς
Ετικέτα εντολής(label)
Κανόνες σύνταξης συμβολικού ονόματος Δεν περεχεί ειδικά σύμβολα (μόνο γράμματα και αριθμούς)
Μέχρι 10 χαρακτήρες
Τουλάχιστον ένα χαρακτήρα
Στη θέση του της συμβολικής διεύθυνση μπορεί να έχουμε: συμβολικό όνομα. αριθμητική σταθερά (στο δεκαδικό σύστημα) αστερίσκο (*). συμβολική αριθμητική έκφραση.
10Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Ο Assembler δύο περασμάτων του ΜΙΧ
Συμβολικόςκώδικας
Πρώτοπερασμα Ενδιάμεσο
αρχείο
Δεύτερο πέρασμα
Εκτελέσιμοςκώδικας
Συντακτικάλάθη
Συμβολικόςπίνακας
11Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Συνοπτική Περιγραφή Ψευδοεντολών
ORIG
Δίνει τιμές στο μετρητή θέσης
CON
Ορίζει αριθμητική μεταβλητή
ALF
Ορίζει μεταβλητή χαρακτήρων
EQU
Ορίζει σταθερά
END
Η τελευταία εντολή του πηγαίου κώδικά
12Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Λειτουργία του μετρητή θέσης(location counter)
Ο μετρητής θέσης είναι μια ειδική μεταβλητή του assembler, ο οποίος (μετρητής) περιέχει την διεύθυνση της θέσης μνήμης στην οποία θα τοποθετηθεί η τρέχουσα εντολή ή μεταβλητή όταν αυτή φορτωθεί στη μνήμη
Ο location Counter
σε κάθε εκτελέσιμή εντολή αυξάνει κατά ένα
σε κάθε ψευδοεντολή EQU η τιμή του παραμένει σταθερή
σε κάθε ψευδοεντολή CON ή ALF αυξάνει κατά ένα
σε κάθε ψευδοεντολή ORIG μεταβάλλεται με βάση την αριθμητική παράσταση που βρίσκεται στην θέση του παράγοντα της ψευδοεντολής
13Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Εκτελέσιμη εντολή (Ενέργειες assembler)
Πρώτο πέρασμα: Β1: Αν δεν υπάρχει ετικέτα πήγαινε στο βήμα Β3.Β2: Τοποθέτησε την ετικέτα στη μία στήλη του συμβολικού πίνακα και στην
άλλη βάλε τη τρέχουσα τιμή του μετρητή θέσης.
Β3: Αύξησε κατά ένα τη τιμή του μετρητή θέσης Β4: Τοποθέτησε την εντολή μαζί με τη διεύθυνση που θα φορτωθεί στη μνήμη, στο ενδιάμεσο αρχείο
Δεύτερο πέρασμα: Β1: Μετάφραση της εντολής σε δυαδικό κώδικα με τη βοήθεια του
συμβολικού πίνακα ονομάτων (πρώτο πέρασμα) και του συμβολικούπίνακα εντολών (κατασκευαστής)
Β2: Δημιούργησε στο αρχείο εξόδου (object file) μια εγγραφή που θα αντιστοιχεί σε μια θέση μνήμης κατά τη φόρτωση του προγράμματος, με διεύθυνση τη διεύθυνση της εντολής που
βρέθηκε κατά το πέρασμα ένα και περιεχόμενο τη μεταφρασμένη εντολή.
Β3: Εκτύπωση της εντολής με τα συντακτικά λάθη (αν υπάρχουν).
14Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Πρώτο πέρασμα
ΑρχικέςτιμέςLC=0
Ανάγνωση συμβολικού
κώδικα
ARXH
ΑνίχνευσηOPCODE
CON ΕΝΤΟΛΗ ALF ORIG END EQU
ΕΤΙΚΕΤΑ ΕΤΙΚΕΤΑ PASS 2
H ετικέτα στον συμβολικόπίνακα με τιμή την
τρέχουσατιμή του LC
H ετικέτα στον συμβολικόπίνακα με τιμή την
τρέχουσα τιμή του LC
Η ετικέτα στονσυμβολικό πίνακα με
τιμή την τιμή τηςσταθεράς πουβρίσκεται στο
πεδίο του παράγοντα
Υπολογισμός τηςαριθ. παράστασηςτου παράγοντα και
τοποθετησή της στον LC
LC=LC+1
Ενδιάμεσο αρχείο
1
1
ΟΧΙ
ΝΑΙ
OXI
NAI
15Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Δεύτερο πέρασμα
Ενδιάμεσοαρχείο
PASS2
ΑνίχνευσηOPCODE
CON ALF ΕΝΤΟΛΗ ORIG END EQU
Μετάφραση της εντολής με τη
βοήθεια του ΣΥΜΒΟΛΙΚΟΥ ΠΙΝΑΚΑ
Δημουργία Θέσης Μνήμης
Διεύθυνση: η τιμή του LC από το Pass1Περιεχόμενο: η μεταφρασμένη εντολή
Εκτελέσιμο αρχείο
2
2 ΤΕΛΟΣ
Υπολογισμός της διεύθ.έναρξης του προγρ.
Εγγραφή της διευθ. στοεκτελέσιμο αρχείο
Εκτύπωση Συμβολικού
κώδικα + Συντ. λάθη
Δημουργία Θέσης Μνήμης
Διεύθυνση: η τιμή του LC απo το Pass1 Περιεχόμενο: η τιμή του παράγοντα
16Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Παράδειγμα συμβολομετάφρασης 1/3
Πηγαίος κώδικαςQ CON 10P CON 0C EQU 8BEGIN ENTA C
ADD QSTA PHLTEND BEGIN
ΠΡΩΤΟ ΠΕΡΑΣΜΑ
Σύμβολο Τιμή
Q 0 Συμβολικός πίνακαςP 1C 10BEGIN 2
0000: Q CON 10
0001: P CON 0
0002: C EQU 8
0002: BEGIN ENTA C
0003: ADD Q
0004: STA P 0005: HLT
END BEGIN
17Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Ενδιάμεσο Αρχείο
0000: Q CON 100001: P CON 00002: C EQU 8 0002: BEGIN ENTA C0003: ADD Q0004: STA P0005: HLT
END BEGIN
ΔΕΥΤΕΡΟ ΠΕΡΑΣΜΑΕκτελέσιμο αρχείο
0000: 00000000012 Δεδομένα
0001: 00000000000
0002: 00010000260 Κώδικας
0003: 00000000501
0004: 00001000530
0005: 00000000205 0002: 00000000000 Starting Address
0000: 00000000012 Q
0001: 00000000000 P
0002: 00010000260 BEGIN
0003: 00000000501
0004: 00001000530
0005: 00000000205
Εικόνα Μνήμης
18Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Παράδειγμα συμβολομετάφρασης 2/3
Πηγαίος κώδικαςORIG 4
Q CON 10P CON 0C EQU 8BEGIN ENTA C
ADD QSTA PHLTEND BEGIN
ΠΡΩΤΟ ΠΕΡΑΣΜΑ
Σύμβολο Τιμή
Q 4 Συμβολικός πίνακαςP 5C 10BEGIN 6
19Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Ενδιάμεσο Αρχείο
0000: ORIG 40004: Q CON 100005: P CON 00006: C EQU 8 0006: BEGIN ENTA C0007: ADD Q0010: STA P0011: HLT
END BEGIN
ΔΕΥΤΕΡΟ ΠΕΡΑΣΜΑΕκτελέσιμο αρχείο
0004: 00000000012 Δεδομένα
0005: 00000000000
0006: 00010000260 Κώδικας
0007: 00004000501
0010: 00005000530
0011: 00000000205 0006: 00000000000 Starting Address
0004: 00000000012 Q
0005: 00000000000 P
0006: 00010000260 BEGIN
0007: 00004000501
0011: 00005000530
0012: 00000000205
Εικόνα Μνήμης
20Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Παράδειγμα συμβολομετάφρασης 3/3
Πηγαίος κώδικαςORIG 4
Q CON 10P CON 0C EQU 8
ORIG *+3BEGIN ENTA C
ADD QSTA PHLTEND BEGIN
ΠΡΩΤΟ ΠΕΡΑΣΜΑ
Σύμβολο Τιμή
Q 4 Συμβολικός πίνακαςP 5C 10BEGIN 11
21Οργάνωση και Αρχιτεκτονική
Υπολογιστών
Ενδιάμεσο Αρχείο
0000: ORIG 40004: Q CON 100005: P CON 00006: C EQU 80006: ORIG *+30011: BEGIN ENTA C0012: ADD Q0013: STA P0014: HLT
END BEGIN
ΔΕΥΤΕΡΟ ΠΕΡΑΣΜΑΕκτελέσιμο αρχείο
0004: 00000000012 Δεδομένα
0005: 00000000000
0011: 00010000260 Κώδικας
0012: 00004000501
0013: 00005000530
0014: 00000000205
0011: 00000000000 Starting Address
Εικόνα Μνήμης
0004: 00000000012 Q
0005: 00000000000 P
0006:
0007:
0010:
0011: 00010000260 BEGIN
0012: 00004000501
0013: 00005000530
0014: 00000000205