Κεφάλαιο 2 | Ενότητα 4 | Ερωτήσεις επισκόπησης | Επόμενο | Προηγούμενο | Λεξικό όρων

Κωδικοποίηση εντολών του DLX

   Η κωδικοποίηση των εντολών του DLX ανήκει στο σταθερό τρόπο κωδικοποίησης. 'Ολες οι εντολές του DLX μετά την κωδικοποίηση έχουν σταθερό μέγεθος 32 bits με τα 6 πρώτα bits να περιέχουν τον κωδικό της εντολής ή πληροφορίες για την εντολή αυτή. Αφού οι τρόποι διευθυνσιοδότησης στον DLX είναι μόνο δύο, μπορούν να κωδικοποιηθούν στον κωδικό λειτουργίας (opcode) της εντολής.

Οι εντολές του DLX κωδικοποιούνται σε έναν από τους παρακάτω τρεις τύπους:
          Εντολή τύπου - I

Εντολή τύπου - R

Εντολή τύπου - J
 
 

Εντολή τύπου - I
6
5
5
16
bits
Kωδικός
λειτουργίας
εντολής
Rs1
Rd
Immediate (απευθείας)

(Οι συμβολισμοί Rs και Rd αναφέρονται στον πηγαίο καταχωρητή (source register) και τον καταχωρητή προορισμού (destination register) αντίστοιχα.)

Η εντολές που κωδικοποιούνται είναι :

Παράδειγμα
Ποια μορφή θα έχει η παρακάτω εντολή πρόσθεσης του υπολογιστή DLX; Να εξηγήσετε τον τρόπο με τον οποίο εκτελείται η συγκεκριμένη εντολή.

                                     ADDI R1,R2,#53

Μετά την κωδικοποίηση η εντολή έχει τη παρακάτω μορφή :
6
5
5
16
bits
ADDI
R2
R1
53

Στα 6 πρώτα bits (0..5) περιέχεται ο κωδικός της εντολής. Στα επόμενα πέντε (6..10) ο καταχωρητής που περιέχει τον πηγαίο τελεστέο, στα bits 11..15 ο καταχωρητής στον οποίο θα καταχωρηθεί ο τελεστεός προορισμού και στα 16 τελευταία bits περιέχεται η απευθείας τιμή.
Με την εντολή αυτή προσθέτουμε  την τιμή 53 με το περιεχόμενο του καταχωρητή R2 και το αποτέλεσμα καταχωρείται στον καταχωρητή R2. Έτσι αν για παράδειγμα ο R2 είχε την τιμή 47 μετά την εκτέλεση της εντολής ο καταχωρητής R1 θα έχει την τιμή 100.
 

Παράδειγμα
Ποια μορφή θα έχει η παρακάτω εντολή μεταπήδησης και σύνδεσης του υπολογιστή DLX; Να εξηγήσετε τον τρόπο με τον οποίο εκτελείται η συγκεκριμένη εντολή.

                            JALR R2
Μετά την κωδικοποίηση η εντολή έχει τη παρακάτω μορφή:
6
5
5
16
bits
JALR
R2
0
0

O καταχωρητής που καθορίζει τον προορισμό βρίσκεται κωδικοποιημένος στα bits 6..10. Με την εντολή αυτή ο PC φορτώνεται με το περιεχόμενο του καταχωρητή R2. Έτσι στη συνέχεια θα εκτελεστεί η εντολή που βρίσκεται στη θέση μνήμης η διεύθυνση της οποίας καθορίζεται από το περιεχόμενο του PC. Έτσι αν για παράδειγμα ο R2 είχε την τιμή 500 τότε η επόμενη εντολή που θα εκτελεστεί είναι εκείνη που βρίσκεται στη διεύθυνση 500 της μνήμης.
 

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 4

α) Ποιος τρόπος διευθυνσιοδότησης χρησιμοποιείται στην παρακάτω εντολή φόρτωσης του DLX;

LΒ R1,(R2)
β) Με ποιο τρόπο κωδικοποιείται η συγκεκριμένη εντολή;
γ) Ποιο θα είναι το αποτέλεσμα μετά την εκτέλεση της εντολής, αν ο καταχωρητής R2 έχει τιμή 1000 και η διεύθυνση της θέσης μνήμης 1000 περιέχει την τιμή 500;

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 4



  Εντολή τύπου - R  
6
5
5
5
16
bits
Κωδικός
λειτουργίας
εντολής
Rs1
Rs2
Rd
Func
πράξη

Κωδικοποιεί αριθμητικές και λογικές εντολές : Rd ¬ Rs1 func Rs2.
Στον κωδικό λειτουργίας της εντολής περιέχεται η πληροφορία ότι η εντολή είναι μια αριθμητική/λογική εντολή στην οποία χρησιμοποιούνται μόνο καταχωρητές (υπονοείται ότι ο τρόπος διευθυνσιοδότησης των τελεστέων είναι άμεσος καταχωρητή).
Στο πεδίο Func βρίσκεται κωδικοποιημένη  η πράξη που θα εκτελεστεί μεταξύ των περιεχομένων του καταχωρητή Rs1 και Rs2.
 

Παράδειγμα
Πως κωδικοποιείται η παρακάτω εντολή πρόσθεσης του DLX:

                                ADD R1,R2,R3

   Η εντολή μετά την κωδικοποίηση έχει την παρακάτω μορφή :
6
5
5
5
16
bits
Κωδικός
λειτουργίας
εντολής
R2
R3
R1
ADD

   Οι καταχωρητές που περιέχουν τους πηγαίους τελεστέους βρίσκονται κωδικοποιημένοι στα bits 6..10 και 11..15 , ενώ ο καταχωρητής στον οποίο θα καταχωρηθεί ο τελεστέος προορισμού βρίσκεται κωδικοποιημένος στα bits 16..20. Στα τελευταία 11 bits βρίσκεται κωδικοποιημένη η πράξη που θα γίνει μεταξύ των δύο πηγαίων τελεστέων (στο παράδειγμά μας είναι η πρόσθεση ADD).

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 5

* Να περιγράψετε την εκτέλεση της παρακάτω εντολής του υπολογιστή DLX.

ADD R1, R2, R3
* Ποιο θα είναι το αποτέλεσμα αν το περιεχόμενο του καταχωρητή R2 είναι 43 και το περιεχόμενο του καταχωρητή R3 είναι 57;
* Να εκτελέσετε την παραπάνω εντολή χρησιμοποιώντας το λογισμικό που βρίσκεται στην ιστοσελίδα: * Να συγκρίνετε το αποτέλεσμα της εκτέλεση της εντολής από το λογισμικό, με την απάντηση που δώσατε.

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 5






Εντολή τύπου - J
6
26
bits
Κωδικός
λειτουργίας
εντολής
Offset που προστίθεται στον PC

Κωδικοποιεί εντολές : Μεταπήδησης , μεταπήδησης με σύνδεση και παγίδες

Παράδειγμα
Εξηγήστε την παρακάτω εντολή μεταπήδησης του DLX;

                                    J name     (το name συμβολίζει μια διεύθυνση μνήμης)

   Η εντολή μετά την κωδικοποίηση έχει την παρακάτω μορφή:
6
26
bits
J
Offset

Στο πεδίο των 26 bits βρίσκεται η τιμή (offset) που θα προστεθεί στον PC ώστε να δώσει το στόχο της μεταπήδησης (name). Έστω ότι η εντολή μεταπήδησης βρίσκεται στη θέση μνήμης με διεύθυνση 1000 και το name έχει την τιμή 1050. Ο PC μετά την αποκωδικοποίηση της εντολής έχει αυξηθεί κατά 4, δηλαδή ο PC έχει την τιμή 1004. Έτσι το offset που θα προστεθεί στον PC ώστε να δώσει τιμή 1050 είναι 46.
Δηλαδή:
            PC    =1004
            offset=46
            name=1050
            name= PC+offset