Πίσω

Παράδειγμα 1

BEQZ R1, name:
if (Regs[R1] == 0) PC < name;
((PC + 4) – 215) <= name < ((PC + 4) + 215)

BNEZ R4, name:
if (Regs[R1] != 0) PC < name;
((PC + 4) – 215) <= name < ((PC + 4) + 215)

J name:
PC < name; ((PC + 4) – 225) <= name < ((PC + 4) + 225)

JR R1:
PC < Regs[R1]

Παράδειγμα 2

Να εξηγήσετε τον τρόπο με τον οποίο εκτελείται η παρακάτω εντολή του DLX:

JALR R2
Απάντηση
Είναι μια εντολή μεταπήδησης και σύνδεσης. Με την εντολή αυτή σώζουμε την διεύθυνση της εντολής που ακολουθεί την εντολή μεταπήδησης στον καταχωρητή R31 και φορτώνουμε στον PC την τιμή του περιεχομένου του καταχωρητή R2. Μπορούμε να εξηγήσουμε την εντολή αυτή χρησιμοποιώντας συμβολισμούς:
Regs[R31] <- PC + 4 ;
PC <- Regs[R2]
Έτσι η ροή του προγράμματος μετατίθεται στη διεύθυνση, η οποία βρίσκεται στον καταχωρητή R2.