Δραστηριότητα 3
α) Να περιγράψετε την εκτέλεση της παρακάτω εντολής του υπολογιστή DLX. Ποιο θα είναι το αποτέλεσμα αν το περιεχόμενο του καταχωρητή R4 είναι 100;
γ) Να εκτελέσετε την παραπάνω εντολή χρησιμοποιώντας το λογισμικό που βρίσκεται στην ιστοσελίδα:
δ) Να συγκρίνετε το αποτέλεσμα της εκτέλεση της εντολής από το λογισμικό, με την απάντηση που δώσατε.
α) Με την εντολή αυτή φορτώνεται στον καταχωρητή R2 το περιεχόμενο της θέσης μνήμης η διεύθυνση της οποίας υπολογίζεται προσθέτοντας στην τιμή 150 την τιμή του καταχωρητή R4 (100). Έτσι η διεύθυνση μνήμης που βρίσκεται το δεδομένο είναι η 250.
β) Παρατηρούμε ότι το μέγεθος των δεδομένων που θα διαβαστούν από τη μνήμη είναι 4 bytes (λόγω του γράμματος W στην εντολή L_). Έτσι τα δεδομένα βρίσκονται σε τέσσερα διαδοχικά bytes της μνήμης, στα bytes με διευθύνσεις 250, 251, 252 και 253. Στο παρακάτω σχήμα μπορούμε να δούμε πώς τα δεδομένα είναι αποθηκευμένα στη μνήμη.
1 byte
250 | 1o byte δεδομένου |
251 | 2o byte δεδομένου |
252 | 3o byte δεδομένου |
253 | 4o byte δεδομένου |
Από τη στιγμή που ανακτηθούν τα bytes των δεδομένων από τη μνήμη θα πρέπει τα bytes αυτά να τοποθετηθούν στη σωστή θέση ώστε να ανακτηθούν όλα τα δεδομένα μεγέθους λέξης (word). Λόγω του ότι η διευθυνσιοδότηση της μνήμης ακολουθεί το μοντέλο Big Endian το byte που βρισκόταν στη θέση μνήμης με διεύθυνση 250 θα τοποθετηθεί στη σημαντικότερη θέση των δεδομένων, το byte που βρισκόταν στη θέση μνήμης με διεύθυνση 251 θα τοποθετηθεί στην αμέσως επόμενη θέση των δεδομένων, ενώ το byte που βρισκόταν στη θέση μνήμης με διεύθυνση 253 θα τοποθετηθεί στη λιγότερο σημαντική θέση των δεδομένων. Στο παρακάτω σχήμα μπορούμε να δούμε ποια μορφή θα έχουν τα δεδομένα μεγέθους 4 bytes, που έχουν ανακτηθεί(προσέξτε την αντιστοιχία χρωμάτων).
1o byte δεδομένου (Σημαντικότερο byte) |
2o byte δεδομένου | 3o byte δεδομένου | 4o byte δεδομένου (Λιγότερο σημαντικό byte) |
![]() |
![]() |