Πίσω

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

   Έστω το παρακάτω τμήμα κώδικα:

               ADD R1 , R2 , R3
               BEQZ R12 , skipnext
               SUB R4 , R5 , R6
               ADD R5 , R4 , R9
skipnext: OR R7 , R8 , R9
Μπορείτε να εξηγήσετε τον τρόπο με τον οποίο θα εκτελεστούν οι εντολές;


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

   Εάν η συνθήκη διακλάδωσης αληθεύει τότε εκτελείται η εντολή με ετικέτα skipnext, δηλαδή η εντολή OR. Στην περίπτωση αυτή η εντολή SUB δεν εκτελείται. Εάν όμως, η συνθήκη διακλάδωσης δεν αληθεύει, τότε εκτελείται η εντολή SUB. Σε αυτή την περίπτωση (η εντολή διακλάδωσης BEQZ δεν ακολουθείται), ο υπολογιστής υποθέτει ότι ο καταχωρητής R4, της SUB εντολής, δεν πρόκειται να χρησιμοποιηθεί μετά την εντολή με ετικέτα skipnext. 'Eτσι λοιπόν, η εντολή SUB μπορεί να μετακινηθεί πριν την πρώτη εντολή ADD, οπότε θα εκτελείται πάντα, ανεξάρτητα από τη συνθήκη διακλάδωσης και δεν θα επηρεάζει το τμήμα κώδικα μετά την εντολή με ετικέτα skipnext.