Άσκηση 4

Άσκηση 4
Εντολές ελέγχου με διακλάδωση (Α)
Βήμα 1
Αναλύστε τη λειτουργία του προγράμματος που ακολουθεί μελετώντας
τις αντίστοιχες εντολές MIPS Assembly.
bgt $t1,10,syneheia
li $v0,4
la $a0,msg1
syscall
j termatismos
syneheia:
li $v0,4
la $a0,msg2
syscall
termatismos:
li $v0,10
syscall
.data
msg1: .asciiz “message 1”
msg2: .asciiz “message 2”
Βήμα 2
Σε ποιες περιπτώσεις εμφανίζονται τα μηνύματα message 1 και
message 2;
Βήμα 3
Γράψτε στο τετράδιο τον αντίστοιχο ψευδοκώδικα ή το διάγραμμα
ροής.
Δρ. Παναγιώτης Παπάζογλου / Εργαστήριο Αρχιτεκτονική Υπολογιστών Ι / Σελίδα
1
Βήμα 4
Το πρόγραμμα που ακολουθεί εμφανίζει στην οθόνη κατάλληλο
μήνυμα στην περίπτωση που το περιεχόμενο ενός καταχωρητή ανήκει
σε ένα κλειστό διάστημα. Πιο συγκεκριμένα, ελέγχει αν ο αριθμός
ανήκει στο διάστημα [10,20].
blt $t1,10,termatismos
bgt $t1,20,termatismos
li $v0,4
la $a0,msg
syscall
termatismos:
li $v0,10
syscall
.data
msg: .asciiz “$t1 anhkei sto [10,20]”
Γράψτε στο τετράδιο τη μεθοδολογία βάσει της οποίας γίνεται ο
ζητούμενος έλεγχος.
Βήμα 5
Να προτείνετε ένα εναλλακτικό τρόπο ελέγχου του διαστήματος.
Βήμα 6
Γράψτε ψευδοκώδικα ή κώδικα C που να υλοποιεί τον έλεγχο που
προτείνετε στο βήμα 5.
Βήμα 7
Αναπτύξτε και τρέξτε το αντίστοιχο πρόγραμμα για το βήμα 4
Βήμα 8
Αναπτύξτε και τρέξτε το αντίστοιχο πρόγραμμα για το βήμα 5
Βήμα 9
Αναζητήστε τις κατάλληλες εντολές ώστε να υλοποιήσετε σε assembly
την αντίστοιχη δομή ενός βρόχου do-while. Ακολουθεί υποδειγματικός
βρόχος σε γλώσσα C.
Δρ. Παναγιώτης Παπάζογλου / Εργαστήριο Αρχιτεκτονική Υπολογιστών Ι / Σελίδα
2
x=1
do
{
printf(“my message”);
x++;
}
while (x<=10)
Βήμα 10 Γράψτε στο τετράδιο τον αντίστοιχο ψευδοκώδικα ή κώδικα C για την
υλοποίηση βρόχου while-do.
Βήμα 11 Υλοποιήστε σε assembly το πρόγραμμα του βήματος 10.
Βήμα 12 Αναπτύξτε και τρέξτε πρόγραμμα assembly για ένα βρόχο που
εμφανίζει το όνομά σας 15 φορές βάσει του βήματος 9.
Βήμα 13 Αναπτύξτε και τρέξτε πρόγραμμα assembly για ένα βρόχο που
εμφανίζει το όνομά σας 15 φορές βάσει του βήματος 11.
Δρ. Παναγιώτης Παπάζογλου / Εργαστήριο Αρχιτεκτονική Υπολογιστών Ι / Σελίδα
3