Πίσω

Δραστηριότητα 5

Ποια είναι η αναπαράσταση της παρακάτω εντολής στη μνήμη του υπολογιστή VAX;

MOVL @W1146(R15), R0


Απάντηση δραστηριότητας 5

200
-327
.
.
...
.
1000
MOVL
Κωδικός λειτουργίας
1001
13
R15
Προσδιοριστής τελεστέου 1
1002
1146
1003
1004
5
R0
Προσδιοριστής τελεστέου 2
.
...
.
POINTER = 2150
2151
2152
2153
200
.


Χρησιμοποιείται ο έμμεσος τρόπος διευθυνσιοδότησης με αυτοαύξηση. Έστω ότι η εντολή ξεκινά από τη διεύθυνση 1000 της κύριας μνήμης. Ο PC έχει αυξηθεί και έχει την τιμή 1004 τη στιγμή που η τιμή 1146 (μετατόπιση) είναι έτοιμη να προστεθεί στον PC. Έτσι μετά την πρόσθεση παίρνουμε την τιμή 2150, που αντιστοιχεί στη διεύθυνση του δείκτη (POINTER). Στη διεύθυνση 2150 της κύριας μνήμης βρίσκεται αποθηκευμένη η ενεργή διεύθυνση (μεγέθους 32 bits) που είναι 200. Τα 4 bytes που βρίσκονται σ' αυτή τη διεύθυνση, δηλαδή η τιμή -327, θα μετακινηθούν στον καταχωρητή R0. Η τιμή που θα μετακινηθεί είναι μεγέθους 4 bytes, λόγω του γράμματος L που βρίσκεται κολλημένο στην εντολή MOV_ ). Μπορούμε να εξηγήσουμε την εντολή αυτή χρησιμοποιώντας συμβολισμούς, ως εξής:

Regs[R0] ¬ 32 Mem[Mem[1146 + PC]]]