Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος...

21
Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφαλαίο Πέμπτο Η συμβολική γλώσσα μηχανής του ΜΙΧ 1009 Καθηγητής: Α. Βαφειάδης 2008

description

Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης. Μάθημα Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφαλαίο Πέμπτο Η συμβολική γλώσσα μηχανής του ΜΙΧ 1009 Καθηγητής: Α. Βαφειάδης 200 8. Πλεονεκτήματα της συμβολικής γλώσσας μηχανής. - PowerPoint PPT Presentation

Transcript of Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος...

Page 1: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

1Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

Μάθημα

Οργάνωση και Αρχιτεκτονική Υπολογιστών

Κεφαλαίο Πέμπτο

Η συμβολική γλώσσα μηχανής του ΜΙΧ 1009

Καθηγητής: Α. Βαφειάδης

2008

Page 2: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

2Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Πλεονεκτήματα της συμβολικής γλώσσας μηχανής

Δουλεύουμε με σύμβολα και όχι με αριθμούς. Οι διευθύνσεις της μνήμης είναι σύμβολα και όχι αριθμοί. Π.χ LDA LABEL,0(0:5)

Μας δίνει τη δυνατότητα να παραλείψουμε ορισμένες τιμές στα πεδία Ι και F, οι οποίες επαναλαμβάνονται συνεχώς.(Default values)

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

Page 3: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

3Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Κατηγορίες εντολών συμβολικής Γλώσσας Μηχανής

Ψευδοεντολές (pseudo instructions) με τις οποίες ορίζουμε ουσιαστικά της μεταβλητές και τις σταθερές του προγράμματος, δηλαδή αντιστοιχίζουμε σε συμβολικά ονόματα, διευθύνσεις μνήμης (μεταβλητές) ή αριθμητικές τιμές (σταθερές).

Εκτελέσιμες εντολές (instructions) με τις οποίες συντάσσεται η λογική του προγράμματος. Κάθε εντολή ή ψευδοεντολή περιγράφεται σε μόνο μια γραμμή.

Σχόλια

Page 4: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

4Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Περιγραφή εντολής

Ετικέτα όνομα εντολής Διεύθυνση παράγοντα σχόλια

ή Παράγοντας εντολής

Συμβολική διεύθυνση ή σταθερά, Δείκτης (F-πεδίο)

Page 5: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

5Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Σύνταξη συμβολικού ονόματος

Συμβολικό όνομα Συμβολική διεύθυνση(όνομα μεταβλητής)

Όνομα σταθεράς

Ετικέτα εντολής(label)

Κανόνες σύνταξης συμβολικού ονόματος Δεν περεχεί ειδικά σύμβολα (μόνο γράμματα και αριθμούς)

Μέχρι 10 χαρακτήρες

Τουλάχιστον ένα χαρακτήρα

Στη θέση του της συμβολικής διεύθυνση μπορεί να έχουμε: συμβολικό όνομα. αριθμητική σταθερά (στο δεκαδικό σύστημα) αστερίσκο (*). συμβολική αριθμητική έκφραση.

Page 6: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

6Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Δεσμευμένη σύνταξη εντολών(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 Σταμάτησε το πρόγραμμα.

Page 7: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

7Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Δομές δεδομένων συμβολομεταφραστή

Ο πίνακας των συμβολικών ονομάτων των εντολών (opcode table)

Ο πίνακας των συμβολικών ονομάτων που ορίζει ο προγραμματιστής και ο οποίος ονομάζεται συμβολικός πίνακας(symbol table)

Μια μεταβλητή που ονομάζεται μετρητής θέσης(location counter).

Page 8: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

8Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Δομές δεδομένων συμβολομεταφραστή.

Συμβολικό Συμβολικό όνομαόνομα

Τιμή (Διεύθυνση Τιμή (Διεύθυνση

ή σταθερά)ή σταθερά)

ΧΥΧΧΥΧ 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

Page 9: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

9Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Κατηγορίες συμβολομεταφραστών

Ενός περάσματος (one pass assembler) Ανάγνωση μιας εντολής από το αρχείο εισόδου

Τοποθέτηση ενός συμβολικού(αν υπάρχει) ονόματος στον συμβολικό πίνακα

Μετάφραση της εντολής σε αριθμητική μορφή

τοποθέτηση της μεταφρασμένες εντολής στη μνήμη ή σε αρχείο(object file).

Δύο περασμάτων (two pass assembler) Ο assembler διαβάζει εντολή προς εντολή το αρχείο

εισόδου και σχηματίζει τον συμβολικό πίνακα.

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

τοποθέτηση της μεταφρασμένες εντολής σε αρχείο(object file).

Page 10: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

10Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Ο Assembler δύο περασμάτων του ΜΙΧ

Συμβολικόςκώδικας

Πρώτοπερασμα Ενδιάμεσο

αρχείο

Δεύτερο πέρασμα

Εκτελέσιμοςκώδικας

Συντακτικάλάθη

Συμβολικόςπίνακας

Page 11: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

11Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Συνοπτική Περιγραφή Ψευδοεντολών

ORIG

Δίνει τιμές στο μετρητή θέσης

CON

Ορίζει αριθμητική μεταβλητή

ALF

Ορίζει μεταβλητή χαρακτήρων

EQU

Ορίζει σταθερά

END

Η τελευταία εντολή του πηγαίου κώδικά

Page 12: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

12Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Λειτουργία του μετρητή θέσης(location counter)

Ο μετρητής θέσης είναι μια ειδική μεταβλητή του assembler, ο οποίος (μετρητής) περιέχει την διεύθυνση της θέσης μνήμης στην οποία θα τοποθετηθεί η τρέχουσα εντολή ή μεταβλητή όταν αυτή φορτωθεί στη μνήμη

Ο location Counter

σε κάθε εκτελέσιμή εντολή αυξάνει κατά ένα

σε κάθε ψευδοεντολή EQU η τιμή του παραμένει σταθερή

σε κάθε ψευδοεντολή CON ή ALF αυξάνει κατά ένα

σε κάθε ψευδοεντολή ORIG μεταβάλλεται με βάση την αριθμητική παράσταση που βρίσκεται στην θέση του παράγοντα της ψευδοεντολής

Page 13: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

13Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Εκτελέσιμη εντολή (Ενέργειες assembler)

Πρώτο πέρασμα: Β1: Αν δεν υπάρχει ετικέτα πήγαινε στο βήμα Β3.Β2: Τοποθέτησε την ετικέτα στη μία στήλη του συμβολικού πίνακα και στην

άλλη βάλε τη τρέχουσα τιμή του μετρητή θέσης.

Β3: Αύξησε κατά ένα τη τιμή του μετρητή θέσης Β4: Τοποθέτησε την εντολή μαζί με τη διεύθυνση που θα φορτωθεί στη μνήμη, στο ενδιάμεσο αρχείο

Δεύτερο πέρασμα: Β1: Μετάφραση της εντολής σε δυαδικό κώδικα με τη βοήθεια του

συμβολικού πίνακα ονομάτων (πρώτο πέρασμα) και του συμβολικούπίνακα εντολών (κατασκευαστής)

Β2: Δημιούργησε στο αρχείο εξόδου (object file) μια εγγραφή που θα αντιστοιχεί σε μια θέση μνήμης κατά τη φόρτωση του προγράμματος, με διεύθυνση τη διεύθυνση της εντολής που

βρέθηκε κατά το πέρασμα ένα και περιεχόμενο τη μεταφρασμένη εντολή.

Β3: Εκτύπωση της εντολής με τα συντακτικά λάθη (αν υπάρχουν).

Page 14: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

14Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Πρώτο πέρασμα

ΑρχικέςτιμέςLC=0

Ανάγνωση συμβολικού

κώδικα

ARXH

ΑνίχνευσηOPCODE

CON ΕΝΤΟΛΗ ALF ORIG END EQU

ΕΤΙΚΕΤΑ ΕΤΙΚΕΤΑ PASS 2

H ετικέτα στον συμβολικόπίνακα με τιμή την

τρέχουσατιμή του LC

H ετικέτα στον συμβολικόπίνακα με τιμή την

τρέχουσα τιμή του LC

Η ετικέτα στονσυμβολικό πίνακα με

τιμή την τιμή τηςσταθεράς πουβρίσκεται στο

πεδίο του παράγοντα

Υπολογισμός τηςαριθ. παράστασηςτου παράγοντα και

τοποθετησή της στον LC

LC=LC+1

Ενδιάμεσο αρχείο

1

1

ΟΧΙ

ΝΑΙ

OXI

NAI

Page 15: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

15Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Δεύτερο πέρασμα

Ενδιάμεσοαρχείο

PASS2

ΑνίχνευσηOPCODE

CON ALF ΕΝΤΟΛΗ ORIG END EQU

Μετάφραση της εντολής με τη

βοήθεια του ΣΥΜΒΟΛΙΚΟΥ ΠΙΝΑΚΑ

Δημουργία Θέσης Μνήμης

Διεύθυνση: η τιμή του LC από το Pass1Περιεχόμενο: η μεταφρασμένη εντολή

Εκτελέσιμο αρχείο

2

2 ΤΕΛΟΣ

Υπολογισμός της διεύθ.έναρξης του προγρ.

Εγγραφή της διευθ. στοεκτελέσιμο αρχείο

Εκτύπωση Συμβολικού

κώδικα + Συντ. λάθη

Δημουργία Θέσης Μνήμης

Διεύθυνση: η τιμή του LC απo το Pass1 Περιεχόμενο: η τιμή του παράγοντα

Page 16: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

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

Page 17: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

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

Εικόνα Μνήμης

Page 18: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

18Οργάνωση και Αρχιτεκτονική

Υπολογιστών

Παράδειγμα συμβολομετάφρασης 2/3

Πηγαίος κώδικαςORIG 4

Q CON 10P CON 0C EQU 8BEGIN ENTA C

ADD QSTA PHLTEND BEGIN

ΠΡΩΤΟ ΠΕΡΑΣΜΑ

Σύμβολο Τιμή

Q 4 Συμβολικός πίνακαςP 5C 10BEGIN 6

Page 19: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

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

Εικόνα Μνήμης

Page 20: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

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

Page 21: Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

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