ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Σχετικά έγγραφα
ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Τρόποι Διευθυνσιοδότησης

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1.

Προτεινόμενες Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 & Αποτελέσματα

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών LAB 1 ( )

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

Παραδείγματα Assembly (Μέρος

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Παραδείγματα Assembly Μέρος Γ

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

Εντολές του MIPS (2)

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Διαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5

Αρχιτεκτονική Υπολογιστών Ι

Τελική Εξέταση, Απαντήσεις/Λύσεις

Αρχιτεκτονική Υπολογιστών

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

Εργαστήριο Αρχιτεκτονική Υπολογιστών Ι ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ. Άσκηση 2 Ποιες οι τιμές των καταχωρητών μετά την εκτέλεση του προγράμματος ;

Συμβόλαιο Μαθήματος. Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213. Χρήση Ηλεκτρονικού Υπολογιστή. Αναμενόμενα Αποτελέσματα Μαθήματος

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

1 η Άσκηση Στην Αρχιτεκτονική Υπολογιστών

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

ΗΜΥ 213. Εργαστήριο Οργάνωσης Η.Y. και Μικροεπεξεργαστών. Ασκήσεις: week3 και week4. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Λύσεις 2 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

ΗΜΥ 213. Εργαστήριο Οργάνωσης Η.Y. και Μικροεπεξεργαστών week 5. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Αρχιτεκτονική Υπολογιστών

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή

ΗΜΥ 213 Εργαστήριο Οργάνωσης Η.Y. και Μικροεπεξεργαστών week3

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit

Συναρτήσεις-Διαδικασίες

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 2

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Αρχιτεκτονικη υπολογιστων

Οργάνωση και Σχεδίαση Υπολογιστών Η Διασύνδεση Υλικού και Λογισμικού, 4 η έκδοση. Σύντομη Εισαγωγή στη χρήση του προσομοιωτή και συμβολομεταφραστή

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών Παρουσίαση Εργαστηρίου 3 ιδάσκων: ρ. ρ. Γιώργος Ζάγγουλος

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 2. Εντολές : Η γλώσσα του υπολογιστή

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 2: Βρόχοι και Επικοινωνία Κονσόλας στον SPIM. Μανόλης Γ.Η.

Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής. Αρχιτεκτονική Υπολογιστών. 3ο Μάθημα

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου

ΗΜΥ 213 Εργαστήριο Οργάνωσης Η.Y.και Μικροεπεξεργαστών

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

ΠΛΕ- 027 Μικροεπεξεργαστές

Ορισµός της Στοίβας Περίληψη H λειτουργία της Στοίβας (γενικά, αλλά και στο QtSpim pim) Η χρησιµότητα της Στοίβας στους Μικροεπεξεργαστές Κλήση συνάρτ

Αρχιτεκτονική υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΡΩΤΗ ΠΡΟΟΔΟΣ ΣΤΗΝ «ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Y»

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

Εισαγωγή στην πληροφορική -4

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer)

ΠΛΕ- 027 Μικροεπεξεργαστές

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις

6. Επιστροφή ελέγχου στο σημείο εκκίνησης

Αρχιτεκτονική Υπολογιστών

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Οργάνωση Υπολογιστών

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

με έμφαση στο MIPS R2000

Transcript:

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213

Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32 Αρχείο Kαταχωρητώνκαι Χάρτης Μνήμης Δομή αρχείου (προγράμματος) - Παράδειγμα Τρόποι Διευθυνσιοδότησης της Μνήμης Οι πρώτες μας εντολές assembly- Παραδείγματα 2 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Αρχιτεκτονική Μικροεπεξεργαστή (MIPS-32) Μνήμη Κεντρική Μονάδα Επεξεργασίας Καταχωρητές Αριθμητική (Λογική) Μονάδα Ειδικά Κυκλώματα A24, A46 Βοηθητική Μονάδα Επεξεργασίας Καταχωρητές ειδικής χρήσης 3 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Χάρτης Μνήμης (MIPS-32) Στοίβα Δηλώσεις και Δεδομένα Εντολές προγράμματος A21 4 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Προγραμματισμός Μικροεπεξεργαστή Οι μικροεπεξεργαστές συνοδεύονται από ένα σύνολο εντολών το οποίο υποστηρίζουν. Συνήθως υπάρχουν μικροδιαφορές στην σύνταξη μιας εντολής μεταξύ κατασκευαστών αλλά και οικογενειών μικροεπεξεργαστών. Ηπιο πάνω γλώσσα είναι γνωστή ως Assembly και στόχο έχει να διευκολύνει τον προγραμματιστή ο οποίος δεν χρειάζεται να προγραμματίζει σε κώδικα μηχανής (machine code)ο οποίος είναι δυσνόητος. Αυτό επιτυγχάνεται με τη χρήση ενός εργαλείου «assembler»το οποίο αντιστοιχεί στην ουσία τις εντολές μας σε κώδικα μηχανής (αποτελούμενο από 0 και 1). 5 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Δομή Αρχείου προσομοίωσης # Στοιχεία προγραμματιστή/κώδικα.data Δηλώσεις (.asciiz,.byte,.word).text main: Αρχικοποιήσεις Εντολές Προγράμματος # Κενή γραμμή για να τρέξει ο κώδικας 6 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Έλεγχος Ροής Προγράμματος Ο καταχωρητής PC (programme counter) ενεργεί ως δείκτης στη διεύθυνση μνήμης όπου είναι αποθηκευμένη η επόμενη προς εκτέλεση εντολή. Η τιμή του PCαυξάνει αρχικάπάντοτε κατά 4! Πως επιτυγάνεται το jump ή το branch στον MIPS-32; Υπολογισμός της νέας διεύθυνσης αναλόγως της εντολής (απόλυτη τιμή ή σχετική τιμή). Αποθήκευση του $pc στον $ra (σε περίπτωση κλήσης συνάρτησης μέσα από το πρόγραμμα) 7 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Οι πρώτες μας εντολές Κλήσεις συστήματος (1, 4, 5, 8, 10) Φόρτωση καταχωρητή(li, lb, lw, la) Μετακίνηση καταχωρητή(move) Αριθμητικές και Λογικές πράξεις (add, sub, or, and, xor, sll, srl) Συγκρίσεις τιμών(beq, beqz, bne) A44, A49-81 8 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Τρόποι Διευθυνσιοδότησης A45 Η διεύθυνση μνήμης μπορεί να δηλωθεί με 6 τρόπους: 1. Περιεχόμενο καταχωρητή: lw $t1, ($t2) 2. Άμεση τιμή: lb $t1, 0x10abcdef 3. Άμεση τιμή + περιεχόμενο καταχωρητή: lw $t1, 28($t2) 4. Διεύθυνση που αντιστοιχεί σε ετικέτα users : lb $t2, users 5. Διεύθ. ετικέτας +/- άμεση τιμή: lb $t3, users+3 6. Διεύθυνση ετικέτας +/-(άμεση τιμή + περιεχόμενο καταχωρητή: lb $t4, spaces-2($t2) 9 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Χάρτης Μνήμης (Παράδειγμα) (Data) Περιεχόμενα Διεύθυνσης Μνήμης 0x1000001B (Data) Περιεχόμενα Διεύθυνσης Μνήμης 0x1000000Α ΑΒ Ε3 Β1 33 99 77 21 34 88 66 32 56 ΒΒ ΕΕ 55 ΑΑ 10 20 30 40 54 2Α 3Β 22 ΕΑ ΑΒ 23 11 ΔΙΕΥΘΥΝΣΗ 0x10000018 0x10000014 0x10000010 0x1000000C 0x10000008 0x10000004 0x10000000 10 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Εντολές Load..18..14..10..0C Έστω ότι $t6 =0x10000004, σκεφτείτε τί αλλάζει πιο κάτω: 1. lb $t1, 2($t6) 2. lw $t2, 0x1000000C 3. lw $t3, 4($t6) 4. lw $t4, 12($t6) 5. la $t5, 0x10000014 $t1=0x0000002a = 2A $t2=0xbbee55aa $t3=0x10203040 $t4=0x88663256 $t5=0x10000014..08..04..00 11 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Εντολές Store (συνέχεια από Load) Από Load: $t3=0x10203040, $t4=0x88663256, $t5=0x10000014, $t6 = 0x10000004 1. sw $t3, 0x10000004 2. sw $t4, 16($t6) 3. sb $t5, 0x10000003 0x10000004/5/6/7= 40 302010 0x10000014/5/6/7= 56 326688 0x10000003 = 14 Μνήμη: Πριν και Μετά από την εκτέλεση των 3 εντολών Store 88 66 32 56 10 20 30 40 14 ΔΙΕΥΘΥΝΣΗ 0x10000018 0x10000014 0x10000010 0x1000000C 0x10000008 0x10000004 0x10000000 12 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Παράδειγμα Πρόσθεσης 2 Καταχωρητών και Εκτύπωσης # your details with a description of the code.data result_is:.asciiz The result is:\n.text main: li $t1, 10 # load t1 with 10 li $t2, 7 # load t2 with 7 add $t3, $t1, $t2 # t3= t1 +t2 li $v0, 4 la $a0, result_is # syscall to print string syscall li $v0, 1 move $a0, $t3 # syscall to print an integer syscall li $v0, 10 syscall # syscall to exit programme 13 # press enter to keep SPIM HAPPY! Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Παραδείγματα εντολών li $t1, 0x10 # Register $t1 = 16 = 10hex lb $t2, 0x12345678 # Reg. $t2=περιεχόμενα μνήμης (0Χ12345678) lw $t2, 0x12345678 #$t2=περιεχόμενα μνήμης (0Χ12345678/9/a/b) la $a0, welcome # Register $a0 = address of welcome message move $t4, $v0 #Register $t4 = Register $v0 add $t3, $zero, $t2 #Register $t3 = Register $t2 + 0 addi $t3, $t4, 1 #Register $t3 = Register $t4 + 1 ori $t3, $t4, 0x12 #Register $t3 = Reg. $t4 OR0X 00010010 andi $t5, $t6, 255 #Register $t5 = Reg. $t6 AND0X 1111 1111 14 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Παραδείγματα εντολών xor $t6, $t6, $t6 # Register $t6 = Reg. $t6 XORReg. $t6 = 0 sll $t7, $t6, 3 #Register $t7 = Reg. $t6 <<< 3 = $t6 * 8 srl $t5, $t3, 5 #Register $t5 = Reg. $t3 >>> 5 = $t3 / 32 beq $t6, $t5, finals # If Reg $t6 = $t5, PC = address finals bne $t7, $t6, again #If Reg $t7 $t6, PC = address again beqz $t8, exit_now #If Reg $t8 = 0, PC = address exit_now bgt $t6, $t5, loop1 #If Reg $t6 > $t5, PC = address loop1 b step2 j step2 # PC = address step2 (πιο γρήγορη εντολή) # PC = address step2 (χωρίς περιορισμό) 15 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Δηλώσεις Μεταβλητών 1..data 2. users:.byte1, 2, 3, 4, 5, 6 3. time:.word20, 30, 40, 50 4. results:.space 1000 5..text 6. main 16 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Μετάβαση υπό προϋποθέσεις Branch if equal beq rs, rt, label Branch if zero beqz rs, label Branch if not equal bne rs, rt, label Branch if greater bgt rs, rt, label Ο rt μπορεί να αντικατασταθεί με αριθμό! Ποια η διαφορά μεταξύ bgtκαι bgtu; Μετάβαση χωρίς προϋποθέσεις μπορεί να γίνει με τις εντολές Jump και Branch Ποια η διαφορά μεταξύ Jump και Branch; 17 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Άσκηση 1 Γράψτε ένα μικρό πρόγραμμα (1-3 εντολές) με το οποίο μπορείτε να ανιχνεύσετε την τιμή του δυαδικού ψηφίου στη θέση 7 της θέσης μνήμης 0Χ23450009 εάν το λιγότερο σημαντικό ψηφίο είναι αυτό που βρίσκεται στη θέση 0. lb $t1, 0x23450009 andi $t1, $t1, 0x80 # 0x80 = 1000 0000 beqz $t1, bit_was0 # if bit was 1 συνεχίζει εδώ το πρόγραμμα # if bit was 0 θα συνεχίσει στο bit_was0: 18 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Άσκηση 2 Γράψτε με 2 διαφορετικούς τρόπους (addressing modes) μικρά προγράμματα (1-3 εντολές το καθένα) που να φορτώνουν μόνοτο περιεχόμενο της θέσης μνήμης 0Χ18000081 στον καταχωρητή $t1. 1. lb $t1, 0Χ18000081 2. la $t2, 0Χ18000081 lb $t1, 0($t2) 3. la $t3, 0Χ1800007F lb $t1, 2($t3) Ίδιος τρόπος 19 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Άσκηση 3 Συμπληρώστε τις εντολές srl, και and, έτσι ώστε η κάθε εντολή να μηδενίζει τον καταχωρητή $t1. srl $t1 $t1, 31 srl $t1 $t1, 1 Χρειάζονται 2 εντολές and $t1, $t1, $zero A56 20 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Άσκηση 4 Εξηγήστε την εντολή srl$t5, $t4, 8 εάν τα περιεχόμενα των καταχωρητών πριν την εκτέλεση της είναι ως ακολούθως: $t4 = 00F0Α012 και $t5 = 03706 Β2Ε. Ποιο θα είναι το αποτέλεσμα; Κάνει δεξιά ολίσθηση κατά 8 μπιτς στο περιεχόμενο του $t4 και αποθηκεύει το αποτέλεσμα στον $t5. 00F0A012 >> 8 bits, άρα 2 ψηφία Hex: $t5 = 0000F0A0 21 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Άσκηση 5 Δίνονται τα περιεχόμενα των καταχωρητών ως ακολούθως: $t6 = 1200F0Α0 και $t7 = 0Β23706Ε Εξηγήστε την εντολή andi$t6, $t7, 0x17και υπολογίστε τα περιεχόμενα του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα. Λογική πράξη and μεταξύ του περιεχομένου του $t7 και της τιμής 0x17. Αποθήκευση του αποτελέσματος στον $t6. 0Β23706Ε 01101110 0000 0017 andόπου ΧΧ είναι: 00010111 and 000000ΧΧ 00000110 Άρα $t6 = 0x00000006 22 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Άσκηση 6 Εξηγήστε την εντολή xor$t3, $t4, $t5 και υπολογίστε τα περιεχόμενα του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμααν αρχικά οι καταχωρητές: $t3 = 12F400Α0, $t4 = 7890Β800, $t5 = 00007800. Λογική πράξη xor ανα μπίτ. Αν μια είσοδος της xor είναι μηδέν, τότε η έξοδος = με την άλλη είσοδο. Άρα με xorμεταξύ $t4 και $t5, το αποτέλεσμα θα είναι: 7890??00, όπου??είναι οι έξοδοι 8 πυλών xorμε εισόδους Β8και 78 αντίστοιχα. Αυτές δίνουν C0, άρα ολόκληρο το αποτέλεσμα (32 μπιτς) που θα αποθηκευτεί στον $t3 θα είναι: 7890 C000 23 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Άσκηση 7 Εάν οι θέσεις μνήμης 0Χ34560000 έως 0Χ34560009 έχουν αποθηκευμένες τις τιμές (HEX)Α0, Α1, Α2, Α3, Α4, Α5, Β6, Β7, Β8 και Β9 αντίστοιχα, υπολογίστε τα περιεχόμενα των καταχωρητών μετά την εκτέλεση των εντολών: lb $t5, 0X34560007 lw $t7, 0X34560004 $t5 = 00 00 00 B7 $t7 =B7 B6 A5 A4 24 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Άσκηση 8 Ποιες διευθύνσεις μνήμης θα αλλάξουν περιεχόμενο μετά την εκτέλεση των πιο κάτω εντολών; 1. sb $t8, 0X20000004 2. sw$t8, 0X20000008 Καθορίστε επίσης το νέο τους περιεχόμενο σε δεκαεξαδική μορφή εάν: $t8 = 0Χa12bc34d 1. Η θέση μνήμης 0X20000004θα γίνει 4d 2.Οι θέσεις μνήμης 0X20000008, 0X20000009, 0X2000000Α, και 0X2000000Β, θα γίνουν 4d, c3, 2b, και a1 αντίστοιχα 25 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Μαθησιακοί στόχοι 1 ης Εβδομάδας 1. Αρχιτεκτονική MIPS-32 (CPU, Registers, Memory, Co-proc.) 2. Προσομοιωτής QtSpim 9.1.17 (Εγκατάσταση προγράμματος, Φόρτωση και τρέξιμο κώδικα) 3. Assembly Languageκαι Κώδικας Μηχανής (Δομή αρχείου προσομοίωσης και κλήσεις συστήματος) 4. Έλεγχος Ροής Προγράμματος ($pc, $ra) 5. Εισαγωγή στην assembly 6. Τρόποι Διευθυνσιοδότησης της Μνήμης 26 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.