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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

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

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

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

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

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

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

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

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

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

Streams Input / Output in C++ George Kastrinis

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

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

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

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

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

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

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

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

MIPS functions and procedures

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

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

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

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός

Διαδικασιακός Προγραμματισμός

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Διάλεξη 5: Δείκτες και Συναρτήσεις

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

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

HY150a Φροντιστήριο 3 24/11/2017

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

S, (5, -3, 34, -23, 7) ( *, _

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections)

File Management και I/O στο UNIX

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

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

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

Διάλεξη 18η: Διαχείρηση Αρχείων

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

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου ( ) gepap@aueb.gr

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

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

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

ιαφάνειες παρουσίασης #6 (β)

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

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Προγραμματισμός συστημάτων UNIX/POSIX

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Transcript:

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & Άνοιγμα αρχείου μέσα από τo SPIM, διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη (Διάλεξη 3) 1

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

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

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

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

Διάβασμα Αρχείου από το SPIM next_charac: 10. li $v0, 14 # SYSCALL 14 TO READ FILE 11. syscall 12. beq $a0, 0, read_error # IF $a0=0, ERROR 13. lb $s2, ($a1) # LOAD 1 BYTE FROM MEMORY ($a1) 14. beq $s2, 59, 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 6

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