Λύσεις 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. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών LAB 1 ( )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;

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

MIPS functions and procedures

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (5 ο εξάμηνο) ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (ΦΘΙΝΟΠΩΡΟ 2007) ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ 30 ΛΕΠΤΑ

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

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

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

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 Χειμερινό Εξάμηνο, 2012 Διδάσκων: Γιώργος Ζάγγουλος Ημερομηνία εξέτασης: 09/02/2012 1. Δίνονται τα περιεχόμενα των καταχωρητών ως ακολούθως: $t6 = 0x1Β00F0Α1, $t7 = 0x0Β23706Ε. Εξηγήστε την εντολή andi $t6, $t7, 0xC5 και υπολογίστε τα περιεχόμενα του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα. Το περιεχόμενο του $t7 θα γίνει AND με την τιμή 0xC5 και το αποτέλεσμα θα πάει στον $t6. 0B 23 70 6E 0110 1110 00 00 00 C5 AND 1100 0101 AND --------------- --------------- 00 00 00?? 0100 0100 $t7 = 0x00000044 2. Εξηγήστε την εντολή xor $t3, $t4, $t5 και υπολογίστε τα περιεχόμενα του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα. Δίνονται τα αρχικά περιεχόμενα των καταχωρητών ως ακολούθως: $t3 = 0x00F600Α0, $t4 = 0x7897Β800, $t5 = 0x0000780Α Το περιεχόμενο του $t4 θα γίνει XOR με τo περιεχόμενο του $t5 και το αποτέλεσμα θα πάει στον $t3. 78 97 B8 00 1011 1000 00 00 78 0Α XOR 0111 1000 XOR --------------- --------------- 78 97?? 0A 1100 0000 $t3 = 0x7897C00A 3. Εξηγήστε την εντολή div $t5, $t4 εάν τα περιεχόμενα των καταχωρητών πριν την εκτέλεση της είναι ως ακολούθως: $t4 = 0x00000003 και $t5 = 0x0000001C. Ποιο θα είναι το αποτέλεσμα (και το υπόλοιπο) και που θα αποθηκευτεί; (Δώστε συγκεκριμένες τιμές.) Το περιεχόμενο του $t5 θα διαιρεθεί με τo περιεχόμενο του $t4 και το αποτέλεσμα θα πάει στον καταχωρητή lo ενώ το υπόλοιπο από την διαίρεση στον καταχωρητή hi. 0x1C/0x3 = 28/3 = 9 και υπόλοιπο 1 lo = 9, hi = 1 4. Γράψτε τις εντολές με τις οποίες μπορείτε να ανιχνεύσετε την τιμή του δυαδικού ψηφίου στη θέση 5 της θέσης μνήμης 0x12345678 εάν το λιγότερο σημαντικό ψηφίο βρίσκεται στη θέση 0. lb $t1, 0x12345678 andi $t1, $t1, 0x20 beqz $t1, was_zero 5. Ποιο θα είναι το περιεχόμενο του καταχωρητή αποτελέσματος μετά την εκτέλεση της εντολής sll $t5, $t4, 16 εάν τα περιεχόμενα στους καταχωρητές πριν την εκτέλεση είναι: $t4 = 0x03706Β2Ε και $t5 = 0x00F0Α012; O $t4 << 16 μπιτς αριστερά και το αποτέλεσμα θα πάει στον $t5. $t5= 0x6Β2Ε0000 1

6. Δίνονται οι ακόλουθες εντολές:.data input:.byte 20, 25, 30, 49, 3, 56.text main: li $t3, 0 lb $t5, input +2($t3) Δώστε το περιεχόμενο του $t5 (ως 32 μπιτ) μετά την εκτέλεση των πιο πάνω εντολών. Το περιεχόμενο του $t5 θα γίνει ίσο με τον αριθμό της λίστας input που βρίσκεται στη θέση μνήμης input + 2+0 = input + 2. Άρα, $t5 = 30 = 0x1E = 0000 0000 0000 0000 0000 0000 0001 1110 7. Εξηγήστε σε τι χρησιμεύει ο $pc και περιγράψτε τη λειτουργία του κατά τη ροή ενός προγράμματος. O καταχωρητής $PC είναι ο μετρητής προγράμματος. Δείχνει πάντοτε στην θέση όπου είναι αποθηκευμένο το πρώτο byte (LSB) της επόμενης εντολής προς εκτέλεση. Μετά από κάθε προσκόμιση εντολής στην κεντρική μονάδα επεξεργασίας ο $PC αυξάνει αρχικά πάντοτε +4 λόγω του ότι οι εντολές στον ΜΙΠΣ-32 χρειάζονται 4 θέσεις μνήμης για να αποθηκευτούν. 8. Δίνονται τα περιεχόμενα των καταχωρητών και της μνήμης ως ακολούθως: $t0 = 0x50000000 $t1=0xαβ012345 $t2=0xαβcdef01 0x50000000: 0x8A 0x50000001: 0x65 0x50000002: 0x21 0x50000003: 0x3Β Δείξτε τι θα αλλάξει μετά από κάθε εντολή αν η κάθε εντολή εκτελείται ανεξάρτητα: (15 μονάδες) lb $t3, 0x50000003 li $t4, 0x50000001 la $t8, 0x50000000 lw $t5, ($t0) sb $t0, 5($t1) sw $t1, 0x60000002 move $t2, $t1 $t3 = 0x3B $t4 = 0x50000001 $t8 = 0x50000000 $t5 = 0x3B21658A Memory address: 0xAB01234A = 0x00 Memory address: 0x60000002/3/4/5 = 0x45 23 01 AB $t2 = 0xAB012345 2

9. Πόσα και ποια είναι τα ορίσματα στην πιο κάτω εντολή (γραμμένη στο terminal σε Linux); Εξηγήστε που θα βρείτε την αρχική διεύθυνση του 2ου ορίσματος της πιο κάτω εντολής; Δώστε τις απαραίτητες εντολές με τις οποίες ο προγραμματιστής μπορεί να ελέγξει αν έχει δοθεί ο σωστός αριθμός ορισμάτων και στη συνέχεια να φορτώσει το 1 ο byte του δεύτερου ορίσματος στον $t1, το 2 ο byte του 2 ου ορίσματος στον $t2 και το 3 ο byte του 2 ου ορίσματος στον $t3. Απαντήστε στα πιο πάνω αν η εντολή στο terminal είναι: spim file week5.s 563 472 (15 μονάδες) Τα ορίσματα στην εντολή spim file week5.s 365 472 είναι 3. 1) το όνομα του αρχείου «week5.s» 2) το 365 (ως 3 χαρακτήρες ascii 0x35, 0x36 και 0x33) 3) το 472 (ως 3 χαρακτήρες ascii 0x34, 0x37 και 0x32) Η αρχική διεύθυνση του 2 ου ορίσματος βρίσκεται αποθηκευμένη σε 4 συνεχόμενες θέσεις μνήμης των οποίων η πρώτη είναι αποθηκευμένη στις θέσεις που δείχνει ο καταχωρητής α1+4, α1+5, α1+6 και α1+7. Με την εντολή lw $t0, 4($a1), o $t0 παίρνει την αρχική διεύθυνση του 2 ου ορίσματος. 1. bne $a0, 3, lathos_orismata # αν το πλήθος των ορισμάτων δεν είναι 3, τότε έγινε λάθος 2. lw $t0, 4($a1), 3. lb $t1, 0($t0) 4. lb $t2, 1($t0) 5. lb $t3, 2($t0) lathos_orisma : 10. Γράψτε ένα μικρό πρόγραμμα με το οποίο μπορείτε να αφαιρέσετε το περιεχόμενο της θέσης μνήμης 0x30000000 από το περιεχόμενο της θέσης μνήμης 0x3000000Α και αυτό της 0x30000001 από αυτό που βρίσκεται στην διεύθυνση 0x3000000Β. Τα 2 αποτελέσματα πρέπει να αποθηκευτούν στις θέσεις μνήμης 0x30000005 και 0x30000006 αντίστοιχα. Η υλοποίηση πρέπει να γίνει με βρόχο επανάληψης (για τις 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, 10($t0) 6. lb $t2, ($t0) 7. sub $t3, $t1, $t2 8. sb $t3, 5($t0) 9. addi $t0, $t0, 1 10. addi $t4, $t4, 1 11. b next_sub 12. exit_sub: 3

13. Ένα πρόγραμμα αρχικά ανοίγει κάποιο αρχείο (text file) και αποθηκεύει το περιεχόμενο του στη μνήμη αρχίζοντας από την διεύθυνση με ετικέτα characters (προς τα κάτω με -1). Μετά την αποθήκευση του στη μνήμη, το αρχείο κλείνει με κλήση συστήματος 16. Καλείστε λοιπόν να γράψετε ένα πρόγραμμα με την χρήση βρόχου, το οποίο να μετατρέψει το περιεχόμενο του text file (που βρίσκεται τώρα στη μνήμη) σε ακέραιους αριθμούς και να αποθηκεύσει αυτούς τους αριθμούς σε μια λίστα η οποία έχει δηλωθεί ως arithmoi:.byte 0, 0, 0, 0, 0, 0. Προσοχή! Αν κάποιος αριθμός δεν μπορεί να αποθηκευτεί σωστά στη λίστα, τότε σε αυτή τη θέση (της λίστας arithmoi) θα παραμένει το 0 και θα τυπώνεται ανάλογο μήνυμα. Το περιεχόμενο του αρχείου είναι: 56/8/32/462/9/] (20 μονάδες) 1. la $t0, characters 2. la $t5, arithmoi 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