Πίσω

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

* Με ποιον τρόπο κωδικοποιείται η παρακάτω εντολή του υπολογιστή VAX και ποιο είναι το μέγεθός της σε bytes;

MOVB B 50(R1),(R2)
Να θεωρήσετε πως ο έμμεσος καταχωρητή τρόπος διευθυνσιοδότησης έχει κωδικό 6 και ο τρόπος διευθυνσιοδότησης με μετατόπιση (Β) έχει κωδικό 10.
* Να εξηγήστε την εντολή χρησιμοποιώντας συμβολισμούς.


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

Με την εντολή αυτή μετακινείται το περιεχόμενο της μνήμης, μεγέθους 1 byte (λόγω του γράμματος Β που βρίσκεται κολλημένο στην εντολή MOV_), με διεύθυνση που υπολογίζεται χρησιμοποιώντας τον τρόπο διευθυνσιοδότησης με μετατόπιση (50(R1)) στη διεύθυνση μνήμης που υπολογίζεται χρησιμοποιώντας τον τρόπο διευθ/σης έμμεσο με καταχωρητή. Έτσι, η τιμή που θα μετακινηθεί βρίσκεται στη διεύθυνση, η οποία υπολογίζεται προσθέτοντας την τιμή 50 (μετατόπιση) στο περιεχόμενο του καταχωρητή R1. Το πρόθεμα Β­ σημαίνει ότι η τιμή της μετατόπισης είναι μεγέθους 1 byte. Η διεύθυνση στην οποία θα μετακινηθεί η τιμή αυτή είναι καταχωρημένη στον καταχωρητή R2.


    ΜΟV B    
    Kωδικός λειτουργίας    
    6    
    R1    
    Προσδιοριστής    
    τελεστέου 1     
50
10
R2
Προσδιοριστής
τελεστέου 2


Όπως παρατηρούμε το μέγεθος της εντολής είναι 4 bytes. Στο 1ο byte βρίσκεται κωδικοποιημένη η πράξη. Στα δύο επόμενα bytes βρίσκεται ο προσδιοριστής τελεστέου του 1ου τελεστέου. Στα 4 πρώτα bits του προσδιοριστή διεύθυνσης βρίσκεται κωδικοποιημένος ο τρόπος διευθυνσιοδότησης του τελεστέου (που στην άσκησή μας είναι 6) και στα επόμενα 4 bits βρίσκεται ο καταχωρητής R1. Στο 2ο byte του προσδιοριστή διεύθυνσης βρίσκεται η μετατόπιση 50. Στο τελευταίο byte της εντολής βρίσκεται ο προσδιοριστής τελεστέου του 2ου τελεστέου.
Χρησιμοποιώντας συμβολισμούς, η εντολή εκτελείται ως εξής:
Mem[Regs[R2]] ¬ Mem[50 + Regs[R1]]