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

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

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

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

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

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσμία: 17/1/14, 22:00

Προγραμματισμός Ι Εργαστήριο 5ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Υπολογισμός - Εντολές Επανάληψης

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

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

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

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 13/1/13, 22:00

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 22/12/2016, 21:00

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

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

Προγραµµατισµός Ι Εργαστήριο 9ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

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

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

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

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

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 22/12/10, 23:59

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

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

Φροντιστήριο. Παραγωγή τελικού κώδικα. Παραγωγή τελικού κώδικα

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

Εισαγωγή στον Προγραμματισμό

Λειτουργικά Συστήματα

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

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

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

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Λύσεις για τις ασκήσεις του lab5

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

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

Εισαγωγή στον Προγραμματισμό

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

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

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

lab14grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ

ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Υπολογισμός - Εντολές Ελέγχου

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

4. Επιλογή και Επανάληψη

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσμία: Τετάρτη 9/11/2016, 21:00

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Transcript:

Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1 Εργαστήριο 2 Εαρινό Εξάμηνο 2012-2013 Στό χόι τόυ εργαστηρι όυ Εντολές εισόδου-εξόδου Χρήση συνθηκών σε δομές επιλογής Χρήση συνθηκών σε δομές επανάληψης Εντόλε ς εισό δόυ-εξό δόυ Εντολές για είσοδο ακεραίων αριθμών από την κονσόλα: li $v0, 5 # κωδικός 5 από τα syscall στον $v0 syscall move $t0, $v0 # καταχώριση της τιμής που εισάγαμε, στον # register $t0 Εντολές για εμφάνιση ακεραίου στην κονσόλα: li $v0, 1 # pseudo-instruction για addi $v0, $0, 1 # κωδικός 1 από τα syscall στον $v0 add $a0, $t0, $0 # o $t0 έχει την τιμή που θέλουμε να # εμφανίσουμε και το φορτώνουμε στον $a0 # σαν παράμετρο syscall Εντολές για εμφάνιση μηνυμάτων στην κονσόλα: Για να τυπώσετε ένα string στην οθόνη θα πρέπει να το δηλώσετε πρώτα στον τμήμα.data του προγράμματός σας ως εξής:

Αρχικά πρέπει να ορίσετε το string στην περιοχή της μνήμης με ένα label (στην περίπτωση του παραδείγματος String_name1) για να μπορείτε να έχετε πρόσβαση με χρήση της διεύθυνσης του..data String_name1:.asciiz "μήνυμα" Σε περίπτωση που θέλετε να αλλάξετε γραμμή (για να είναι πιο ευανάγνωστη η εκτέλεση) πρέπει να ορίσετε ένα string αλλαγής γραμμής. String_name2:.asciiz "\n" Για να τυπώσετε το string στην κονσόλα πρέπει να γράψετε τις εξής εντολές. li $v0, 4 # κωδικός 4 από τα syscall στον $v0 la $a0, String_name1 # φορτώνουμε στον $a0 την διεύθυνση # του String που θα εκτυπώσουμε syscall Οι εντολές syscall είναι κλήσεις λειτουργιών του συστήματος. Με αυτές μπορείτε εκτός από I/O λειτουργίες να τερματίσετε ένα πρόγραμμα (syscall με παράμετρο $v0=10) ή να ζητήσετε δυναμικά μνήμη (αντίστοιχη εντολή malloc της C). Μπορείτε να βρείτε όλες τις λειτουργίες στο Help menu του MARS. Υλόπόι ηση δόμών ε λεγχόυ ρόη ς πρόγρα μματός Εντολές έλεγχου ροής είναι το σύνολο των εντολών το οποίο αλλάζουν την ροή εκτέλεσης προγράμματος. Κανονικά η σειρά εκτέλεσης των εντολών είναι μετά από κάθε εντολή να εκτελείται η αμέσως από κάτω. Υπάρχουν όμως εντολές οι οποίες αλλάζουν είτε στατικά (χωρίς συνθήκη) είτε δυναμικά (με συνθήκη) την ροή εκτέλεσης των εντολών. Παράδειγμα ελέγχου ροής, μετατροπή από C σε assembly: Παράδειγμα 1 - if if( x = = 0){ // Case true else { // Case false. // Next instruction Αντιστοιχίζουμε την μεταβλητή x στον καταχωρητή $t3

bnez $t3,else j endif else: endif: # case true # case false # next instruction Παράδειγμα 2 - for for( i = 0 ; i < 10 ; i++ ) { // code // next instruction Αντιστοιχίζουμε την μεταβλητή i στον καταχωρητή $t3 και αποθηκεύουμε το όριο του loop (εδώ 10) στον καταχωρητή $t4. li $t3,0 # add $t3, $0, $0 li $t4, 10 # addi $t4,$0,10 for: bge $t3,$t4,endfor # code addi $t3,$t3,1 j for endfor: # next instruction Παράδειγμα 3 - multiple if if( x > 0 && x < 10) { // code // next instruction Αντιστοιχίζουμε την μεταβλητή x στον καταχωρητή $t3 και αποθηκεύουμε την σταθερά με την οποία θα συγκρίνουμε (εδώ 10) στον καταχωρητή $t4. li $t4,10 blez $t3,endif bge $t3,$t4,endif

# code endif : # next instruction β τρόπος: addi $t4,$0,10 bgtz $t3,cond2 # if(x > 0) j endif cond2: blt $t3,$t4,is_true # if(x < 10) j endif is_true: #code endif: # next instruction Το πλήθος των εντολών είναι σχετικά μεγάλο αλλά η λειτουργία τους είναι πολύ απλή. Συνιστάται κατά τον προγραμματισμό σε assembly να κάνετε χρήση του instruction set. Μπορείτε επίσης να χρησιμοποιήσετε και ψευδο-εντολές σαν να ήταν κανονικές εντολές (για παράδειγμα li, la, bgez, blt κοκ). Η αποστήθιση όλων των εντολών δεν είναι ζητούμενο σε αυτό το εργαστήριο ωστόσο πρέπει να είσθε σε θέση να μπορείτε να χρησιμοποιήσετε τις εντολές που αναγράφονται σε αυτό το αρχείο. Για το επόμενο εργαστήριο έχετε να υλοποιήσετε τις 2 παρακάτω εργαστηριακές ασκήσεις. Την ώρα του εργαστηρίου θα εξετασθείτε προφορικά πάνω στους κώδικες που θα παραδώσετε. Άσκηση 1 (5 μόνα δες) Να υλοποιήσετε ένα πρόγραμμα σε assembly το οποίο αρχικά θα ζητά από τον χρήστη να εισάγει δύο ακέραιους αριθμούς, Ν 1 και Ν 2 οι οποίοι καθορίζουν ένα διάστημα [Ν 1 Ν 2 ]. Στη συνέχεια, ζητά ακεραίους από τον χρήστη. Μόλις δοθεί το 0 σταματά. Ο χρήστης θα εισάγει από την κονσόλα τους αριθμούς και το πρόγραμμα θα ελέγχει αν ο αριθμός βρίσκεται εντός των ορίων του διαστήματος [Ν 1 Ν 2 ] που όρισε στην αρχή. Όταν δοθεί το 0 από τον χρήστη, το πρόγραμμα σταματά να ζητά ακεραίους, υπολογίζει το μέγιστο και το ελάχιστο των αριθμών εντός του διαστήματος που όρισε και τα εκτυπώνει στην οθόνη. Παράδειγμα εκτέλεσης: Please define the first limit of your interval: **** user input: 10 Please define the second limit of your interval:

**** user input: 50 **** user input: 30 **** user input: 42 **** user input: 33 **** user input: 24 **** user input: -11 Number -11 is outside the interval **** user input: 0 The range is [10, 50]. The maximum input is 42, and the minimum input is 24. -- program is finished running Άσκηση 2-Ευ ρεση επικαλυπτό μενών διαστημα τών (5 μόνα δες) Να υλοποιήσετε σε assembly ένα πρόγραμμα το οποίο θα ζητά από τον χρήστη να εισάγει επαναληπτικά δυο ακέραιους αριθμούς Ν1 και Ν2, οι οποίοι αντιπροσωπεύουν ένα διάστημα [Ν1, Ν2]. Αν ο χρήστης εισάγει αρνητικό Ν1 < 0 ή αρνητικό Ν2 Ν2< 0 το πρόγραμμα τερματίζει. Το πρόγραμμα θα πρέπει να βρίσκει το μέγιστο διάστημα που προκύπτει είτε από αλληλοεπικάλυψη διαστημάτων είτε όχι. Για την εύρεση του μέγιστου διαστήματος κάθε φορά, θα πρέπει να ελέγχονται έξη περιπτώσεις που απεικονίζονται στην Εικόνα 1. Το πρόγραμμα θα πρέπει να κρατάει σε κάθε επανάληψη το αριστερό άκρο και το δεξί άκρο του τρέχοντος μέγιστου διαστήματος (min και max). Στην τελευταία επανάληψη, τα min και max περιέχουν το τελικό μέγιστο διάστημα. Πιο συγκεκριμένα, ο χρήστης, στην επανάληψη 0, εισάγει ένα διάστημα [N1, N2], οπότε στην αρχή min = N1 και max = N2. Στην επανάληψη 1, ο χρήστης εισάγει το επόμενο διάστημα [Ν1, Ν2] και τα min, max ανανεώνονται ανάλογα με τον έλεγχο των περιπτώσεων της Εικόνα 1 μεταξύ του αποτελέσματος της προηγούμενης επανάληψης και του εισαχθέντος διαστήματος κ.ο.κ. Αν δυο διαστήματα δεν αλληλεπικαλύπτονται (περιπτώσεις 5,6 της Εικόνα 1), τότε το αποτέλεσμα θα πρέπει να είναι το μέγιστο διάστημα από αυτά τα δύο διαστήματα. Στο τέλος του προγράμματος εκτυπώνεται το τελικό μέγιστο διάστημα. Για να βρεθεί το μέγιστο των διάστημα, υπάρχουν έξη περιπτώσεις αλληλοεπικάλυψης διαστημάτων:

Εικόνα 1 Περίπτωση 1,2: Μερική επικάλυψη με το αποτέλεσμα της τρέχουσας επανάληψης. Περίπτωση 3,4: Ολική επικάλυψη μεταξύ της τρέχουσας και των προηγούμενων επαναλήψεων. Περίπτωση 5,6: Καμία επικάλυψη μεταξύ της τρέχουσας και των προηγούμενων επαναλήψεων. Παράδειγμα Εκτέλεσης: Iteration 0 **** user input : 1 **** user input : 3 Iteration 1 **** user input :0 **** user input :2 Iteration 2 **** user input :1 **** user input :3

Iteration 3 **** user input :1 **** user input :4 Iteration 4 **** user input :5 **** user input :6 Iteration 5 **** user input :5 **** user input :10 The max final union of ranges is [5,10]. -- program is finished running -- Θα πρέπει να στέλνετε με email τις λύσεις των εργαστηριακών ασκήσεων σας στους διδάσκοντες στο ce134lab@gmail.com. To email σας θα πρέπει να περιέχει ως attachment ένα zip file με τον κώδικα σας. Κάθε διαφορετική άσκηση στην εκφώνηση θα βρίσκεται και σε διαφορετικό asm file. Το όνομα των asm files θα ΠΡΕΠΕΙ να αρχίζει με το ΑΕΜ σας. Για παράδειγμα, τo lab2.zip θα περιέχει 3 asm files, ένα για κάθε μία από τις ασκήσεις του lab2, με ονόματα 999_lab2a.asm, 999_lab2b.asm, 999_lab2c.asm για τον φοιτητή με ΑΕΜ 999. Το email σας θα έχει Subject: CE134, lab N, Section Χ (N o αριθμός του lab, N=2..., και X=1 έως 5). Το email σας θα έχει body: το όνομα σας και το AEM σας. Θα πρέπει να στέλνετε το email σας πριν βγείτε από την εξέταση του εργαστηρίου.