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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Streams Input / Output in C++ George Kastrinis

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MIPS functions and procedures

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

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

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

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

Είσοδος -Έξοδος. Άνοιγµα αρχείου:

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

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

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

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

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

Κεντρική Μονάδα Επεξεργασίας

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

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

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

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

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

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

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

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

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

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

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

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

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

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

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

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

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

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

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

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

Transcript:

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

Μετατροπή 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 2

Αλγόριθμος 3

ASCII 431 ToInteger 431 1. Θέτουμε αρχικά κάποιον καταχωρητή=0 2. Αφαιρούμε 0χ30 από τον 1 ο χαρακτήρα για να μετατραπεί σε αριθμό 3. Πολλαπλασιάζουμε το Result x 10 4. Προσθέτουμε το νέο ψηφίο στο Result 5. Ο επόμενος χαρακτήρας είναι αριθμητικός? ΌΧΙ: τελείωσε η μετατροπή του σε αριθμό! ΝΑΙ: επαναλαμβάνονται τα βήματα 2-5 για τον επόμενο αριθμητικό χαρακτήρα 4 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 σε ακέραιο 5 Ο πιο κάτω κώδικας µετατρέπει το 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 # ελέγχει αν είναι> ascii9 7. blt$s1, 0x30, done # ελέγχει αν είναι< ascii0 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 # τέλος προγράμματος 6

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

Άνοιγμα και Ανάγνωση Αρχείου 8 Άνοιγμα 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 9

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 10

Άνοιγμα Αρχείου από το 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. 11

Διάβασμα Αρχείου από το 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 12

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