Title: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Ariel on April 18, 2011, 17:57:25 pm Εδώ ποστάρουμε για ό,τι έχει να κάνει με την εργασία, απορίες δλδ και τα λοιπά.
Αρχίζοντας λοιπον, έχει κοιτάξει κανείς την άσκηση για φέτος? Εκτός απο το υλικό στο eTHMMY έχετε να προτείνετε κανένα πιο αναλυτικό handbook των εντολών για τον MIPS ?? και, ναι είναι το 1000ό μου ποστ!!!!! ^peace^ Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: arashi on April 18, 2011, 18:54:55 pm www.eecs.harvard.edu/~ellard/Courses/cs50-asm.pdf
des kai to diplano topic Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Lampros on April 18, 2011, 20:09:44 pm στο 2ο κεφάλαιο του βιβλίου νομίζω τα λέει πολύ αναλυτικά...
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: bourboulithra on April 18, 2011, 20:13:06 pm στο 2ο κεφάλαιο του βιβλίου νομίζω τα λέει πολύ αναλυτικά... Σε ποιό από τα δυο αναφέρεσαι;Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: christgc on April 18, 2011, 21:58:24 pm στο 2ο κεφάλαιο του βιβλίου νομίζω τα λέει πολύ αναλυτικά... Σε ποιό από τα δυο αναφέρεσαι;Στο βιβλίο των Patterson και Hennessy... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Lampros on April 19, 2011, 12:16:16 pm στο 2ο κεφάλαιο του βιβλίου νομίζω τα λέει πολύ αναλυτικά... Σε ποιό από τα δυο αναφέρεσαι;Στο βιβλίο των Patterson και Hennessy... Ακριβώς...και γενικά μου φαίνεται πάρα πολύ ενδιαφέρον βιβλίο. Είναι αναλυτικό και καλογραμμένο κατα την άποψή μου Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: adianohtos on April 19, 2011, 14:28:01 pm Στην εργασια που ανεβηκε στο ethmmy η main ξεκιναει με αυτη τη διαδικασια
subu $sp, $sp, 32 #Stack frame is 32 bytes long sw $ra, 20($sp) #Save return address to the stack sw $fp, 16($sp) #Save the old frame pointer to the stack addiu $fp, $sp, 28 #Set up frame pointer Τι ακριβως κανει και γιατι ρε παιδια;; :-\ :-\ Τωρα μαθαινουμε assembly και τα χουμε χασει λιγακι :D Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: bestpike on April 19, 2011, 20:54:59 pm Στην εργασια που ανεβηκε στο ethmmy η main ξεκιναει με αυτη τη διαδικασια subu $sp, $sp, 32 #Stack frame is 32 bytes long sw $ra, 20($sp) #Save return address to the stack sw $fp, 16($sp) #Save the old frame pointer to the stack addiu $fp, $sp, 28 #Set up frame pointer Τι ακριβως κανει και γιατι ρε παιδια;; :-\ :-\ Τωρα μαθαινουμε assembly και τα χουμε χασει λιγακι :D Επειδή και γω ακόμα ψαχνομαι θα βοηθησω με οτι ξερω. Η πρώτη εντολή δημιουργεί ας πούμε 8 θέσεις (4x8=32) στον stack pointer για να αποθηκευτούν δεδομένα. Κανει αφαιρεση γιατι οι διευθυνσεις μεγαλωνουν προς τα πισω. Δηλαδη αν ο $sp είχε την διευθυνση 100, τωρα εχει την 68. Μετά σωζει στη θεση 20($sp), η οποία αν εχω καταλαβει ντιπ ειναι ας πουμε με το παραδειγμα του 100 η 88 (68+20) θεση μνημης, την διευθυνση επιστροφης, και τον frame pointer στη θεση 68+16=84. Μετα αλλαζει τον frame pointer σε διευθυνση 68+28=96. Αυτα το τι κανει, το γιατι τα κανει χαμπαρι δεν εχω. Αυτο που με παραξενευει ειναι η συναρτηση initialize παρακατω, η οποια στην αρχη αποθηκευει και στο τελος της ξαναφορτωνει τα $ra kai $fp με τις ιδιες ουσιαστικα τιμες. Η το προγραμμα εχει καποιο λαθος (στην περιπτωση αυτη πολυ γαματη ιδεα να δωσεις ενα προγραμμα με λαθη σε καποιον που μολις μαθαινει), η αυτο ειναι τυπικο και δε χρειαζεται στην προκειμενη περιπτωση, η οντως χρειαζεται και δεν εχω καταλαβει το που και το πως ακομα. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Fosa on April 20, 2011, 22:11:09 pm για να κανω την εργασια τι πρεπει να μαθω? Αυτα για το MIPS? H χρειαζεται κ τπτ αλλο?
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: elen// on April 20, 2011, 22:32:27 pm για να κανω την εργασια τι πρεπει να μαθω? Αυτα για το MIPS? H χρειαζεται κ τπτ αλλο? +1Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Fosa on April 20, 2011, 22:34:28 pm Επισης ειναι ολα τα κεφαλαια απο το pdf που εχει; Η μονο το Α10;
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Ariel on April 21, 2011, 12:43:57 pm Όσο πιο πολλά κεφάλαια διαβάσεις απο το pdf τόσο πιο σφαιρική εικόνα θα έχεις για τον MIPS, έχει και άρκετά παραδείγματα μέσα.
Η εργασία δεν είναι τραγικά δυσκολη, απλά θέλει συγκέντρωση και πρόσοχή, κυρίως να ξέρεις τι κάνεις όταν παίζεις με τους registers. Πιστεύω ο MIPS και λίγο googling για τη στοίβα του Ερατοσθένη και τη λειτουργία της θα ειναι αρκετά. Α! επίσης το αρχείο .c που είναι πολύ χρήσιμο για να καταλάβεις καλύτερα τον αλγόριθμο. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: lindou on April 28, 2011, 19:12:29 pm Στην εργασια που ανεβηκε στο ethmmy η main ξεκιναει με αυτη τη διαδικασια subu $sp, $sp, 32 #Stack frame is 32 bytes long sw $ra, 20($sp) #Save return address to the stack sw $fp, 16($sp) #Save the old frame pointer to the stack addiu $fp, $sp, 28 #Set up frame pointer Τι ακριβως κανει και γιατι ρε παιδια;; :-\ :-\ Τωρα μαθαινουμε assembly και τα χουμε χασει λιγακι :D Επειδή και γω ακόμα ψαχνομαι θα βοηθησω με οτι ξερω. Η πρώτη εντολή δημιουργεί ας πούμε 8 θέσεις (4x8=32) στον stack pointer για να αποθηκευτούν δεδομένα. Κανει αφαιρεση γιατι οι διευθυνσεις μεγαλωνουν προς τα πισω. Δηλαδη αν ο $sp είχε την διευθυνση 100, τωρα εχει την 68. Μετά σωζει στη θεση 20($sp), η οποία αν εχω καταλαβει ντιπ ειναι ας πουμε με το παραδειγμα του 100 η 88 (68+20) θεση μνημης, την διευθυνση επιστροφης, και τον frame pointer στη θεση 68+16=84. Μετα αλλαζει τον frame pointer σε διευθυνση 68+28=96. Αυτα το τι κανει, το γιατι τα κανει χαμπαρι δεν εχ. Η το προγραμμα εχει καποιο λαθος (στην περιπτωση αυτη πολυ γαματη ιδεα να δωσεις ενα προγραμμα με λαθη σε καποιον που μολις μαθαινει), η αυτο ειναι τυπικο και δε χρειαζεται στην προκειμενη περιπτωση, η οντως χρειαζεται και δεν εχω καταλαβει το που και το πως ακομα. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on May 02, 2011, 05:37:29 am Παιδιά η σύνταξη της εντολής addi στην ετικέτα iniatialize τι σημαίνει;
Είναι διαφορετική από αυτήν που έχει πχ στο βιβλίο : addi rt, rs, imm Λείπει ο ένας από τους 2 registers... Μήπως αυτή η εντολή συντάσσεται έτσι γιατί rt=rs? Ή μήπως είναι λάθος; :-\ Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on May 02, 2011, 15:14:41 pm Παιδες,εκει που λεει "start from isprime[2]" πως θα το κανουμε...υπαρχει καμια ιδεα...?Και επισης εκει που λεει "#Save pointer to isprime to a register other than $a0"...?Δωστε και σωστε...
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: zidan on May 06, 2011, 15:46:09 pm να ρωτησω,σε τι μορφη να παραδωσουμε την εργασια???????
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Ariel on May 06, 2011, 16:30:27 pm Παιδες,εκει που λεει "start from isprime[2]" πως θα το κανουμε...υπαρχει καμια ιδεα...? Θα βαλεις τον pointer στην αρχη του πινακα και αυξησεις τη διευθυνση κατα 8 (4 για καθε θεση i) και θα συνεχισεις απο εκει την ασκηση Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: erato on May 06, 2011, 18:40:42 pm ρε παιδιά εγώ έχω κάτι πολύ βασικές ερωτησούλες αν μπορεί κάποιος να βοηθήσει...
1. αν π.χ. θέλεις να χρησιμοποιήσεις για πρώτη φορά μια μεταβλητή πχ το j πως την "βάζεις" σε έναν καταχωρητή; ή απλά χρησιμοποιείς έναν καταχωρητή που λες ότι εκεί μέσα θα δίνεις τιμές για το j όταν θα εκτελείται; 2. στην εργασία στο κομμάτι που μας δίνει πχ στην initialize έχει θέσει το i στον $to, μετά όταν θα κάνουμε εμείς την find_primes πρέπει να χρησιμοποιήσουμε αναγκαστικά τον ίδιο καταχωρητή για το i ή και άλλον; και 3. πάλι στην find_primes εκεί που λέει "save pointer to isprime to a register other than $a0" στην 6η γραμμή τι ακριβώς θέλει να κάνουμε; κάτι τέτοιο la $s0, isprime ή move $s0, $a0 ή κάτι τέτοιο sw $a0, 12($sp); θεεενκς! Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: zidan on May 06, 2011, 18:44:10 pm ρε παιδια,τα εχω διαβασει ολα περιπου αλλα δεν ξερω πως να κανω την εργασια ??
παιζει καμια βοηθεια??? το παραδεχομαι,μαλλακια μου που δεν το εχω παρακολουθησει το μαθημα, το διαβασα καλα ,με την εργασια δεν βγαζω ακρη. SOS please!! Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on May 06, 2011, 20:05:23 pm ρε παιδια,τα εχω διαβασει ολα περιπου αλλα δεν ξερω πως να κανω την εργασια ?? παιζει καμια βοηθεια??? το παραδεχομαι,μαλλακια μου που δεν το εχω παρακολουθησει το μαθημα, το διαβασα καλα ,με την εργασια δεν βγαζω ακρη. SOS please!! λοιπον κοιτα τι θα κανεις... τρεξε την ασκηση που έχει ανεβασει στο ethmmy ( σε assembly που είναι ) και προσπαθησε να καταλάβεις τι κάνει και γιατί το κάνει μην προσπαθεις να κανεις την εργασια με τη μια στο χαρτι θεωρητικα... γραφε κωδικα και φορτωνε ό,τι εχεις γραψει στο SPIM βλεπε τους registers και τι τιμες παίρνουν αυτοι όταν δεν κάνει αυτό που θέλεις ο κώδικάς σου, άλλαξέ τον ( κάνε δοκιμές στην ουσία ) μέχρις ότου να πετύχεις το ζητούμενο αποτέλεσμα ξεκίνα να γεμίζεις τον κώδικα της άσκησης από τα απλά πρώτα ( το κομμάτι της στοιβας που φορτώνει κάθε φορά και το κομμάτι που επιστρεφει τους $ra και $fp ) μην αγχώνεσαι. έχεις 3.5 μέρες μπροστά σου. χρόνος υπέραρκετος για να κάνεις όσες δοκιμές χρειάζονται για να βγει η εργασία! ( εφόσον έχεις διαβάσει κι όλας που λες ) αν κάπου έχεις κολλήσει πολύ άσχημα, στείλε κανα mail σ αυτόν που μας έβαλε την εργασία ( αλήθεια ποιον ρωτάμε, τους μεταπτυχιακους; ) μην ανησυχείς για τις παραδόσεις. δε νομιζω να ειπώθηκε κάτι τόσο σημαντικό που μόνο όσοι πήγαιναν να μπορούν να κάνουν την εργασία. είμαι σίγουρος ότι θα τα καταφέρεις! Ξεκίνα με τις δοκιμές και θα μπεις στο κλίμα! α, και κάτι τελευταίο. Δοκίμασε να μεταφράσεις το ενδεικτικό πρόγραμμα σε c που μας δόθηκε σε εντολές assembly. αν παρατηρήσεις τα σχόλια, υπάρχει καθαρή αντιστοιχία ανάμεσα στα 2 προγράμματα. Αυτό για να έχεις έναν μπούσουλα και να ξεκινήσεις από κάπου. Καλή επιτυχία! :) Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: erato on May 06, 2011, 21:02:26 pm εμένα δεν το τρέχει πάντως....
πατάω go και δεν έχει καμία διαφορά με πριν... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on May 06, 2011, 21:16:25 pm Ξέρετε αν πρέπει μαζί με τον κώδικα να ανεβάσουμε και κάποια σχόλια?Στο ethmmy δεν αναφέρει κάτι τέτοιο αλλά μήπως χρειάζεται?
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: zidan on May 06, 2011, 21:23:55 pm εμένα δεν το τρέχει πάντως.... κ εγω το ιδιο....πατάω go και δεν έχει καμία διαφορά με πριν... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on May 06, 2011, 23:08:29 pm εμένα δεν το τρέχει πάντως.... πατάω go και δεν έχει καμία διαφορά με πριν... εμένα δεν το τρέχει πάντως.... κ εγω το ιδιο....πατάω go και δεν έχει καμία διαφορά με πριν... ποιος δεν τρέχει; Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Vicariously,I on May 06, 2011, 23:37:09 pm φανταζομαι εννοουν τον κωδικα οπως τον εχει γράψει στον "σκελετό" στο ethmmy.
ουτε εμενα τρεχει αυτος ουτε και ο ολοκλρωμένος που εγραψα :P ξερει κανενας τιποτα απο PCSpim? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on May 07, 2011, 01:31:37 am Όταν τρέχω το πρόγραμμα μου βγάζει μήνυμα Exception 7 Bad Data Address occured and ignored.Έχει κάποιος κάποια ιδέα πως μπορώ να βρώ τι από όλα μπορεί να κάνω λάθος;
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on May 07, 2011, 01:53:54 am φανταζομαι εννοουν τον κωδικα οπως τον εχει γράψει στον "σκελετό" στο ethmmy. Ο σκελετός δεν είναι φτειαγμένος για να τρέχει, γιατί λείπουν εντολές. ( πχ λείπει το κομμάτι επιστροφής στη main μετά την κλήση της διαδικασίας find_primes ) Ούτε και σε μένα τρέχει, γιατί ο PC ( program counter ) "δειχνει" σε μια διεύθυνση κενή ( που δεν έχει εντολή ) ξερει κανενας τιποτα απο PCSpim? εγώ θα πρότεινα να δουλέψετε στον Qtspim (http://pages.cs.wisc.edu/~larus/spim.html#qtspim) Είναι η τελευταία έκδοση του PCSpim και νομίζω είναι περισσότερο φιλική ( έχει καλύτερο user interface ) Άσε που έχουν φτειάξει και μερικά bugs (http://pages.cs.wisc.edu/~larus/spim.html#changes) Όταν τρέχω το πρόγραμμα μου βγάζει μήνυμα Exception 7 Bad Data Address occured and ignored.Έχει κάποιος κάποια ιδέα πως μπορώ να βρώ τι από όλα μπορεί να κάνω λάθος; Πότε το παθαίνεις αυτό; Όταν τρέχεις μόνο τον σκελετό του προγράμματος; Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: png on May 07, 2011, 01:59:26 am Όταν τρέχω το πρόγραμμα μου βγάζει μήνυμα Exception 7 Bad Data Address occured and ignored.Έχει κάποιος κάποια ιδέα πως μπορώ να βρώ τι από όλα μπορεί να κάνω λάθος; εκ πείρας, κάπου δεν κάνεις σωστά load και save. όχι στη σύνταξη, στον pointer. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on May 07, 2011, 02:07:15 am Όταν τρέχω τον κώδικα όπως τον ανέβασε αυτός,δε μου βγάζει τίποτα στην κονσόλα,απλά στο κεντρικό παράθυρο γράφει attempt to execute non-instruction at.. κάποια διεύθυνση.Όταν προσπαθώ να το τρέξω με κάποιο κομμάτι του κώδικα που έγραψα εγώ για την find_primes μου το βγάζει αυτό στην κονσόλα.Και όντως στη διέυθυνση που μου βγάζει για το exception έχω μια εντολή store..
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: zidan on May 07, 2011, 16:35:31 pm δηλαδη το ζητουμενο ειναι να συμπληρωσουμε το σκελητο και να το τρεξουμε στο spim???/
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on May 07, 2011, 17:09:12 pm δηλαδη το ζητουμενο ειναι να συμπληρωσουμε το σκελητο και να το τρεξουμε στο spim???/ όχι. αν μπορείς να ξεκινήσεις από το μηδέν και να δουλέψει αυτό που έκανες τότε κάν το... απλώς το να συμπληρώσεις το σκελετό είναι αρκετά πιο εύκολο Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: stathisss on May 07, 2011, 19:36:45 pm ρε παιδιά εγώ έχω κάτι πολύ βασικές ερωτησούλες αν μπορεί κάποιος να βοηθήσει... για την 3η ερώτηση δλδ την αποθήκευση του δείκτη σε αλλόν καταχωρητή εκτός από τον $a0!!!!!Ποιά εντολή θα χρησιμοποιήσουμε??Μήπως την τρίτη εκδοχή sw $a0,12($sp)1. αν π.χ. θέλεις να χρησιμοποιήσεις για πρώτη φορά μια μεταβλητή πχ το j πως την "βάζεις" σε έναν καταχωρητή; ή απλά χρησιμοποιείς έναν καταχωρητή που λες ότι εκεί μέσα θα δίνεις τιμές για το j όταν θα εκτελείται; 2. στην εργασία στο κομμάτι που μας δίνει πχ στην initialize έχει θέσει το i στον $to, μετά όταν θα κάνουμε εμείς την find_primes πρέπει να χρησιμοποιήσουμε αναγκαστικά τον ίδιο καταχωρητή για το i ή και άλλον; και 3. πάλι στην find_primes εκεί που λέει "save pointer to isprime to a register other than $a0" στην 6η γραμμή τι ακριβώς θέλει να κάνουμε; κάτι τέτοιο la $s0, isprime ή move $s0, $a0 ή κάτι τέτοιο sw $a0, 12($sp); θεεενκς! Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: onime_no on May 08, 2011, 13:29:53 pm αν κοιταξεις το αντιστοιχο κομματι του κωδικα σε C θα δεις οτι λογικα εννοει το j :P
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: phen3x on May 08, 2011, 14:52:47 pm Στην εντολή που λέει #align address of the next element of isprime εμείς είμαστε στη
for(j=i+i; j<=N; j+=i) { isprime[j] = 0; } στη C και θέλουμε να αυξήσουμε κατά i το μέγεθος του j ώστε να μηδενίσουμε το isprime[j] σωστά; Άρα φορτώνουμε στον register το + i-οστό στοιχείο της στοίβας από εκεί που βρισκόμαστε. Εγώ χρησιμοποιώ την εντολή: lw $s1,$t0($a1) αλλά δεν μου την δέχεται ο compiler προφανώς γιατί χρησιμοποιώ register στο δεύτερο όρισμα για να αυξήσω κατά i την θέση του δείκτη. Καμία εναλλακτική/περιφραστική λύση;; Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: onime_no on May 08, 2011, 15:15:35 pm πρωτα προσθεσε και μετα φορτωσε το αποτελεσμα (α και στο save to a register other than a0 δεν εννοει το j...sorry,my bad :P )
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: phen3x on May 08, 2011, 15:18:20 pm όχι θα βάλω κ άλλο loop μέσα δε γαμ**ται!! ;D ;D ;D λες και θα χαλάσουμε την πολυπλοκότητα 8))
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: phen3x on May 08, 2011, 15:32:56 pm πρωτα προσθεσε και μετα φορτωσε το αποτελεσμα (α και στο save to a register other than a0 δεν εννοει το j...sorry,my bad :P ) Ναι δεν εννοεί το j. Aπλά βάλε $a1 Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: onime_no on May 08, 2011, 16:16:06 pm εναν απο του $s χρειαζεσαι για την ακριβεια οχι εναν αλλο απο τους $a
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: phen3x on May 08, 2011, 16:17:31 pm indeed
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: fcdimitr on May 08, 2011, 16:23:45 pm παιδιά, κάτι άσχετο, μέχρι πότε είναι η εργασία?? 12 το μεσημέρι ή 12 το βράδυ??? γιατι 12 μ.μ. δεν μου λεει και πολλα... :???:
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: onime_no on May 08, 2011, 16:41:54 pm 12 μ.μ. ειναι αυριο το μεσημερι
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: epi on May 08, 2011, 17:10:13 pm Στην εντολή που λέει #align address of the next element of isprime εμείς είμαστε στη for(j=i+i; j<=N; j+=i) { isprime[j] = 0; } στη C και θέλουμε να αυξήσουμε κατά i το μέγεθος του j ώστε να μηδενίσουμε το isprime[j] σωστά; Άρα φορτώνουμε στον register το + i-οστό στοιχείο της στοίβας από εκεί που βρισκόμαστε. Εγώ χρησιμοποιώ την εντολή: lw $s1,$t0($a1) αλλά δεν μου την δέχεται ο compiler προφανώς γιατί χρησιμοποιώ register στο δεύτερο όρισμα για να αυξήσω κατά i την θέση του δείκτη. Καμία εναλλακτική/περιφραστική λύση;; εναν απο του $s χρειαζεσαι για την ακριβεια οχι εναν αλλο απο τους $a επειδη έχω κολλησει κ εγω σαυτό το σημείο τελικα πρεπει να γίνει και αλλο loop η γινεται και αλλιώς Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: fcdimitr on May 08, 2011, 17:21:19 pm Στην εντολή που λέει #align address of the next element of isprime εμείς είμαστε στη for(j=i+i; j<=N; j+=i) { isprime[j] = 0; } στη C και θέλουμε να αυξήσουμε κατά i το μέγεθος του j ώστε να μηδενίσουμε το isprime[j] σωστά; Άρα φορτώνουμε στον register το + i-οστό στοιχείο της στοίβας από εκεί που βρισκόμαστε. Εγώ χρησιμοποιώ την εντολή: lw $s1,$t0($a1) αλλά δεν μου την δέχεται ο compiler προφανώς γιατί χρησιμοποιώ register στο δεύτερο όρισμα για να αυξήσω κατά i την θέση του δείκτη. Καμία εναλλακτική/περιφραστική λύση;; εναν απο του $s χρειαζεσαι για την ακριβεια οχι εναν αλλο απο τους $a επειδη έχω κολλησει κ εγω σαυτό το σημείο τελικα πρεπει να γίνει και αλλο loop η γινεται και αλλιώς δηλαδή έτσι lw $s1,$s2($a1) αυτο θελεις να πεις?? πωω κι εγω εχω κολλησει σε αυτο το σημειο... μάλλον εννοούσε να χρησιμοποιήσεις αντί για $a1 το $s0 αλλα δν ξέρω άμα γίνεται να δουλέψει αυτή η σύνταξη lw $s1,$t0($s0) Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: onime_no on May 08, 2011, 17:50:06 pm λογικα θα βαλεις $t εναν για το i και εναν για το j μετα κανεις τις πραξεις που λεει και αναλογα φορτωνεις απο τη μνημη το στοιχειο του πινακα που θελεις (δηλαδη φορτωνεις σε εναν ακομη ενδιαμεσο $t το ispreme[ι] ή ispreme[j] που θελεις για να κανεις τις συγκρισεις και να πας οποτε χρειαζεται στην continue ή να συνεχισεις παρακατω
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: lab_irs on May 08, 2011, 18:55:16 pm μπορειτε να μου πειτε τι register πρεπει να βαλω στο Save pointer to isprime to a register other than $a0 και να μου το εξηγησετε λγο
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: vagus on May 08, 2011, 19:26:39 pm Εχει σημασια το ονομα της εργασιας ; Το αφηνουμε ως εχει το αρχικο,το αλλαζουμε ωστε να δηλωνει οτι ειναι πρωτη εργασια+ΑΕΜ ;
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: stathisss on May 08, 2011, 19:45:34 pm ++1
εγώ χρησιμοποίησα t (temporary) register γιατί τους χρειαζόμαστε κ τους χρησιμοποιούμε μόνο μέσα στην συνάρτηση!! Κάποιος που να είναι σίγουρος για την απάντηση του ας μας διαφωτίσει........... 8)) Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: 4Dcube on May 08, 2011, 19:54:22 pm μπορειτε να μου πειτε τι register πρεπει να βαλω στο Save pointer to isprime to a register other than $a0 και να μου το εξηγησετε λγο Γενικά, απόλυτα, μπορείς να βάλεις οποιονδήποτε register.Αλλά συνήθως υπάρχουν συμβάσεις στον προγραμματισμό για διάφορα πράγματα όπως ονόματα μεταβλητών-συναρτήσεων, σειρά, μορφή σχολίων, κλπ. Στις διαφάνειες αναφέρει ότι έχουν τους $t registers για προσωρινές τιμές (temporary) και τους $s για αποθηκευμένες μεταβλητές. Αναφέρει και κάτι σχεδιαστικές αρχές που άμεσα δεν ξέρω αν πολυσχετίζονται με την επιλογή όπως "το μικρότερο το ταχύτερο". Αλλά σίγουρα σχετίζονται με τις πράξεις που θα επακολουθήσουν την επιλογή, π.χ. αν επιλέξεις τον $a0 και δουλεύεις με int, θα χρειαστεί να κάνεις σίγουρα μεταφορές δεδομένων οι οποίες θεωρητικά επιβραδύνουν το πρόγραμμα. Μου φαίνεται ότι οι επιλογές είναι μεταξύ s και t. Οι t είναι λίγο πασπαρτού, οι s είναι θα έλεγα περισσότερο για σταθερές (whatever that means σε τέτοιο επίπεδο), οπότε αν σκέφτεσαι καμιά εντολή sw, να τους βάλεις. Αλλά ξαναλέω, δεν ξέρω πώς είναι διαφορετικοί στην κατασκευή και πώς επηρεάζει αυτό το πρόγραμμα. Μόνο μην πιάσεις κανέναν register που χρησιμοποιείται σε βασικές λειτουργίες και δεν το χεις πάρει χαμπάρι. υγ. δεν είμαι σίγουρος για την απάντηση ούτε για τι θέλει ο χασάπης, βλέποντας και κάνοντας Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: mkiatos on May 08, 2011, 20:05:54 pm 12 μ.μ. ποτέ εννοεί????
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: psaralex on May 08, 2011, 20:58:10 pm Ξερει κανείς γιατί ενώ μου δουλεύει όλος ο κώδικας στο compiler, όταν περιμένω τα print μου βγαζει μόνο τους αριθμούς και όχι την αλλαγή σειράς???
Τρελό πράγμα... Πάντως ο κώδικας μου στο τέλος πάει έτσι: li $v0, 1 #Prepare for system call print_int move $a0, $t0 syscall li $v0, 4 #Prepare for system call print_string la $a0, nl syscall Αν έχετε καμία ιδέα....??? :'( Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: sminias_hlektromhxanikos on May 08, 2011, 22:03:46 pm Παιδιά είναι σωστός αυτός ο κώδικας;;;
Code: start: Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: psaralex on May 08, 2011, 22:13:41 pm Πολύ πιθανό...
Δυστυχώς όμως είναι σε άλλη γλώσσα... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: nikos912000 on May 08, 2011, 22:17:46 pm Ξερει κανείς γιατί ενώ μου δουλεύει όλος ο κώδικας στο compiler, όταν περιμένω τα print μου βγαζει μόνο τους αριθμούς και όχι την αλλαγή σειράς??? Τρελό πράγμα... Πάντως ο κώδικας μου στο τέλος πάει έτσι: li $v0, 1 #Prepare for system call print_int move $a0, $t0 syscall li $v0, 4 #Prepare for system call print_string la $a0, nl syscall Αν έχετε καμία ιδέα....??? :'( Χρειάζεται να γίνει αλλαγή σειράς,εφόσον θέλουμε να εκτυπώνονται σαν ένας αριθμός?Εγώ δεν καταλαβαίνω πως μεταφέρουμε τους αριθμούς που θέλουμε να εκτυπώσουμε σε πίνακα με strings... :( Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: psaralex on May 08, 2011, 22:22:34 pm Αν λες για το print string, δεν εχει να κάνει με αριθμούς
αυτό είναι μόνο για την αλλαγή σειράς Αυτό που λες να φαίνονται σαν ένας, το είδες κάπου γραμμένο??? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: nikos912000 on May 08, 2011, 22:34:17 pm "Να γραφτεί πρόγραμμα σε Assembly του MIPS το οποίο να βρίσκει και να τυπώνει
όλους τους πρώτους αριθμούς ως έναν ακέραιο αριθμό n." Οπότε στο ξεκαθαρίζει απ την εκφώνηση...Για το 1ο που είπες δε σε πιάνω...Τι εννοείς με την αλλαγή σειρας? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: psaralex on May 08, 2011, 22:44:34 pm ΟΚ
1ο: Δεν χρειάζεται να μετατρέψω τίποτα στον κώδικά γιατί αν και τυχαίως προβάλει αυτό που ζητάμε στην εκφώνηση 2ο: Για να χρησιμοποιήσης την κλήση syscall για print_string όπως γράφει στη δομή, πρέπει να έχεις δηλώσει στην αρχή πρίν το .text κάποιο Data Segment. Αν δεις αυτός έχει κάνει ένα ήδη , τύπου .asciiz. Αυτό είναι character string και μάλλον αυτό ζητάει να εκτυπώσουμε. Του έχει δώσει αξία \n και γι` αυτό νόμιζα ότι κάθε αριθμός θα πρέπει να είναι σε άλλη σειρά. Πάντως thx Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: nikos912000 on May 08, 2011, 22:57:19 pm Thanx!Μου έλυσες την απορία για τα strings! :D
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: τιρκουαζ στοκος on May 08, 2011, 23:54:41 pm "Να γραφτεί πρόγραμμα σε Assembly του MIPS το οποίο να βρίσκει και να τυπώνει Εννοεί έως έναν αριθμό n..Μάλλον θέλει να εκτυπώνονται ο ένας κάτω από τον άλλον..όλους τους πρώτους αριθμούς ως έναν ακέραιο αριθμό n." Οπότε στο ξεκαθαρίζει απ την εκφώνηση...Για το 1ο που είπες δε σε πιάνω...Τι εννοείς με την αλλαγή σειρας? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: epi on May 09, 2011, 00:24:11 am οτσν τρεχω το προγραμμα μου βγάζει
bad address in data/stack exception ocured at 'διευθυνση' αυτό τι λαθος είναι???? και η εργασία που θα στείλουμε πρεπει να βγάζει και (σωστά) αποτελέσματα για να πάρεις βαθμο....???? :-\ Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: nikos912000 on May 09, 2011, 01:14:38 am "Να γραφτεί πρόγραμμα σε Assembly του MIPS το οποίο να βρίσκει και να τυπώνει Εννοεί έως έναν αριθμό n..Μάλλον θέλει να εκτυπώνονται ο ένας κάτω από τον άλλον..όλους τους πρώτους αριθμούς ως έναν ακέραιο αριθμό n." Οπότε στο ξεκαθαρίζει απ την εκφώνηση...Για το 1ο που είπες δε σε πιάνω...Τι εννοείς με την αλλαγή σειρας? Ωχ δίκιο έχεις...Λάθος το διαβαζα... :D Οπότε ναι...Ο ένας κάτω από τον άλλον απλά! Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Primus on May 09, 2011, 02:06:50 am Ξερει κανεις τι παιζει γενικοτερα με την προφορικη εξεταση???
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: vagus on May 09, 2011, 03:28:27 am Θελω απο καποιον που του τρεχει κανονικα ο κωδικας να μου στειλει σε pm τις print_string και cont_print για να κανω συγκριση. PLEASE
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Room on May 09, 2011, 04:03:40 am Θελω απο καποιον που του τρεχει κανονικα ο κωδικας να μου στειλει σε pm τις print_string και cont_print για να κανω συγκριση. PLEASE Καν'τες καλύτερα εσύ post εδώ να σε βοηθήσει ο καθένας όπως μπορεί. μπορειτε να μου πειτε τι register πρεπει να βαλω στο Save pointer to isprime to a register other than $a0 και να μου το εξηγησετε λγο Νομίζω δεν υποχρεούσαι να βάλεις κάποιον συγκεκριμένο. Μπορείς να βάλεις κάποιον από αυτούς που χρησιμοποιείς γενικά για τις μεταβλητές σου. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Sage on May 09, 2011, 10:58:14 am Πώς ^%$%# θα κάνουμε την εντολή #align address of the next element of isprime ???
μπορεί να βοηθήσει κάποιος?? έχω κολλήσει άσχημα.. και πάντα εκεί μου βγάζει λάθος το πρόγραμμα!!! >:( >:( Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gdourbo on May 09, 2011, 11:11:56 am Πώς ^%$%# θα κάνουμε την εντολή #align address of the next element of isprime ??? add $a1, $a1, $t4μπορεί να βοηθήσει κάποιος?? έχω κολλήσει άσχημα.. και πάντα εκεί μου βγάζει λάθος το πρόγραμμα!!! >:( >:( Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Sage on May 09, 2011, 11:13:34 am Πώς ^%$%# θα κάνουμε την εντολή #align address of the next element of isprime ??? add $a1, $a1, $t4μπορεί να βοηθήσει κάποιος?? έχω κολλήσει άσχημα.. και πάντα εκεί μου βγάζει λάθος το πρόγραμμα!!! >:( >:( Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: mkiatos on May 09, 2011, 13:27:47 pm Νομίζω πως είναι addi $s2, 8...Όπου $s2 ο καταχωρητής που έχεις τον πίνακα...
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Άδης on May 09, 2011, 15:27:15 pm από ethmmy
Quote 9 Μαϊ 2011 2:44 μμ Σισμάνης Για την πρώτη εργασία είναι απαραίτητα μόνο τα .s αρχεία που περιέχουν το πρόγραμμα σε Assembly που γράψατε. Ανεβάστε τα με το παρακάτω format. Όνοματεπώνυμο_ΑΕΜ_ΑριθμόςΕργασίας.s Όσοι την έχουμε στείλει ήδη με άλλο όνομα μπορούμε να την ξαναστείλουμε; Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on May 09, 2011, 15:52:23 pm από ethmmy Quote 9 Μαϊ 2011 2:44 μμ Σισμάνης Για την πρώτη εργασία είναι απαραίτητα μόνο τα .s αρχεία που περιέχουν το πρόγραμμα σε Assembly που γράψατε. Ανεβάστε τα με το παρακάτω format. Όνοματεπώνυμο_ΑΕΜ_ΑριθμόςΕργασίας.s Όσοι την έχουμε στείλει ήδη με άλλο όνομα μπορούμε να την ξαναστείλουμε; Καλησπέρα, Αν την ξαναστείλεις τότε θα έχεις ανεβάσει 2 αρχεία ( δεν αντικαθιστά το παλιό, απλώς προσθέτει το καινούριο το δοκίμασα πριν λίγο ) Αυτό που μπορείς να κάνεις για να ανεβάσεις το αρχείο με το συγκεκριμένο format είναι να διαγράψεις την ομάδα που έχεις κάνει τώρα και να κάνεις μία καινούργια. Μετά ξανανεβάζεις την εργασία με το καινούργιο format. Όταν διαγράφεις την ομάδα που έχεις κάνεις τώρα, μην ξεχάσεις να την ξεκλειδώσεις ( αν την είχες κλειδώσει νωρίτερα ) γιατί αλλιώς δεν μπορείς να την τροποποιήσεις... Και όσον αφορά την προθεσμία, μάλλον τελικά μέχρι τις 12 το βράδυ είναι σήμερα... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Άδης on May 09, 2011, 17:47:45 pm Καλησπέρα, Αν την ξαναστείλεις τότε θα έχεις ανεβάσει 2 αρχεία ( δεν αντικαθιστά το παλιό, απλώς προσθέτει το καινούριο το δοκίμασα πριν λίγο ) Αυτό που μπορείς να κάνεις για να ανεβάσεις το αρχείο με το συγκεκριμένο format είναι να διαγράψεις την ομάδα που έχεις κάνει τώρα και να κάνεις μία καινούργια. Μετά ξανανεβάζεις την εργασία με το καινούργιο format. Όταν διαγράφεις την ομάδα που έχεις κάνεις τώρα, μην ξεχάσεις να την ξεκλειδώσεις ( αν την είχες κλειδώσει νωρίτερα ) γιατί αλλιώς δεν μπορείς να την τροποποιήσεις... Και όσον αφορά την προθεσμία, μάλλον τελικά μέχρι τις 12 το βράδυ είναι σήμερα... ok thanks Την έστειλα. Το όνομα το έχω με λατινικούς χαρακτήρες, ελπίζω να μην το θέλουν με ελληνικούς. Πάντως νωρις το θυμήθηκαν... Τελευταία μερα... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Lampros on May 09, 2011, 18:18:37 pm πως μπορώ να κάνω τους αριθμούς να εμφανίζονται ο ένας κάτω απο τον άλλο?
Εμένα μου τους βγάζει κολλητά ο ένας δίπλα στον άλλο... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Faros on May 09, 2011, 18:49:12 pm χρησημοποιεις string,σου εχει ετοιμο για new line στην αρχη:
nl: .asciiz "\n" #New line Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Tracy_McGrady on May 09, 2011, 20:59:44 pm Κάποιος που να ξέρει γιατί δεν βγάζει τα νούμερα το ένα κάτω απο το άλλο...??? :-[
Να πω οτι έχω χρησιμοποιήσει το string για την εμφάνιση... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: nemdam on May 09, 2011, 22:11:24 pm Το λάθος είναι αυτού που έγραψε τον σκελετό. Για να αλλάζει σειρά πρέπει να αλλάξεις το isprime: .space 400 σε isprime: .space 450
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Tracy_McGrady on May 09, 2011, 22:35:15 pm Το λάθος είναι αυτού που έγραψε τον σκελετό. Για να αλλάζει σειρά πρέπει να αλλάξεις το isprime: .space 400 σε isprime: .space 450 Το κάνω και αυτό αλλά πάλι δεν τρέχει..... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Room on May 10, 2011, 13:07:35 pm Το λάθος είναι αυτού που έγραψε τον σκελετό. Για να αλλάζει σειρά πρέπει να αλλάξεις το isprime: .space 400 σε isprime: .space 450 Το κάνω και αυτό αλλά πάλι δεν τρέχει..... Το λάθος δεν είναι αυτού που έγραψε το σκελετό. Το λάθος βρίσκεται μέσα στην find_primes. Κάπου γίνεται μία παραπάνω επανάληψη και η find_primes γράφει πάνω στην nl. Μπορείς είτε να βρεις που γίνεται παραπάνω επανάληψη, είτε απλα νε μεγαλώσεις λίγο τον πίνακα. Δεν χρειάζεται να τον κανεις 50 bytes μεγαλύτερο, αρκεί +4, το πολύ +12 που εξαρτάται απ'το ποσες φορές γίνεται αυτή η λάθος επανάληψη Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Orfikoss on May 10, 2011, 20:59:20 pm Το λάθος είναι αυτού που έγραψε τον σκελετό. Για να αλλάζει σειρά πρέπει να αλλάξεις το isprime: .space 400 σε isprime: .space 450 Το κάνω και αυτό αλλά πάλι δεν τρέχει..... Το λάθος δεν είναι αυτού που έγραψε το σκελετό. Το λάθος βρίσκεται μέσα στην find_primes. Κάπου γίνεται μία παραπάνω επανάληψη και η find_primes γράφει πάνω στην nl. Μπορείς είτε να βρεις που γίνεται παραπάνω επανάληψη, είτε απλα νε μεγαλώσεις λίγο τον πίνακα. Δεν χρειάζεται να τον κανεις 50 bytes μεγαλύτερο, αρκεί +4, το πολύ +12 που εξαρτάται απ'το ποσες φορές γίνεται αυτή η λάθος επανάληψη Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: 4Dcube on May 10, 2011, 22:42:36 pm σωστός ο ρουμ!
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: zidan on May 14, 2011, 16:42:02 pm Λυστε μου απορει,
δεν εχω κανει την πρωη εργασια ,μπορω να κανω την δευτερη??? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Ευχαριστο Διαλειμμα on May 14, 2011, 16:53:15 pm οχι
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: zidan on May 14, 2011, 16:57:29 pm Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: john ulucky luke on May 14, 2011, 17:07:21 pm Λυστε μου απορει, δεν εχω κανει την πρωη εργασια ,μπορω να κανω την δευτερη??? Βασικά ο Pitsianis είπε οτι δεν είναι προυπόθεση η πρώτη εργασία για να κάνεις τη δεύτερη, οπότε ξανασκέψου το. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: zidan on May 14, 2011, 17:21:47 pm Λυστε μου απορει, δεν εχω κανει την πρωη εργασια ,μπορω να κανω την δευτερη??? Βασικά ο Pitsianis είπε οτι δεν είναι προυπόθεση η πρώτη εργασία για να κάνεις τη δεύτερη, οπότε ξανασκέψου το. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Ευχαριστο Διαλειμμα on May 14, 2011, 17:40:05 pm Οκ, ανακαλω τοτες, γιατι περυσι επρεπε να ειχες κανει την πρωτη για να κανεις τη δευτερη. :P
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: zidan on May 14, 2011, 17:42:07 pm Οκ, ανακαλω τοτες, γιατι περυσι επρεπε να ειχες κανει την πρωτη για να κανεις τη δευτερη. :P μη βασίζεσαι σε παγιατικα νεα.... ;)Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on May 18, 2011, 14:19:14 pm Παιδιά, έχει ξεκινήσει κανείς να ασχολείται με τη 2η εργασία;
Έχει τρέξει κανείς τον κώδικα σε c που δίνεται; Τρέχει; :-\ Δοκίμασα και σε Xcode ( Version 3.2.6 ) να το τρέξω και σε Visual Studio 2010... Στη μία περίπτωση μου βγάζει Segmentation fault ( Program received signal: “EXC_BAD_ACCESS” ) ενώ στην άλλη δεν κάνει καν compile. Τι φταίει; Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: arashi on May 18, 2011, 15:43:24 pm Παιδιά, έχει ξεκινήσει κανείς να ασχολείται με τη 2η εργασία; Έχει τρέξει κανείς τον κώδικα σε c που δίνεται; Τρέχει; :-\ Δοκίμασα και σε Xcode ( Version 3.2.6 ) να το τρέξω και σε Visual Studio 2010... Στη μία περίπτωση μου βγάζει Segmentation fault ( Program received signal: “EXC_BAD_ACCESS” ) ενώ στην άλλη δεν κάνει καν compile. Τι φταίει; Δεν εχεις linux κατα πασα πιθανοτητα ;) Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Burlitsa on May 18, 2011, 15:51:22 pm Μπα και με gnu Segmentation fault βγάζει.
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Burlitsa on May 18, 2011, 16:44:56 pm οκ... τελικά θέλει όρισμα όταν το τρέχεις και εγώ δεν είχα βάλει!
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: arashi on May 18, 2011, 18:07:21 pm οκ... τελικά θέλει όρισμα όταν το τρέχεις και εγώ δεν είχα βάλει! δεν ξερατε το atoi? (υποθετω) Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Orfikoss on May 18, 2011, 23:39:38 pm Το atoi μετατρέπει έναν αριθμό που είναι string σε int
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: arashi on May 18, 2011, 23:46:17 pm Το atoi μετατρέπει έναν αριθμό που είναι string σε int Ναι αλλα αυτο ειναι γνωση "πανεπιστημιου" γνωση "πραξης" σημαινει πως τα αλαμπουρνεζικα διπλα στη main ειναι πινακας ορισματων που βαζεις οταν καλεις απο command line δλδ ./a.out 5 3 9 ..... και ετσι με διαδοχικα atoi στον κωδικα φορτωνεις ορισματα σε μεταβλητες χωρις να χρειαζεσαι gets getchar η οτιδηποτε αλλο ;) Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: png on May 20, 2011, 13:08:56 pm με το unsigned της υπόθεσης τι γίνεται;
δηλαδή άμα οι μεταβλητές δεν είναι unsigned τι, δεν θα τρέχει ο κώδικας; εκτός τούτου, τι κάνεις για να βγούνε unsigned; προσθέτεις ένα u δίπλα σε όλες τις εντολές; :D Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on May 20, 2011, 13:28:13 pm με το unsigned της υπόθεσης τι γίνεται; δηλαδή άμα οι μεταβλητές δεν είναι unsigned τι, δεν θα τρέχει ο κώδικας; Ο κώδικας θα τρέχει, απλώς το πιθανότερο είναι να σου βγάζει αλαμπουρνέζικα αποτελέσματα... Επειδή οι περισσότεροι δουλεύουμε σε περιβάλλον 32bit, αν δε χρειαστεί να ξεπεράσουμε τον αριθμό 2.147.483.647 δε νομίζω να παρουσιαστεί πρόβλημα. Αν όμως ξεπεράσουμε αυτόν τον αριθμό και δε δηλώσουμε τη μεταβλητή μας ως μη προσημασμένη τότε αυτή θα θεωρηθεί ως αρνητικός αριθμός, ε και κάπου θα παρουσιαστούν λογικά λάθη. Δες και στο βιβλίο του Δομημένου σελ 68-71 εκτός τούτου, τι κάνεις για να βγούνε unsigned; προσθέτεις ένα u δίπλα σε όλες τις εντολές; :D βασικά, νομίζω ναι ( δες ποιες εντολές παίρνουν αυτό το u, ας πούμε η εντολή sll ( shift left logical ) δεν παίρνει u ) Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: png on May 20, 2011, 13:36:41 pm thnx, αλλα ας απαντήσει και κανας ηλεκτρονικάριος ως προς το πρακτικό κομμάτι της υπόθεσης, ετσι για πιο σιγουρα.
varvouti, δεν σε αδειάζω, αλλά είπες "νομίζω" :P Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on May 23, 2011, 14:18:55 pm Παιδια,ξερει κανεις πως δηλωνω unsigned int στον ΜΙPS?
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Orfikoss on May 23, 2011, 22:19:58 pm στο mips δε δηλώνεις μεταβλητές απλά αντί για add, sub, addi, bgt χρησιμοποιείς addu, subu και addiu, bgtu
Παρόλα αυτά: Quote The MIPS32 Instruction Set states that the word unsigned as part of Add and Subtract instructions, is a misnomer. The difference between signed and unsigned versions of commands is not a sign extension (or lack thereof) of the operands, but controls whether a trap is executed on overflow (e.g. Add) or an overflow is ignored (Add unsigned). An immediate operand CONST to these instructions is always sign-extended πηγή: http://en.wikipedia.org/wiki/MIPS_architecture#MIPS_assembly_languageδηλαδή αν το κάνεις unsigned απλά αγνοεί αν γίνει overflow Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on May 24, 2011, 01:45:53 am στο mips δε δηλώνεις μεταβλητές απλά αντί για add, sub, addi, bgt χρησιμοποιείς addu, subu και addiu, bgtu το φανταστηκα αλλα δεν ημουν απολυτως σιγουρος...thnks a lot...εχω ομω και κανα δυο ακομα αποριες...η μια ειναι πως θα κανω return απο μια συναρτηση και η δευτερη ποιο ειναι αυτο το q που ζηταει η ασκηση να ειναι μεχρι 12...γιατι κοιταζοντας τον κωδικα στην c δεν το βρηκα πουθενα...Παρόλα αυτά: Quote The MIPS32 Instruction Set states that the word unsigned as part of Add and Subtract instructions, is a misnomer. The difference between signed and unsigned versions of commands is not a sign extension (or lack thereof) of the operands, but controls whether a trap is executed on overflow (e.g. Add) or an overflow is ignored (Add unsigned). An immediate operand CONST to these instructions is always sign-extended πηγή: http://en.wikipedia.org/wiki/MIPS_architecture#MIPS_assembly_languageδηλαδή αν το κάνεις unsigned απλά αγνοεί αν γίνει overflow Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Faros on May 24, 2011, 02:27:12 am Quote να τυπώνει τις ακέραιες ρίζες των αριθμών n από 1 έως 2^q για δεδομένη ακέραια τιμή q Δηλαδη για q=3 πχ,θα βρισκει τις ακεραιες ριζες των 1,2,3,4,5,6,7,8. Στο προγραμμα C που μας εχει δωσει εχει unsigned n =1 << atoi(argv[1]); ,πρακτικα το n ετσι οπως το εχει ειναι το 2^q οπου το q=0.Το τρεχεις και βρισκει τις ακαιρες ριζες του 1.Αμα δωσεις αλλη τιμη,θα βρισκει τις ριζες μεχρι εκεινη τη τιμη. Γενικα για μεταφορά του προγραμματος σε αλλο σημειο εχεις τις : j isqrt1 jal isqrt1 Η μεν πρωτη σε μεταφερει στην ετικετα που δειχνει. Η jal κανει το ιδιο αλλα κραταει επισης και τι διευθυνση μνημης στην οποια εγινε η μεταφορα,για να μπορει να επανελθει. Quote #Return code lw $ra, 20($sp) #Restore return address lw $fp, 16($sp) #Restore old frame pointer addiu $sp, $sp, 32 #Pop stack jr $ra #Return to caller Αυτες ειναι οι εντολες που χρησμοποιουσε για να επανελθει στη πρωτη εργασια,βεβαια για να δουλεψουν πρεπει να εχεις αποθηκευσει καταληλα τη return address και το old frame pointer.Δες το σκελετο της πρωτης εργασιας βασικα,ετοιμα τα εχει. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on May 24, 2011, 02:34:48 am Quote να τυπώνει τις ακέραιες ρίζες των αριθμών n από 1 έως 2^q για δεδομένη ακέραια τιμή q Δηλαδη για q=3 πχ,θα βρισκει τις ακεραιες ριζες των 1,2,3,4,5,6,7,8. Στο προγραμμα C που μας εχει δωσει εχει unsigned n =1 << atoi(argv[1]); ,πρακτικα το n ετσι οπως το εχει ειναι το 2^q οπου το q=0.Το τρεχεις και βρισκει τις ακαιρες ριζες του 1.Αμα δωσεις αλλη τιμη,θα βρισκει τις ριζες μεχρι εκεινη τη τιμη. Quote Γενικα για μεταφορά του προγραμματος σε αλλο σημειο εχεις τις : j isqrt1 jal isqrt1 Η μεν πρωτη σε μεταφερει στην ετικετα που δειχνει. Η jal κανει το ιδιο αλλα κραταει επισης και τι διευθυνση μνημης στην οποια εγινε η μεταφορα,για να μπορει να επανελθει. Quote #Return code lw $ra, 20($sp) #Restore return address lw $fp, 16($sp) #Restore old frame pointer addiu $sp, $sp, 32 #Pop stack jr $ra #Return to caller Αυτες ειναι οι εντολες που χρησμοποιουσε για να επανελθει στη πρωτη εργασια,βεβαια για να δουλεψουν πρεπει να εχεις αποθηκευσει καταληλα τη return address και το old frame pointer.Δες το σκελετο της πρωτης εργασιας βασικα,ετοιμα τα εχει. αυτο το ξερω...λεω οτι θελω π.χ. να κανω return το αποτελεσμα της isqrt1 ετσι ωστε να το εμφανισω στην isqrtTest...οπωσ δειχνει και ο κωδικας στην c... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Faros on May 24, 2011, 02:43:09 am Δε χρειαζετε τιποτα ιδιαιτερο για αυτο,αποθηκευεις το αποτελεσματα σε δυο καταχωρητες πχ $16 και $17,και αυτα ειναι προσβασιμα και εκτος των συναρτησεων isqrt1 και isqrt2.Και εννοειτε προσεχεις να μη γραψεις τιποτα αλλο πανω τους μεχρι να τα εκτυπωσει η isqrtTest.
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on May 24, 2011, 02:47:54 am Δε χρειαζετε τιποτα ιδιαιτερο για αυτο,αποθηκευεις το αποτελεσματα σε δυο καταχωρητες πχ $16 και $17,και αυτα ειναι προσβασιμα και εκτος των συναρτησεων isqrt1 και isqrt2.Και εννοειτε προσεχεις να μη γραψεις τιποτα αλλο πανω τους μεχρι να τα εκτυπωσει η isqrtTest. α μια χαρα...σε ευχαριστω πολυ... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Orfikoss on May 24, 2011, 08:54:19 am Κατά σύμβαση όμως τα ορίσματα αποθηκεύονται στους καταχωρητές $a και οι επιστρεφόμενες τιμές στους $v
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on May 24, 2011, 22:39:13 pm Για την εντολή που είναι σε C,n =1 << atoi(argv[1]),πρέπει να την γράψουμε κάπως στον κώδικά μας:Εκτός του ότι δεν έχω καταλάβει τι ακριβώς κάνει,αρχικά την ορίζει και μετά ζητάει να την δίνουμε στην κονσόλα.Οπότε δεν μπορώ να καταλάβω για ποιο λόγο την ορίζει αρχικά.Κάποια βοήθεια:
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on May 24, 2011, 22:44:58 pm Για την εντολή που είναι σε C,n =1 << atoi(argv[1]),πρέπει να την γράψουμε κάπως στον κώδικά μας:Εκτός του ότι δεν έχω καταλάβει τι ακριβώς κάνει,αρχικά την ορίζει και μετά ζητάει να την δίνουμε στην κονσόλα.Οπότε δεν μπορώ να καταλάβω για ποιο λόγο την ορίζει αρχικά.Κάποια βοήθεια: https://www.thmmy.gr/smf/index.php?topic=45627.0 λέει κάποια πράματα που ίσως τα βρεις χρήσιμα. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: πρεζ on May 26, 2011, 11:52:10 am μπορει καποιος να μ πει τι κανει αυτη η εντολη
root<<=1 ξερω οτι σημαινει αριστερη λογικη ολισθηση το << ( αν δεν κανω λαθος ) αλλα με το ισον ? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: di_em on May 26, 2011, 12:40:55 pm μπορει καποιος να μ πει τι κανει αυτη η εντολη root<<=1 ξερω οτι σημαινει αριστερη λογικη ολισθηση το << ( αν δεν κανω λαθος ) αλλα με το ισον ? Είναι ισοδύναμο με το root=root<<1 Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: πρεζ on May 26, 2011, 12:45:17 pm thank you !
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on May 26, 2011, 19:20:38 pm Στο τμήμα του κώδικα
root <<= 1; rem = ((rem<<2) + (a>>30)); a <<= 2; Στην τρίτη εντολή (a <<= 2),το a είναι αυτό που του έχει γίνει ήδη ολίσθηση κατα 30 δεξιά;Η για το a>>30 χρησιμοποιούμε πάντα την ίδια τιμή,που είναι το όρισμα που δίνουμε εμείς; Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Room on May 27, 2011, 17:11:11 pm Στο τμήμα του κώδικα root <<= 1; rem = ((rem<<2) + (a>>30)); a <<= 2; Στην τρίτη εντολή (a <<= 2),το a είναι αυτό που του έχει γίνει ήδη ολίσθηση κατα 30 δεξιά;Η για το a>>30 χρησιμοποιούμε πάντα την ίδια τιμή,που είναι το όρισμα που δίνουμε εμείς; Δεν είμαι σίγουρος για το αν καταλαβαίνω την ερώτησή σου, γι'αυτό θα σου γράψω το ισοδύναμο σε διαιρέσεις που νομίζω θα απαντήσει την ερώτηση σου. Code: root = root * 2 Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Vicariously,I on May 27, 2011, 23:02:49 pm να ρωτησω κατι βασικο.. :P
εχει a>>30 στον κωδικα οποτε φανταζομαι καταχωρουμε το 1010 δυαδικο =10 δεκαδικο π.χ. στα 4 πιο σημαντικα ψηφια της 32bitης λέξης?αυτο δε μας δυσκολευει στην υλοποιηση του κωδικα? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Room on May 28, 2011, 03:56:44 am να ρωτησω κατι βασικο.. :P εχει a>>30 στον κωδικα οποτε φανταζομαι καταχωρουμε το 1010 δυαδικο =10 δεκαδικο π.χ. στα 4 πιο σημαντικα ψηφια της 32bitης λέξης?αυτο δε μας δυσκολευει στην υλοποιηση του κωδικα? Τι εννοείς; Ρωτάω γιατί όταν υλοποιείς την πράξη α >> 30 δεν ασχολείσαι με μετατροπές. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Silvo the Beautiful on May 28, 2011, 12:29:50 pm unsigned n = 1 << atoi(argv[1]) τι κανει αυτο παιδια? Δεν εχω καταλαβει και δεν μπορω να καταλαβω το προγραμμα
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on May 28, 2011, 13:36:33 pm unsigned n = 1 << atoi(argv[1]) τι κανει αυτο παιδια? Δεν εχω καταλαβει και δεν μπορω να καταλαβω το προγραμμα Για την εντολή που είναι σε C,n =1 << atoi(argv[1]),πρέπει να την γράψουμε κάπως στον κώδικά μας:Εκτός του ότι δεν έχω καταλάβει τι ακριβώς κάνει,αρχικά την ορίζει και μετά ζητάει να την δίνουμε στην κονσόλα.Οπότε δεν μπορώ να καταλάβω για ποιο λόγο την ορίζει αρχικά.Κάποια βοήθεια: https://www.thmmy.gr/smf/index.php?topic=45627.0 λέει κάποια πράματα που ίσως τα βρεις χρήσιμα. πάρε και συ εδώ μπας και σου φανεί χρήσιμο. επίσης η atoi είναι ASCII to integer. Το πρόγραμμα στη c είναι πολύ σημαντικό να το καταλάβουμε. Νομίζω αν καταλάβουμε το πρόγραμμα μετά απλοποιείται αρκετά το γράψιμό του σε assembly. Αρκετά βοηθητικό υλικό στο να καταλάβουμε το πρόγραμμα είναι αυτή (http://www.embedded-systems.com/98/9802fe2.htm) η σελίδα ( η οποία περιέχεται στο pdf στο ethmmy ), η οποία εξηγεί τον αλγόριθμο του Νεύτωνα. Τώρα, τι κάνει αυτή η εντολή που έγραψες. Εξηγώ ( από δεξιά προς τ αριστερά ) Το όρισμα argv[1] δίνεται κατά τη στιγμή της εκτέλεσης του προγράμματος. Περισσότερες πληροφορίες στο σύνδεσμο επάνω, στο βιβλίο που μας μοίρασαν στο δομημένο και στο internet. Το όρισμα που δίνεται, είναι αλφαριθμητικό. Οπότε η εντολή atoi αναλαμβάνει να το μετατρέψει σε αριθμητικό για να μπορέσει να το χρησιμοποιήσει μετά το πρόγραμμα. Το σύμβολο << σημαίνει αριστερή ολίσθηση, πρακτικά πολλαπλασιασμός 1 ( αριστερό σκέλος του << ) επί 2^atoi(argv[1]) ( δεξιό σκέλος του << ) Το σύμβολο = ξέρεις τι κάνει. Και όλο αυτόν τον αριθμό τον αποθηκεύει στο μη προσημασμένο n. Περισσότερες πληροφορίες για τους μη προσημασμένους εδώ (https://www.thmmy.gr/smf/index.php?topic=45348.msg798148#msg798148) Αν παρατηρήσεις το πρόγραμμα η εντολή που θες να μάθεις τι κάνει, στην ουσία βάζει στη μεταβλητή n τον αριθμό 2^q όπου q είναι το argv[1] που δίνει ο χρήστης Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: mkiatos on May 28, 2011, 16:04:02 pm Όταν κάνω ολίσθηση πρέπει να αποθήκευω το αποτέλεσμα σε αλλο καταχωρητή???? :)
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Silvo the Beautiful on May 28, 2011, 16:10:03 pm thanks ρε μεγαλε :-*
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: kbelouis on May 29, 2011, 18:00:16 pm η ασκηση πρεπει να γινει με floating registers?
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Ariel on May 30, 2011, 16:35:00 pm Όταν κάνω ολίσθηση πρέπει να αποθήκευω το αποτέλεσμα σε αλλο καταχωρητή???? :) όχι σου δίνεται η επιλογή να το αποθηκεύσεις στον ίδιο στον Rdest αν δεν χρειαζεσαι την παλια τιμη :)Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Laharl on May 31, 2011, 13:03:33 pm Ξέρετε πως μπορώ να κάνω πολλαπλασιασμό?Είδα την εντολή mult αλλα μετά πως θα πάρουμε το αποτέλεσμα αυτής της εντολής από την στιγμή που από όσο βλέπω στο βιβλίο δεν αποθηκεύει πουθενά το αποτέλεσμα?Με την εντολή mfhi ή mflo?
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on May 31, 2011, 16:18:44 pm Ξέρετε πως μπορώ να κάνω πολλαπλασιασμό?Είδα την εντολή mult αλλα μετά πως θα πάρουμε το αποτέλεσμα αυτής της εντολής από την στιγμή που από όσο βλέπω στο βιβλίο δεν αποθηκεύει πουθενά το αποτέλεσμα?Με την εντολή mfhi ή mflo? mul $t0,$t1,$t2...πολλαπλασιζει το t1*t2 και το καταχωρει στο t0Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on May 31, 2011, 17:09:11 pm Τον αριθμό q θέλει να τον δίνουμε εμείς στην κονσόλα ή το ορίζουμε στο τμήμα σταθερών;
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on May 31, 2011, 17:14:24 pm Τον αριθμό q θέλει να τον δίνουμε εμείς στην κονσόλα ή το ορίζουμε στο τμήμα σταθερών; To β... Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Sage on May 31, 2011, 20:50:50 pm Γενικα για μεταφορά του προγραμματος σε αλλο σημειο εχεις τις : To jr?? ::)j isqrt1 jal isqrt1 Η μεν πρωτη σε μεταφερει στην ετικετα που δειχνει. Η jal κανει το ιδιο αλλα κραταει επισης και τι διευθυνση μνημης στην οποια εγινε η μεταφορα,για να μπορει να επανελθει. Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Orfikoss on June 01, 2011, 00:38:16 am jr : jump register
jr $ra πάει στη θέση μνήμης που δείχνει κάποιος καταχωρητής Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: maya_the_bee on June 01, 2011, 00:47:36 am [/quote] Το σύμβολο << σημαίνει αριστερή ολίσθηση, πρακτικά πολλαπλασιασμός 1 ( αριστερό σκέλος του << ) επί 2^atoi(argv[1]) ( δεξιό σκέλος του << ) [/quote] Συγγνώμη αν η ερώτηση είναι χαζή αλλά αυτό γιατί χρησιμεύει; Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on June 01, 2011, 01:54:06 am [/quote] Συγγνώμη αν η ερώτηση είναι χαζή αλλά αυτό γιατί χρησιμεύει; [/quote] θα μπορουσε να το κάνει κι αλλιως, αλλα θα χρειαζόταν να κανει #include την αντιστοιχη κεφαλιδα, να χρησιμοποιήσει την αντιστοιχη ετοιμη συναρτηση για δυνάμεις... ενω έτσι είναι πιο απλό για ποζεριά βασικά :P ;D και αν θες να κάνεις κάτι quote υπάρχει ειδικό κουμπάκι δεξιά από τον τίτλο της απάντησης που θέλεις να quotάρεις... για να μην παιδεύεσαι και να ναι και πιο ευχρηστο ;) Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: maya_the_bee on June 01, 2011, 03:38:55 am Συγγνώμη αν η ερώτηση είναι χαζή αλλά αυτό γιατί χρησιμεύει; [/quote] θα μπορουσε να το κάνει κι αλλιως, αλλα θα χρειαζόταν να κανει #include την αντιστοιχη κεφαλιδα, να χρησιμοποιήσει την αντιστοιχη ετοιμη συναρτηση για δυνάμεις... ενω έτσι είναι πιο απλό για ποζεριά βασικά :P ;D και αν θες να κάνεις κάτι quote υπάρχει ειδικό κουμπάκι δεξιά από τον τίτλο της απάντησης που θέλεις να quotάρεις... για να μην παιδεύεσαι και να ναι και πιο ευχρηστο ;) [/quote] έκανα και quote τώρα.. ελπίζω δλδ.. η ερώτηση μου όμως είναι πιο "απλοϊκή" ( :???:) καταλαβαίνω τι κάνει η εντολή αλλά γιατί το κάνει δεν καταλαβαίνω.. εννοώ οκ δέχεται από το πληκτρολόγιο κάτι και το κάνει αριθμό. γιατί πρέπει να το μετατρέψει σε 1*2^atoi(argv[1]); Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on June 01, 2011, 11:55:40 am γιατί πρέπει να το μετατρέψει σε 1*2^atoi(argv[1]); γιατί αυτό ορίζει ως n θα μπορουσε να ορίσει ως n το 3^atoi(argv[1]) αλλα αυτός ορίζει το 2^atoi(argv[1]) σε θέματα ορισμού το γιατί δεν έχει τόσο νόημα ( αφού ορίζουμε κάτι αυθαίρετα ) δες και την πρώτη πρόταση της 2ης εργασίας. σου ορίζει ποιες τετραγωνικες ριζες θελεις να βρεις Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: maya_the_bee on June 01, 2011, 12:26:43 pm γιατί πρέπει να το μετατρέψει σε 1*2^atoi(argv[1]); γιατί αυτό ορίζει ως n θα μπορουσε να ορίσει ως n το 3^atoi(argv[1]) αλλα αυτός ορίζει το 2^atoi(argv[1]) σε θέματα ορισμού το γιατί δεν έχει τόσο νόημα ( αφού ορίζουμε κάτι αυθαίρετα ) δες και την πρώτη πρόταση της 2ης εργασίας. σου ορίζει ποιες τετραγωνικες ριζες θελεις να βρεις Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Sage on June 01, 2011, 18:49:13 pm sw $fp, 16($sp) #Save old frame pointer
addiu $fp, $sp, 28 #Set up new frame pointer Αυτές τις 2 εντολές, στην προηγούμενη άσκηση γιατί τις χρησιμοποιούσαμε?? τι ακρίβως κάνουν?? :-\ θα τις χρειαστούμε και σ'αυτή την άσκηση? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on June 01, 2011, 19:03:10 pm sw $fp, 16($sp) #Save old frame pointer Τις 4 πρωτες εντολες που ειχαμε στην main τις βαζεις παντα σε οποιαδηποτε καινουρια συναρτηση...εκει τις ειχαμε στην main,initialise,find_primes κτλ...μπορεις να τσεκαρεις..και στις σημειωσεις λεει γιατι τις βαζουμε...φτιαχνει την στοιβα..addiu $fp, $sp, 28 #Set up new frame pointer Αυτές τις 2 εντολές, στην προηγούμενη άσκηση γιατί τις χρησιμοποιούσαμε?? τι ακρίβως κάνουν?? :-\ θα τις χρειαστούμε και σ'αυτή την άσκηση? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Sage on June 01, 2011, 19:40:59 pm sw $fp, 16($sp) #Save old frame pointer Τις 4 πρωτες εντολες που ειχαμε στην main τις βαζεις παντα σε οποιαδηποτε καινουρια συναρτηση...εκει τις ειχαμε στην main,initialise,find_primes κτλ...μπορεις να τσεκαρεις..και στις σημειωσεις λεει γιατι τις βαζουμε...φτιαχνει την στοιβα..addiu $fp, $sp, 28 #Set up new frame pointer Αυτές τις 2 εντολές, στην προηγούμενη άσκηση γιατί τις χρησιμοποιούσαμε?? τι ακρίβως κάνουν?? :-\ θα τις χρειαστούμε και σ'αυτή την άσκηση? σ'αυτή την άσκηση όμως δεν μας ζητάει να κάνουμε την main.. θα κάνουμε κατευθείαν, μόνο τις διαδικασίες isqrt1,isqrt2,isqrtTest σχεδόν ξεκάρφωτες και θα τις παραδώσουμε?? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: goustafson on June 01, 2011, 20:53:58 pm Ξέρει κανείς τι πρέπει να κάνουμε για το 2ο ερώτημα που αναφέρεται στην πολυπλοκότητα (ταχύτητα σύγκλισης) των δύο μεθόδων;;;
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on June 01, 2011, 21:41:34 pm sw $fp, 16($sp) #Save old frame pointer Τις 4 πρωτες εντολες που ειχαμε στην main τις βαζεις παντα σε οποιαδηποτε καινουρια συναρτηση...εκει τις ειχαμε στην main,initialise,find_primes κτλ...μπορεις να τσεκαρεις..και στις σημειωσεις λεει γιατι τις βαζουμε...φτιαχνει την στοιβα..addiu $fp, $sp, 28 #Set up new frame pointer Αυτές τις 2 εντολές, στην προηγούμενη άσκηση γιατί τις χρησιμοποιούσαμε?? τι ακρίβως κάνουν?? :-\ θα τις χρειαστούμε και σ'αυτή την άσκηση? σ'αυτή την άσκηση όμως δεν μας ζητάει να κάνουμε την main.. θα κάνουμε κατευθείαν, μόνο τις διαδικασίες isqrt1,isqrt2,isqrtTest σχεδόν ξεκάρφωτες και θα τις παραδώσουμε?? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on June 02, 2011, 16:35:45 pm Θέλουμε να τυπώνει τις ρίζες από 1 εώς 2^q,δλδ 1,2,3,4,5,..,2^q, ή 2^0,2^1,2^2,2^3,..,2^q;Το argv[1] είναι το q δηλώνουμε ως define?
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on June 02, 2011, 17:26:10 pm Mην κανετε την ζωη σας δυσκολη...εγω ετρεξα το προγραμμα στην c και εκτυπωνει τις ριζες απο 1 εως n το οποιο το οριζεις εσυ στον κωδικα(δεν το παιρνει απο την κονσολα...).το atoi ειναι για να μετατρεψει το n αν βαλεις αντι για αριθμο χαρακτηρα(για αυτο και ολα τα ορισματα ειναι unsigned)...δοκιμασε πχ να βαλεις το γραμμα 'a'..το μετατρεπει σε intiger (και το εμφανιζει κιολας) και εκτυπωνει τις ριζες του intiger πλεον...αυτο το κανουμε στην assembly βαζοντας u πχ στην add(addu)..τωρα απο κει και περα η εκφωνηση πιστευω οτι λεει n=2^q. εγω δλδ εβαλα σαν define το q και μεσα στην main υπολογιζω το n=2^q με μια loop και μετα υπολογιζω τις ριζες του n...απλα τα πραγματα (νομιζω παντα)...κατι τελευταιο:αν θελεις να σου εμφανιζει ο compiler το αποτελεσμα(μιλαω για το αρχειο της c) σβησε το return 0 και βαλε system("pause")...και θα διαπιστωσεις αυτα που σου λεω...
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on June 02, 2011, 17:41:50 pm Οκ ευχαριστώ!Αυτός ο κώδικας στη C η αλήθεια είναι ότι μου έκανε τη ζωή δύσκολη...Αν και ο κώδικας που έγραψα μου τρέχει δεν ήξερα αν θέλει αυτός κάτι παραπάνω που δεν καταλαβαίνω απ την C..
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: gt on June 02, 2011, 18:24:17 pm Οκ ευχαριστώ!Αυτός ο κώδικας στη C η αλήθεια είναι ότι μου έκανε τη ζωή δύσκολη...Αν και ο κώδικας που έγραψα μου τρέχει δεν ήξερα αν θέλει αυτός κάτι παραπάνω που δεν καταλαβαίνω απ την C.. το καλο με τον κωδικα ειναι οτι τον κανεις αντιγραφη και μπορεις μετα να συγκρινεις τα αποτελεσματα για να δεις αν εισαι και σωστος... 8))Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Sage on June 03, 2011, 00:49:55 am Ξέρει κανείς τι πρέπει να κάνουμε για το 2ο ερώτημα που αναφέρεται στην πολυπλοκότητα (ταχύτητα σύγκλισης) των δύο μεθόδων;;; +1Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: ScytheB on June 03, 2011, 16:11:14 pm Ξέρει κανείς τι πρέπει να κάνουμε για το 2ο ερώτημα που αναφέρεται στην πολυπλοκότητα (ταχύτητα σύγκλισης) των δύο μεθόδων;;; +1Quote ++ Οντως τι ακριβώς ενοεί ;;; Το μόνο που μου έρχεται είναι να μετρήσουμε τα Instructions που εκτελούνται συνολικά αλλα "ταχύτητα σύγκλισης" ;;;;;;; Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: raf on June 04, 2011, 00:24:39 am m = (l+u) >> 1; ti akrivws shmainei auth h entolh?
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on June 04, 2011, 00:26:02 am Μήπως εννοεί πόσες επαναλήψεις θα κάνει η κάθε μέθοδος μέχρι να βρει το σωστό ακέραιο??Δλδ πόσο γρήγορα θα βρει αποτέλεσμα?
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on June 04, 2011, 00:30:18 am m = (l+u) >> 1; ti akrivws shmainei auth h entolh? Προσθέτει τις l,u ,τις κάνει δεξιά ολίσθηση κατά 1 και τις τοποθετεί στην μεταβλητή m.Ισοδυναμεί με (l+u)/2,σαν να βρίσκει το μέσον του διαστήματος μεταξύ l και u.Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: epi on June 04, 2011, 18:46:32 pm στην εργασία ζηταει να γραψουμε και 3 παραγραφους.. αυτες π θα τις γράψουμε σε word?? και τι θα ανεβάσουμε 2 αρχεία (1 τον κωδικα και 1 τις παραγράφους)??
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: tonis on June 04, 2011, 19:55:42 pm στην εργασία ζηταει να γραψουμε και 3 παραγραφους.. αυτες π θα τις γράψουμε σε word?? και τι θα ανεβάσουμε 2 αρχεία (1 τον κωδικα και 1 τις παραγράφους)?? Αυτο το λιγότερο ειναι.... τι εννοει την υλοποίηση σε assembly?? Εγω εχω comments οπως στην 1η εργασία σε καθε γραμμη κώδικα του MIPS απο δίπλα τις αντίστοιχες εντολές σε C! Οσον αφορά την πολυπλοκότητα, εγω προσωπικά τουλάχιστον εγραψα καποια πράγματα που θυμόμουν απτον Ντελόπουλο (αλγόριθμοι - Συστήματα Υπολογιστών) βρηκα για την κάθε συνάρτηση την πολυπλοκότητα και εδειξα οτι ο 2ος ειναι πιο γρηγορος απτον 1ο. Το προβλημά μου ειναι τι πρεπει να γράψουμε για την υλοποίηση? :-X Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: πρεζ on June 04, 2011, 20:06:47 pm φιλε μαλλον εννοει να κανεις την υλοποιηση στο spim
εγω θελω να ρωτησω κατι αλλο βασικα τρεχω το προγραμμα αλλα μολις φτανει να μπει στην while της isqrt1 παγωνει και το μονο που κανει ειναι να αυξανεται o PC κατω κατω που τον δειχνει οπως ανοιγεις το spim εχει κανεις καμια ιδεα ? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Faros on June 04, 2011, 20:11:59 pm φιλε μαλλον εννοει να κανεις την υλοποιηση στο spim εγω θελω να ρωτησω κατι αλλο βασικα τρεχω το προγραμμα αλλα μολις φτανει να μπει στην while της isqrt1 παγωνει και το μονο που κανει ειναι να αυξανεται o PC κατω κατω που τον δειχνει οπως ανοιγεις το spim εχει κανεις καμια ιδεα ? Ισως να εχεις καποιο λαθος,και η συνθηκη του while να ισχυει παντα,οποτε και επαναλαμβανει αυτο το loop συνεχεια.Δοκιμασε να το τρεξεις βημα-βημα με το f10 για να δεις τι πεζει ακριβως, Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: πρεζ on June 04, 2011, 20:25:07 pm οκ, τνξ θα το κοιταξω κ ετσι να δω μπας κ βγει καμια ακρη
οντως κατι πρεπει να παιζει εκει με την while Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Vicariously,I on June 04, 2011, 21:58:49 pm να ρωτησω και γω κατι!
την πολυπλοκοτητα πως την βρισκετε? εγω ετσι οπως το τρεχω το προγραμμα single step στο QtSpim βλεπω οτι η δευτερη με το for,την επαναληψη 16 φορες ειναι πιο αργη απο την πρωτη.μπορει να'ναι και ιδεα μου. πρεπει να υπολογισουμε πολ/μους και αλλες πραξεις για να απαντησουμε? μπορει να βοηθησει καποιος? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Orfikoss on June 04, 2011, 22:31:03 pm http://en.wikipedia.org/wiki/Big_O_notation
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: loukasd on June 05, 2011, 00:51:24 am orfea agori mou an einai na apantas dwse mia akrivh kai oxi aoristh apanthsh!
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Άδης on June 05, 2011, 01:02:52 am Αυτο το λιγότερο ειναι.... τι εννοει την υλοποίηση σε assembly?? Εγω εχω comments οπως στην 1η εργασία σε καθε γραμμη κώδικα του MIPS απο δίπλα τις αντίστοιχες εντολές σε C! Οσον αφορά την πολυπλοκότητα, εγω προσωπικά τουλάχιστον εγραψα καποια πράγματα που θυμόμουν απτον Ντελόπουλο (αλγόριθμοι - Συστήματα Υπολογιστών) βρηκα για την κάθε συνάρτηση την πολυπλοκότητα και εδειξα οτι ο 2ος ειναι πιο γρηγορος απτον 1ο. Το προβλημά μου ειναι τι πρεπει να γράψουμε για την υλοποίηση? :-X Κι εγώ σε αυτό έχω κολλήσει τώρα. Πρέπει να γράψουμε αναλυτικά τι κάνουμε γραμμή προς γραμμή ή κάποια γενικά πραγματάκια; Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Orfikoss on June 05, 2011, 01:06:24 am orfea agori mou an einai na apantas dwse mia akrivh kai oxi aoristh apanthsh! αυτό είναι φίλος, αν σαρέσει :P :D Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Groucho on June 05, 2011, 13:08:57 pm σε C πως σας τρεχει?
εμενα δε μ αναγνωριζει το atoi Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Dune on June 05, 2011, 14:27:09 pm Έχεις βάλει την stdlib.h;
Quote #include <stdio.h> #include <stdlib.h> Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Groucho on June 05, 2011, 14:34:23 pm οχι δεν το χα βαλει.
τωρα βγαζει assertion failure.ευχαριστω παντως με τη main που εχει ορισματα τι ακριβως παιζει ομως? Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Primus on June 05, 2011, 14:50:42 pm Κι επαναλαμβανω....για τη ταχυτητα συγκλισης, μπορει καποιος να πει κατι πιο συγκεκριμενο??? :???:
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: varvoutis on June 05, 2011, 15:44:25 pm σε C πως σας τρεχει? εμενα δε μ αναγνωριζει το atoi εξαρτάται ποιον compiler χρησιμοποιεις... ας πούμε εγω που χρησιμοποιώ Xcode δε χρειαστηκε να το βάλω οχι δεν το χα βαλει. τωρα βγαζει assertion failure.ευχαριστω παντως με τη main που εχει ορισματα τι ακριβως παιζει ομως? επίσης δες και εδώ (https://www.thmmy.gr/smf/index.php?topic=45627.0) Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Groucho on June 05, 2011, 17:27:43 pm ναι τα δα.θενξ α λοτ
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Avraam on June 05, 2011, 19:46:46 pm Γνωριζει κανεις πως θα την παραδωσουμε..???Ενα word και ενα σε .s η ολα στο αρχειο που εχουμε το προγραμμα σε Assembly..???? :-\
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Groucho on June 05, 2011, 20:02:58 pm ε θα βγαλει καμια ανακοινωση στις 12 παρα 3 παλι
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: Elade on June 05, 2011, 20:23:19 pm ξέρει κανείς που αποθηκεύουμε την επιστρεφόμενη τιμή της συνάρτησης?
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: png on June 05, 2011, 20:23:54 pm $v0
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: shadows_fall on June 05, 2011, 20:51:44 pm Παιδια για τη πολυπλοκοτητα δεν εχει κανει κανεις κατι?Εχει ξαναρωτηθει,οποιος μπορει ας πει 5 πραγματα για να καταλαβουμε τι παιζει συγκεκριμενα
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: raf on June 05, 2011, 22:19:56 pm thn atoi thn xrhsimpoioume kateu8eian xwris na grapsoume allh sunarthsh???
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: evi_pl on June 05, 2011, 23:15:57 pm Τελικά πως την ανεβάζουμε την εργασία??Κάποιος???
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: christgc on June 06, 2011, 00:03:59 am Λογικά όπως και την πρώτη Ονοματεπώνυμο_ΑΕΜ_Αριθμός εργασίας....
Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS Post by: sok on June 06, 2011, 00:04:34 am Ρε παίδες κάποιος την πολυπλοκότητα.Να στείλουμε ένα rar για παράδοση?
|