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

Σχετικά έγγραφα
Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MIPS functions and procedures

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

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

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

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

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

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

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 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

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

Chapter 3 Αριθμητική Υπολογιστών

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

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

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

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

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

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

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

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

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

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

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

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

Chapter 3. Αριθμητική Υπολογιστών. Έβδομη (7 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον 2o Επαναληπτικό Διαγώνισμα Κεφ: 2 ο 7 ο 8 ο ΗΜΕΡΟΜΗΝΙΑ 21/ 10/ 2017

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

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

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 Χειμερινό Εξάμηνο, 2012 Διδάσκων: Γιώργος Ζάγγουλος Ημερομηνία εξέτασης: 09/02/2012 1. Γράψτε τις εντολές με τις οποίες μπορείτε να ανιχνεύσετε την τιμή του δυαδικού ψηφίου στη θέση 6 της θέσης μνήμης 0x23456791 εάν το λιγότερο σημαντικό ψηφίο βρίσκεται στη θέση 0. lb $t1, 0x23456791 andi $t1, $t1, 0x40 beqz $t1, was_zero 1. Ποιο θα είναι το περιεχόμενο του καταχωρητή αποτελέσματος μετά την εκτέλεση της εντολής srl $t4, $t5, 12 εάν τα περιεχόμενα στους καταχωρητές πριν την εκτέλεση είναι: $t4 = 0x03706Β2Ε και $t5 = 0x00F0Α012; O $t5 >> 12 μπιτς δεξιά και το αποτέλεσμα θα πάει στον $τ4. $τ4= 0x00000F0A 2. Δίνονται τα περιεχόμενα των καταχωρητών ως ακολούθως: $t6 = 0x1Β00F0Α1, $t7 = 0x0Β23706Ε. Εξηγήστε την εντολή andi $t7, $t6, 35 και υπολογίστε τα περιεχόμενα του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα. Το περιεχόμενο του $t6 θα γίνει AND με την τιμή 35 (=0x23) και το αποτέλεσμα θα πάει στον $t7. 1B 00 F0 A1 1010 0001 00 00 00 23 AND 0010 0011 AND --------------- --------------- 00 00 00?? 0010 0001 $t7 = 0x00000021 3. Εξηγήστε την εντολή xor $t5, $t4, $t3 και υπολογίστε τα περιεχόμενα του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα. Δίνονται τα αρχικά περιεχόμενα των καταχωρητών ως ακολούθως: $t3 = 0x00F600Α0, $t4 = 0x7897Β800, $t5 = 0x0000780Α Το περιεχόμενο του $t3 θα γίνει XOR με τo περιεχόμενο του $t4 και το αποτέλεσμα θα πάει στον $t5. 00 F6 00 A0 1111 0110 78 97 B8 00 XOR 1001 0111 XOR --------------- --------------- 78?? B8 A0 0110 0001 $t5 = 0x7861B8A0 4. Εξηγήστε την εντολή div $t5, $t4 εάν τα περιεχόμενα των καταχωρητών πριν την εκτέλεση της είναι ως ακολούθως: $t4 = 0x00000007 και $t5 = 0x0000001b. Ποιο θα είναι το αποτέλεσμα (και το υπόλοιπο) και που θα αποθηκευτεί; (Δώστε συγκεκριμένες τιμές.) Το περιεχόμενο του $t5 θα διαιρεθεί με τo περιεχόμενο του $t4 και το αποτέλεσμα θα πάει στον καταχωρητή lo ενώ το υπόλοιπο από την διαίρεση στον καταχωρητή hi. 0x1Β/0x7 = 27/7 = 3 και υπόλοιπο 6 lo = 3, hi = 6 1

5. Δίνονται οι ακόλουθες εντολές:.data input:.byte 20, 25, 30, 49, 3, 56.text main: li $t3, 0x2 lb $t6, input +1($t3) Δώστε το περιεχόμενο του $t6 (ως 32 μπιτ) μετά την εκτέλεση των πιο πάνω εντολών. Το περιεχόμενο του $t6 θα γίνει ίσο με τον αριθμό της λίστας input που βρίσκεται στη θέση μνήμης input + 1+2 = input + 3. Άρα, $t6 = 49 = 0x31 = 0000 0000 0000 0000 0000 0000 0011 0001 6. Εξηγήστε σε τι χρησιμεύει ο $pc και περιγράψτε τη λειτουργία του κατά τη ροή ενός προγράμματος. O καταχωρητής $PC είναι ο μετρητής προγράμματος. Δείχνει πάντοτε στην θέση όπου είναι αποθηκευμένο το πρώτο byte (LSB) της επόμενης εντολής προς εκτέλεση. Μετά από κάθε προσκόμιση εντολής στην κεντρική μονάδα επεξεργασίας ο $PC αυξάνει αρχικά πάντοτε +4 λόγω του ότι οι εντολές στον ΜΙΠΣ-32 χρειάζονται 4 θέσεις μνήμης για να αποθηκευτούν. 7. Δίνονται τα περιεχόμενα των καταχωρητών και της μνήμης ως ακολούθως: $t0 = 0x50000000 $t1=0xαβ012345 $t2=0xαβcdef01 0x50000000: 0x78 0x50000001: 0x56 0x50000002: 0x12 0x50000003: 0xΒ2 Δείξτε τι θα αλλάξει μετά από κάθε εντολή αν η κάθε εντολή είναι ανεξάρτητη: (15 μονάδες) lb $t3, 0x50000001 $t3 = 0x56 li $t4, 0x50000003 $t4 = 0x50000003 la $t8, 0x50000000 $t8 = 0x50000000 lw $t6, ($t0) $t6 = 0xB2125678 sb $t2, 2($t1) Memory address: 0xAB012347 = 0x01 sw $t1, 0x50000008 Memory address: 0x50000008/9/A/B = 0x45 23 01 AB move $t2, $t1 $t2 = 0xAB012345 8. Πόσα και ποια είναι τα ορίσματα στην πιο κάτω εντολή (γραμμένη στο terminal σε Linux); Εξηγήστε που θα βρείτε την αρχική διεύθυνση του 2ου ορίσματος της πιο κάτω εντολής; Δώστε τις απαραίτητες εντολές με τις οποίες ο προγραμματιστής μπορεί να ελέγξει αν έχει δοθεί ο σωστός αριθμός ορισμάτων και στη συνέχεια να φορτώσει το 1 ο byte του δεύτερου ορίσματος στον $t1, το 2 ο byte του 2 ου ορίσματος στον $t2 και το 3 ο byte του 2 ου ορίσματος στον $t3. Απαντήστε στα πιο πάνω αν η εντολή στο terminal είναι: spim file week5.s 365 472 (15 μονάδες) Τα ορίσματα στην εντολή spim file week5.s 365 472 είναι 3. 1) το όνομα του αρχείου «week5.s» 2) το 365 (ως 3 χαρακτήρες ascii 0x33, 0x36 και 0x35) 3) το 472 (ως 3 χαρακτήρες ascii 0x34, 0x37 και 0x32) 2

Η αρχική διεύθυνση του 2 ου ορίσματος βρίσκεται αποθηκευμένη σε 4 συνεχόμενες θέσεις μνήμης των οποίων η πρώτη είναι αποθηκευμένη στις θέσεις που δείχνει ο καταχωρητής α1+4, α1+5, α1+6 και α1+7. Με την εντολή lw $t0, 4($a1), o $t0 παίρνει την αρχική διεύθυνση του 2 ου ορίσματος. 1. bne $a2, 3, lathos_orismata # αν το πλήθος των ορισμάτων δεν είναι 3, τότε έγινε λάθος 2. lw $t0, 4($a1), 3. lb $t1, 0($t0) 4. lb $t2, 1($t0) 5. lb $t3, 2($t0) 6. lathos_orisma : 9. Γράψτε ένα μικρό πρόγραμμα με το οποίο μπορείτε να αφαιρέσετε το περιεχόμενο της θέσης μνήμης 0x30000001 από το περιεχόμενο της θέσης μνήμης 0x3000000B και αυτό της 0x30000002 από αυτό που βρίσκεται στην διεύθυνση 0x3000000C. Τα 2 αποτελέσματα πρέπει να αποθηκευτούν στις θέσεις μνήμης 0x30000004 και 0x30000005 αντίστοιχα. Η υλοποίηση πρέπει να γίνει με βρόχο επανάληψης (για τις 2 αφαιρέσεις/αποθηκεύσεις) για να πάρετε όλες τις μονάδες. Χωρίς βρόχο, θα δοθούν 10/15 μονάδες αν είναι σωστός ο κώδικας σας. (15 μονάδες) 1. la $t0, 0x30000000 # memory pointer 2. li $t4, 0 # loop counter 3. next_sub: 4. beq $t4, 2, exit_sub # when $t4 = 2, exit loop 5. lb $t1, 11($t0) 6. lb $t2, 1($t0) 7. sub $t3, $t1, $t2 8. sb $t3, 4($t0) 9. addi $t0, $t0, 1 10. addi $t4, $t4, 1 11. b next_sub 12. exit_sub: 3

11. Ένα πρόγραμμα αρχικά ανοίγει κάποιο αρχείο (text file) και αποθηκεύει το περιεχόμενο του στη μνήμη αρχίζοντας από την διεύθυνση με ετικέτα xaraktires (προς τα κάτω με -1). Μετά την αποθήκευση του στη μνήμη το αρχείο κλείνει με κλήση συστήματος 16. Καλείστε λοιπόν να γράψετε ένα πρόγραμμα με την χρήση βρόχου, το οποίο να μετατρέψει το περιεχόμενο του text file (που βρίσκεται τώρα στη μνήμη) σε ακέραιους αριθμούς και να αποθηκεύσει αυτούς τους αριθμούς σε μια λίστα η οποία έχει δηλωθεί ως items:.byte 0, 0, 0, 0, 0, 0. Προσοχή! Αν κάποιος αριθμός δεν μπορεί να αποθηκευτεί σωστά στη λίστα, τότε σε αυτή τη θέση (της λίστας items) θα παραμένει το 0 και θα τυπώνεται ανάλογο μήνυμα. Το περιεχόμενο του αρχείου είναι: 23/4/32/542/3/] (20 μονάδες) 1. la $t0, xaraktires 2. la $t5, items 3. li $t1, 10 4. li $t2, 0 5. atoi : 6. lb $t4, ($t0) 7. beq $t4, 47, save_number 8. beq $t4, 93, exit_atoi 9. sub $t4, $t4, 0x30 10. mul $t2, $t2, $t1 11. add $t2, $t2, $t4 12. addi $t0, $t0, -1 13. b atoi 14. save_num : 15. bgt $t2, 255, num_error 16. sb $t2, ($t5) 17. b skip_error 18. num_error : 19. li $v0, 4 20. la $a0, error1 21. syscall 22. skip_error : 23. addi $t5, $t5, 1 24. addi $t0, $t0, -1 25. li $t2, 0 26. b atoi 27. exit_atoi : 4

5