Τρόποι
διευθυνσιοδότησης στον VAX
Οι τελεστέοι μπορούν να βρίσκονται είτε σε καταχωρητές, είτε να περιέχονται σαν απευθείας δεδομένα στην εντολή. Για να καθοριστεί η θέση ενός τελεστέου που βρίσκεται στην κύρια μνήμη, χρησιμοποιείται μια διεύθυνση των 32-bits. Η διεύθυνση αυτή προσδιορίζεται μέσω του τρόπου διευθυνσιοδότησης και του περιεχομένου ενός καταχωρητή.Οι τελεστέοι μπορούν να βρίσκονται είτε σε καταχωρητές, είτε να περιέχονται σαν απευθείας δεδομένα στην εντολή. Για να καθοριστεί η θέση ενός τελεστέου που βρίσκεται στην κύρια μνήμη, χρησιμοποιείται μια διεύθυνση των 32-bits. Η διεύθυνση αυτή προσδιορίζεται μέσω του τρόπου διευθυνσιοδότησης και του περιεχομένου ενός καταχωρητή.
Κάθε προσδιοριστής τελεστέου
σε μια εντολή ξεκινά με ένα byte (b7b6b5b4b3b2b1b0)
του οποίου η μορφή είναι η εξής: το πάνω μισό (δηλαδή τα bit b7
έως
b4), καθορίζουν τον τρόπο
της διευθυνσιοδότησης του τελεστέου όπως αυτός φαίνεται στον πίνακα, το
υπόλοιπο μισό είναι ένας καταχωρητής το περιεχόμενο του οποίου χρησιμοποιείται για τον υπολογισμό της διεύθυνσης του τελεστέου.
|
|
διευθυνσιοδότησης |
Συμβολική |
|
|||||
|
|
|
|
|
|||||
|
|
|
[Ri]* |
όπου το Α είναι η διεύθυνση ενός πίνακα και μπορεί να χρησιμοποιηθεί οποιοσδήποτε τρόπος διευθυνσιοδότησης, ενώ ο καταχωρητής Ri δείχνει τη θέση του δείκτη μέσα στον πίνακα και το k καθορίζεται από το μήκος του τελεστέου σε bytes |
|||||
|
|
|
|
|
|||||
|
|
|
|
|
|||||
|
|
|
|
Διεύθυνση = [Rn] |
|||||
|
|
|
|
Αύξησε το περιεχόμενο του Rn |
|||||
|
|
|
|
Αύξησε το περιεχόμενο του Rn |
|||||
1 1 0 0 1 1 1 0 |
12 14 |
|
![]() |
|
|||||
1 1 0 1 1 1 1 1 |
13 15 |
|
@![]() |
|
Παρακάτω φαίνονται
οι τρόποι διευθυνσιοδότησης του VAX όταν
Rn είναι ο απαριθμητής
προγράμματος (R15)
|
|
(Αυτοαύξησης) |
|
Αύξησε το περιεχόμενο του PC |
|
|
(Έμμεσος Αυτοαύξησης) |
|
PC ¬ [PC]+4 |
1 1 0 0 1 1 1 0 |
12 14 |
(Με μετατόπιση) |
![]() |
|
1 1 0 1 1 1 1 1 |
13 15 |
(Έμμεσος με μετατόπιση) |
@ W Α L |
|
![]() |
![]() |
![]() |
![]() |
![]() |