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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

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

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

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

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

Streams Input / Output in C++ George Kastrinis

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

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

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

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

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

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

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

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

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

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

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

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

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

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

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

Εργαστήριο 2. Εαρινό Εξάμηνο Εντολές για είσοδο ακεραίων αριθμών από την κονσόλα:

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

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

Υποστήριξη διαδικασιών στο υλικό των υπολογιστών

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

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

MIPS functions and procedures

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 5 - Editor

Τέτοιες λειτουργίες γίνονται διαμέσου του

Θέµατα Φεβρουαρίου

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ. A. Μετατροπή αριθμών 1. Μετατροπή αριθμών από δεκαδικό σε δυαδικό σύστημα αρίθμησης

Εργαστήριο 5. Εαρινό Εξάμηνο

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

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

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

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

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

Εργαστήριο 9: Αρχεία

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Διακλαδώσεις. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1. Εργαστήριο 6. Εαρινό Εξάμηνο

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

Transcript:

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

Ορίσματα στο QtSpim (set parameters in QtSpim) Τα ορίσματα στο QtSPIMμπορούν να δοθούν από την επιλογή Run Parameters που βρίσκεται στο μενού simulator στον προσομοιωτή QtSpim. Το αποτέλεσμα της πιο πάνω ενέργειας είναι η αλλαγή στην τιμή του καταχωρητή$a0, ο οποίος θα πάρει το πλήθος των ορισμάτων που δώσαμε (διαχωρισμένα μεταξύ τους με κενό). Μέσω του καταχωρητή$a1, μπορούμε να βρούμε τη διεύθυνση στην οποία έχει αποθηκευτεί το κάθε όρισμα (ως 32-μπιτος αριθμός) $a0 = 2έχει τοπλήθος ορισμάτων $a1 = δείκτης μνήμης,έχει την αρχική διεύθυνση όπου αποθηκεύτηκε το 1 ο όρισμα (όνομα του αρχείου) 4($a1) =δείκτης μνήμηςέχει την αρχική διεύθυνση όπου αποθηκεύτηκε o asciiκώδικας του 2 ου ορίσματος (1 ο όρισμα που δόθηκε στο Run Parameters) π.χ. για 5, αποθηκεύεται 0x35 Πως μπορούμε να διαβάσουμε την τιμή που δόθηκε από το Run parameters ως αριθμό(και όχι ως κώδικα ascii); 2

Μετατροπή ASCII σε Δεκαδικό αριθμό Οι χαρακτήρες 431 είναι αποθηκευμένοιστη μνήμη ως: 0x34,0x33και0x31. Με ποιο τρόπο μπορεί να μετατραπεί αυτή η ακολουθία χαρακτήρων σε αριθμό 431; Το 431 ισούται με 4*100 + 3*10 + 1 1. Πως μπορώ να καταλήξω στο 400? Πολλαπλασιάζοντας το 4δύο φορές με το 10(4x10x10) 2. Πως θα καταλήξω στο 30? Πολλαπλασιάζοντας το 3μία φορά με το 10(3x10) 3. Πως θα καταλήξω στο 1? Πολλαπλασιάζοντας το 1μηδένφορές με το 10 3

Αλγόριθμος 4

ASCII 431 ToInteger 431 1. Θέτουμε αρχικά κάποιον καταχωρητή=0 2. Αφαιρούμε 0χ30 από τον 1 ο χαρακτήρα για να μετατραπεί σε αριθμό 3. Πολλαπλασιάζουμε το Result x 10 4. Προσθέτουμε το νέο ψηφίο στο Result 5. Ο επόμενος χαρακτήρας είναι αριθμητικός? ΌΧΙ: τελείωσε η μετατροπή του σε αριθμό! ΝΑΙ: επαναλαμβάνονται τα βήματα 2-5 για τον επόμενο αριθμητικό χαρακτήρα 5 Reg = 4 Reg = 0 0x34 0x30 = 0x4 Reg = Reg x 10 = 0 Reg = Reg + 4 = 4 2. 0x33 0x30 = 0x3 = 3 3. Reg = Reg x 10 = 4 x 10 =40 4. Reg = Reg + 3= 43 Reg = 43 2. 0x31 0x30 = 0x1 = 1 3. Reg = Reg x 10 = 43 x 10 = 430 4. Reg = Reg + 1 = 431

Μετατροπή χαρακτήρων ASCII σε ακέραιο 6 Ο πιο κάτω κώδικας μετατρέπει το 2 ο όρισμα (δηλ. το 1 ο που εισάγεται από τo Run Parameters του QtSpim) σε integer και τον εκτυπώνει στην οθόνη. main: 1. bne $a0, 2, error1 # έλεγχος αριθμού ορισμάτων 2. li $t3, 10 # αρχικοποίηση $t3 με δέκα 3. move $s0, $zero # αρχικοποίηση $s0 με μηδέν 4. lw $t0, 4($a1) # η θέση μνήμης ($α1) + 4 κρατά το LS Byte # της διεύθυνσης του 2 ου ορίσματος atoi: 5. lb $s1, ($t0) # $s1 παίρνει το σημαντικότερο ψηφίο 6. bgt $s1, 0x39, done # ελέγχει αν είναι> ascii 9 7. blt $s1, 0x30, done # ελέγχει αν είναι< ascii 0 8. sub $s1, $s1, 0x30 # αφαιρεί 0x30(48)για να βρει την τιμή του 9. mul $s0, $s0, $t3 # πολλαπλασιάζει με τo 10 10. add $s0, $s0, $s1 # προσθέτει το νέο ψηφίο 11. addi $t0, $t0, 1 # αυξάνει το δείκτη της μνήμης 12. b atoi # συνεχίζει από την αρχή της atoi

Μετατροπή χαρακτήρων ASCII σε ακέραιο error1: 13. li $v0, 4 14. la $a0, invalid_arg # εκτύπωση του μηνύματος 15. syscall 16. b exit_p done: 17. li $v0, 1 18. move $a0, $s0 # εκτύπωση του αριθμού (integer) 19. syscall exit_p: 20. li $v0, 10 21. syscall # τέλος προγράμματος 7

Διάβασμα Αρχείου από το SPIM Οι διαδικασίες ου αφορούν ροσ έλαση αρχείων γίνονται με τηνβοήθειαsystem calls. ΠΡΟΣΟΧΗ! Στο εγχειρίδιο του SPIM ου έχετε, λανθασμένα αναφέρειότιοιτιμέςε ιστροφής(result) τωνsystem calls ροσ έλασης αρχείων βρίσκονται στον $a0. Στην ραγματικότητα οι τιμές αυτές το οθετούνται μετά την κλήση τους στον $v0. 8

Άνοιγμα και Ανάγνωση Αρχείου 9 Άνοιγμα A44 $v0 = 13 $a0 = full path του αρχείου (string) $a1 = flags, $a2 = UNIX octal file mode (0644 for rw-r--r--) When done then >>> $v0 = file descriptor (not $a0) Ανάγνωση $v0 = 14 $a0 = file descriptor, $a1 = buffer address, $a2 = amount of bytes to read When done then >>>>> $v0 = amount of data in buffer from file (-1 = error, 0 = end of file)

Εγγραφή και Κλείσιμο Αρχείου Εγγραφή $v0 = 15 A44 $a0 = file descriptor, $a1 = buffer address, $a2 = amount to write in bytes When done then >>>>>> $v0 = amount of data in buffer to file (-1 = error, 0 = end of file) Κλείσιμο $v0 = 16 $a0 = file descriptor 10

Flags and Modes Flags Read = 0x0, Write = 0x1, Read/Write = 0x2 Modes 0x0(User)(Group)(Other) Σε κάθε NIBBLE (4 bits) χρησιμοποιούμε τα πρώτα LSBitsγια να «Σημειώσουμε» με 1 την ιδιότητα. Στην πρώτη θέση του NIBBLEορίζεται η «Εκτέλεση», ακολούθως η «Εγγραφή» και ακολούθως η «Ανάγνωση». Αν δηλαδή για τον ιδιοκτήτη του αρχείου θέλουμε ανάγνωση-εγγραφή αλλά ΌΧΙ εκτέλεση και για το GROUP και ΟTHERS θέλουμε μόνο ανάγνωση τότε: li $a2 0x0644 δηλαδή $a2= 0000..0000 0110 0100 0100 11

Άνοιγμα Αρχείου από το SPIM # ====== OPEN.txt FILE =========== 1. li $v0, 13 #syscall 13 to open file 2. la $a0, filename #pass to a0 the filename 3. li $a1, 0 #flags=0 (read only) 4. li $a2,0400 #mode (user only, read only ) 5. syscall 6. beq $v0, -1, no_file#check if file has open # flags: 0=read, 1=write, 2=read/write #mode (permissions): 7=111 = read/write/execute # ==== READ & SAVE txt file context in memory == 7. move $a0, $v0 #a0 = file descriptor 8. la $a1, static_mem#a1 = buffer (memory pointer) 9. li $a2, 1 #a2 = number of bytes to be read (length) #a2 = 1 in order to read character by char. 12

Διάβασμα Αρχείου από το SPIM next_charac: 10. li $v0, 14 # SYSCALL 14 TO READ FILE 11. syscall 12. beq $v0, 0, read_error # IF $v0=0, ERROR 13. lb $s2, ($a1) # LOAD 1 BYTE FROM MEMORY ($a1) 14. beq $s2, 0x23, close_file # CHECK FOR #" TO CLOSE FILE 15. addi $a1, $a1, 1 # MOVE POINTER TO MEMORY 16. addi $t3, $t3, 1 # TEXT FILE LENGTH COUNTER 17. b next_charac # GO BACK TO READ NEW CHARACTER # =========== CLOSE TEXT FILE =========== close_file: 18. li $v0, 16 # SYSCALL 16 TO CLOSE FILE 19. syscall 13

Μαθησιακοί Στόχοι Εργαστηριακών ασκήσεων week3 και week4 Χρήση Ορισμάτων στο QtSpim Μετατροπή χαρακτήρων ASCII σε αριθμό Άνοιγμα αρχείου (.txt) από το QtSpim Διάβασμα αρχείου και μεταφορά του περιεχομένου στη μνήμη. Επεξεργασία περιεχομένου (χαρακτήρες/ αριθμοί) 14