THMMY.gr

Μαθήματα Βασικού Κύκλου => Αρχιτεκτονική Υπολογιστών => Topic started by: Ariel on April 18, 2011, 17:57:25 pm



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 χρειαζεται κ τπτ αλλο?
+1


Title: 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
ρε παιδιά εγώ έχω κάτι πολύ βασικές ερωτησούλες αν μπορεί κάποιος να βοηθήσει...
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);

θεεενκς!
για την 3η ερώτηση δλδ την αποθήκευση του δείκτη σε αλλόν καταχωρητή εκτός από τον $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 η γινεται και αλλιώς
δηλαδή έτσι         lw $s1,$s2($a1)        αυτο θελεις να πεις??


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:  
        movi r1, 1              ; $0001
        lsli r1, 8              ; $0100
        jsr message

        jsr sieve

        movi r1, 1              ; $0001
        lsli r1, 8              ; $0100
        bseti r1, 7             ; $0180
        jsr message

        jsr print_sieve
        halt


message:
        ; copies he string pointed to by r1 to the parallel
        ; terminal. Modifies r1; uses r2,r3 and r10.

        ; initialize r10 as pointer to the parallel terminal
        ; at $7000. Note that bit 9 is wired to nclear,
        ; while bit 8 is wired to strobe, and bits 7..0 are
        ; are terminal data bits.
        ;
        movi r10, 7             ; $0007
        lsli r10, 12            ; $7000 base address
        movi r3, 0              ; $0000 for null-check

p1:
        ldw r2, 0(r1)           ; load next char to r2
        cmpe r2, r3             ; null? (end of string)
        bt p2
        
        bseti r2, 9             ; set terminal nreset-bit
        stw r2, 0(r10)          ; write char to terminal
        bseti r2, 8             ; set clk-bit
        stw r2, 0(r10)          ; to terminal again
        bclri r2, 8             ; reset clk-bit
        stw r2, 0(r10)          ; and to terminal again

        addi r1, 2              ; increment ptr
        br p1                   ; not yet, next char
p2:
        jmp r15                 ; return



sieve:
        ; initialize r14 as pointer to sieve at $8100
        ;
        movi r14, 8             ; $0008
        lsli r14, 4             ; $0080
        addi r14, 1             ; $0081
        lsli r14, 8             ; $8100

        ; initialize r13 as the sieve size, here 256
        ;
        movi r13, 1             ; $0001
        lsli r13, 8             ; $0100

        ; initialize r12 as "marker value" $cccc
        movi r12, $c
        lsli r12, 4
        addi r12, $c
        lsli r12, 4
        addi r12, $c
        lsli r12, 4
        addi r12, $c

clear_sieve:
        ; write the special "marker" value to all sieve
        ; locations. We use r1 as the pointer and r2
        ; as the loop end marker.
        ;
        mov r1, r14             ; first element
        mov r2, r14             ; first element
        addu r2, r13            ; add sieve size twice
        addu r2, r13            ; (byte addressing)
                                ; to get last element

l2:    
        stw r12, 0(r1)          ; store marker at *r1
        addi r1, 2              ; increment pointer
        cmplt r1, r2            ; loop end check
        bt l2                   ; next iteration

mark_even:
        ; mark all even numbers in the sieve
        ;
        mov r1, r14             ; pointer
        movi r3, 2              ; current value is 2    

        addu r1, r3             ; skip sieve entry
        addu r1, r3             ; skip sieve entry
        addu r1, r3             ; skip sieve entry
        addu r1, r3             ; skip sieve entry

l3:
        stw r3, 0(r1)           ; store 2 at *r1
        addi r1, 4              ; increment to next
                                ; even location
        cmplt r1, r2            ; loop end check
        bt l3                   ; next iteration


mark_outer:
        ; outer loop over all odd integers
        ; r4 holds the current value


        movi r4, 3              ; first odd number

mark_odd:
        ; inner loop to mark all multiples of the
        ; current value of r4

        mov r1, r14             ; pointer
        addu r1, r4             ; increment to next
        addu r1, r4             ; multiple in sieve
        addu r1, r4             ; increment to next
        addu r1, r4             ; multiple in sieve

l4:
        cmplt r1, r2            ; in bounds?
        bf el4                  ; no, exit loop
        stw r4, 0(r1)           ; store r4 at *r1
        addu r1, r4             ; increment to next
        addu r1, r4             ; multiple in sieve
        br l4                   ; next iteration

el4:
        ; increment r4 to next odd number
        ;
        addi r4, 2
        
        ; check for outer loop termination
        ;
        cmplt r4, r13           ; r4 < r14?
        bt mark_odd             ; next outer iteration

        ; the sieve is ready now: all positions with
        ; sieve[x] = x are prime numbers.
        jmp r15                 ; return




;
print_sieve:
        ; we assume that r14 still holds a pointer to the
        ; sieve array, and r13 is the size of the sieve.

        movi r10, 7             ; $0007
        lsli r10, 12            ; $7000 terminal base address

        movi r8, 2              ; $0002
        lsli r8, 4              ; $0020 = 32 for linefeed check

        mov r1, r14             ; pointer to sieve
        movi r2, 0              ; counter

p5:
        ldw r4, 0(r1)           ; load sieve value at index
        cmpe r4, r12            ; check sieve[x] == 0xcccc?
        bt star                 ; yes: prime, print a star

dot:                            ; r9 = '.' = $2e
        movi r9, 2
        lsli r9, 4
        addi r9, $e
        br pds

star:                           ; r9 = '*' = $2a
        movi r9, 2
        lsli r9, 4
        addi r9, $a

pds:    ; output symbol from r9 to terminal

        bseti r9, 9             ; terminal.nclear passive
        stw r9, 0(r10)          ; write data    
        bseti r9, 8             ; set strobe bit
        stw r9, 0(r10)          ; write data again      
        bclri r9, 8             ; reset strobe bit
        stw r9, 0(r10)          ; and write again

        addi r2, 1              ; increment index
        addi r1, 2              ; increment sieve pointer

        ; check for line feed after 32 chars (8 rows, 32 cols)
        ;
        cmpe r2, r8
        bt linefeed

pds2:
        cmplt r2, r13           ; check loop end
        bt p5                   ; next iteration

        ; we're done.
        jmp r15                 ; return


linefeed:
        movi r9, 13             ; cr character
        bseti r9, 9             ; terminal.nclear passive
        stw r9, 0(r10)          ; write data
        bseti r9, 8             ; set strobe bit
        stw r9, 0(r10)          ; write data again      
        bclri r9, 8             ; reset strobe bit
        stw r9, 0(r10)          ; and write again

        movi r9, 10             ; linefeed character
        bseti r9, 9             ; terminal.nclear passive
        stw r9, 0(r10)          ; write data
        bseti r9, 8             ; set strobe bit
        stw r9, 0(r10)          ; write data again      
        bclri r9, 8             ; reset strobe bit
        stw r9, 0(r10)          ; and write again

        ; update r8 for next check
        addi r8, 15
        addi r8, 15
        addi r8, 2

        ; back into printing loop
        br pds2

        halt


; the static data


        .org    $0100
        .ascii  "Welcome to the Sieve of Eratosthenes demo!"
        .defw   10
        .defw   13
        .ascii  "Please wait..."
        .defw   0

        .org    $0180
        .ascii  "Ready. Sieve:"
        .defw   10
        .defw   13
        .defw   0

        .end


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."
Οπότε στο ξεκαθαρίζει απ την εκφώνηση...Για το 1ο που είπες δε σε πιάνω...Τι εννοείς με την αλλαγή σειρας?
Εννοεί έως έναν αριθμό n..Μάλλον θέλει να εκτυπώνονται ο ένας κάτω από τον άλλον..


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."
Οπότε στο ξεκαθαρίζει απ την εκφώνηση...Για το 1ο που είπες δε σε πιάνω...Τι εννοείς με την αλλαγή σειρας?
Εννοεί έως έναν αριθμό n..Μάλλον θέλει να εκτυπώνονται ο ένας κάτω από τον άλλον..

Ωχ δίκιο έχεις...Λάθος το διαβαζα...  :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
$t4 ειναι το j?


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
οχι
^seestars^


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 είπε οτι δεν είναι προυπόθεση η πρώτη εργασία για να κάνεις τη δεύτερη, οπότε ξανασκέψου το.


^wav^


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

Παρόλα αυτά:
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
το φανταστηκα αλλα δεν ημουν απολυτως σιγουρος...thnks a lot...εχω ομω και κανα δυο ακομα αποριες...η μια ειναι πως θα κανω return απο μια συναρτηση και η δευτερη ποιο ειναι αυτο το q που ζηταει η ασκηση να ειναι μεχρι 12...γιατι κοιταζοντας τον κωδικα στην  c δεν το βρηκα πουθενα...


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.Αμα δωσεις αλλη τιμη,θα βρισκει τις ριζες μεχρι εκεινη τη τιμη.
α μαλιστα αρα μπορω να βρω τις ριζες των αριθμων μεχρι 2^12...
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
rem = rem * 4 + (a/ 2 ^ 30)
a = a * 4 #Μόνο εδώ αλλάζει η καταχωρημένη τιμή για το a


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 και το καταχωρει στο t0


Title: 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
Έχει καταλάβει κάποιος καλά κάποιος τις διαφορές των εντολών j, jal, jr να μας τις εξηγήσει??

Γενικα για μεταφορά του προγραμματος σε αλλο σημειο εχεις τις :
j isqrt1
jal isqrt1

Η μεν πρωτη σε μεταφερει στην ετικετα που δειχνει.
Η jal κανει το ιδιο αλλα κραταει επισης και τι διευθυνση μνημης στην οποια εγινε η μεταφορα,για να μπορει να επανελθει.
To jr?? ::)


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


Το σύμβολο << σημαίνει αριστερή ολίσθηση, πρακτικά πολλαπλασιασμός 1 ( αριστερό σκέλος του << ) επί 2^atoi(argv[1]) ( δεξιό σκέλος του << )
[/quote]

Συγγνώμη αν η ερώτηση είναι χαζή αλλά αυτό γιατί χρησιμεύει;
[/quote]

θα μπορουσε να το κάνει κι αλλιως, αλλα θα χρειαζόταν να κανει #include την αντιστοιχη κεφαλιδα, να χρησιμοποιήσει την αντιστοιχη ετοιμη συναρτηση για δυνάμεις...

ενω έτσι είναι πιο απλό

για ποζεριά βασικά  :P ;D

και αν θες να κάνεις κάτι quote υπάρχει ειδικό κουμπάκι δεξιά από τον τίτλο της απάντησης που θέλεις να quotάρεις... για να μην παιδεύεσαι και να ναι και πιο ευχρηστο  ;)


Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS
Post by: maya_the_bee on June 01, 2011, 03:38:55 am


Το σύμβολο << σημαίνει αριστερή ολίσθηση, πρακτικά πολλαπλασιασμός 1 ( αριστερό σκέλος του << ) επί 2^atoi(argv[1]) ( δεξιό σκέλος του << )

Συγγνώμη αν η ερώτηση είναι χαζή αλλά αυτό γιατί χρησιμεύει;
[/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
addiu $fp, $sp, 28   #Set up new frame pointer

Αυτές τις 2 εντολές, στην προηγούμενη άσκηση γιατί τις χρησιμοποιούσαμε?? τι ακρίβως κάνουν??  :-\
θα τις χρειαστούμε και σ'αυτή την άσκηση?
Τις 4 πρωτες εντολες που ειχαμε στην main τις βαζεις παντα σε οποιαδηποτε καινουρια συναρτηση...εκει τις ειχαμε στην main,initialise,find_primes κτλ...μπορεις να τσεκαρεις..και στις σημειωσεις λεει γιατι τις βαζουμε...φτιαχνει την στοιβα..


Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS
Post by: Sage on June 01, 2011, 19:40:59 pm
sw $fp, 16($sp)      #Save old frame pointer
addiu $fp, $sp, 28   #Set up new frame pointer

Αυτές τις 2 εντολές, στην προηγούμενη άσκηση γιατί τις χρησιμοποιούσαμε?? τι ακρίβως κάνουν??  :-\
θα τις χρειαστούμε και σ'αυτή την άσκηση?
Τις 4 πρωτες εντολες που ειχαμε στην main τις βαζεις παντα σε οποιαδηποτε καινουρια συναρτηση...εκει τις ειχαμε στην main,initialise,find_primes κτλ...μπορεις να τσεκαρεις..και στις σημειωσεις λεει γιατι τις βαζουμε...φτιαχνει την στοιβα..
Κατάλαβα..  ;)
σ'αυτή την άσκηση όμως δεν μας ζητάει να κάνουμε την 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
addiu $fp, $sp, 28   #Set up new frame pointer

Αυτές τις 2 εντολές, στην προηγούμενη άσκηση γιατί τις χρησιμοποιούσαμε?? τι ακρίβως κάνουν??  :-\
θα τις χρειαστούμε και σ'αυτή την άσκηση?
Τις 4 πρωτες εντολες που ειχαμε στην main τις βαζεις παντα σε οποιαδηποτε καινουρια συναρτηση...εκει τις ειχαμε στην main,initialise,find_primes κτλ...μπορεις να τσεκαρεις..και στις σημειωσεις λεει γιατι τις βαζουμε...φτιαχνει την στοιβα..
Κατάλαβα..  ;)
σ'αυτή την άσκηση όμως δεν μας ζητάει να κάνουμε την main.. θα κάνουμε κατευθείαν, μόνο τις διαδικασίες isqrt1,isqrt2,isqrtTest σχεδόν ξεκάρφωτες και θα τις παραδώσουμε??
εγω θεωρω αυτονοητο οτι πρεπει να κανεις την main...πως αλλωστε θα σου τρεξει...?εν πασει περιπτωσει ομως και στις συναρτησεις πρεπει να βαλεις αυτες τις 4 εντολες...


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ο ερώτημα που αναφέρεται  στην πολυπλοκότητα (ταχύτητα σύγκλισης) των δύο μεθόδων;;;
+1


Title: Re: [Αρχιτεκτονικη Υπ.]Εργασίες 2011 - MIPS
Post by: ScytheB on June 03, 2011, 16:11:14 pm
Ξέρει κανείς τι πρέπει να κάνουμε για το 2ο ερώτημα που αναφέρεται  στην πολυπλοκότητα (ταχύτητα σύγκλισης) των δύο μεθόδων;;;
+1

Quote
++

Οντως τι ακριβώς ενοεί ;;; Το μόνο που μου έρχεται είναι να μετρήσουμε τα 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 για παράδοση?