Κεφάλαιο 2 | Ενότητα 4 | Ερωτήσεις επισκόπησης | Επόμενο | Προηγούμενο | Λεξικό όρων
Πώς
ερμηνεύονται οι διευθύνσεις μνήμης στον DLX
Οι διευθύνσεις μνήμης στον DLX
έχουν μέγεθος 32 bits.
Η διευθυνσιοδότηση
της μνήμης γίνεται κατά byte και ακολουθεί το μοντέλο Big Endian.
H επικοινωνία με τη μνήμη γίνεται μέσω των εντολών φόρτωσης και αποθήκευσης.
Όλες οι προσβάσεις
στη μνήμη πρέπει να ευθυγραμμίζονται.
Πρόσβαση στη μνήμη υπάρχει μόνο σε εντολές φόρτωσης - αποθήκευσης. Τα δεδομένα που προσπελάζονται με τις εντολές αυτές είναι μεγέθους:
Εξηγήστε
τις παρακάτω εντολές φόρτωσης του DLX:
A. LB R1, 50(R2)
B. LH R1, 50(R2)
Έστω ότι στον καταχωρητή R2 είναι καταχωρημένη η τιμή 50.
A.
Με την εντολή αυτή φορτώνεται στον καταχωρητή R1 το περιεχόμενο της θέσης
μνήμης η διεύθυνση της οποίας υπολογίζεται προσθέτοντας στην τιμή 50 την
τιμή του καταχωρητή R2 (50). Έτσι η διεύθυνση μνήμης που βρίσκεται το
δεδομένο είναι η 100.
Παρατηρούμε ότι το μέγεθος του δεδομένου που θα διαβαστεί από τη μνήμη
είναι 1 byte (λόγω του γράμματος B στην εντολή L_).
1 byte
100 | Δεδομένο μεγέθους 1 byte |
Β.
Με την εντολή αυτή φορτώνεται στον καταχωρητή R1 το περιεχόμενο της
θέσης μνήμης η διεύθυνση της οποίας υπολογίζεται προσθέτοντας στην τιμή
50 την τιμή του καταχωρητή R2 (50). Έτσι η διεύθυυνση μνήμης που βρίσκεται
το δεδομένο είναι η 100.
Παρατηρούμε ότι το μέγεθος του δεδομένου που θα διαβαστεί από τη μνήμη
είναι 2 bytes (λόγω του γράμματος H στην εντολή L_). Έτσι το δεδομένο βρίσκεται
σε δύο διαδοχικά bytes της μνήμης, στα bytes με διευθύνσεις
100 και 101. Στο παρακάτω σχήμα μπορούμε να δούμε πώς το δεδομένο είναι
αποθηκευμένο στη μνήμη.
1 byte
100 | 1o byte δεδομένου |
101 | 2o byte δεδομένου |
Από τη στιγμή που ανακτηθούν τα bytes του δεδομένου από τη μνήμη θα πρέπει τα bytes αυτά να τοποθετηθούν στη σωστή θέση ώστε να ανακτηθεί όλο το δεδομένο μεγέθους μισής λέξης (half-word). Λόγω του ότι η διευθυνσιοδότηση της μνήμης ακολουθεί το μοντέλο Big Endian το byte που βρισκόταν στη θέση μνήμης με διεύθυνση 100 θα τοποθετηθεί στη σημαντικότερη θέση του δεδομένου, ενώ το byte που βρισκόταν στη θέση μνήμης με διεύθυνση 101 θα τοποθετηθεί στη λιγότερο σημαντική θέση του δεδομένου. Στο παρακάτω σχήμα μπορούμε να δούμε ποια μορφή θα έχει το ανακτημένο δεδομένο μεγέθους 2 bytes (προσέξτε την αντιστοιχία χρωμάτων).
1 byte 1 byte
Σημαντικότερο byte | Λιγότερο σημαντικό byte |
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3
![]() |
![]() |
![]() |
![]() |
![]() |