THMMY.gr

Μαθήματα Βασικού Κύκλου => Αρχιτεκτονική Υπολογιστών => Topic started by: Exomag on April 03, 2013, 00:08:21 am



Title: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on April 03, 2013, 00:08:21 am
Συζήτηση και απορίες για την πρώτη εργασία. Να μένετε εντός θέματος.

Πρώτη Εργαστηριακή Εργασία

Ημερομηνία παράδοσης εργασίας μέχρι 13 Μαϊου 2012


Τρόπος υποβολής: κάθε φοιτητής πρέπει να υποβάλει ένα αρχείο του προγράμματος με όνομα <επίθετο _ονομα_ΑΜ>.s στην επιλογή «Εργαστήριο/Υποβολή πρώτης εργασίας» στην ιστοσελίδα του μαθήματος Αρχιτεκτονική Υπολογιστών στο eTHMMY.

Βιβλιογραφία:
Βιβλίο Patterson and Henessy: Ενότητες 2.1-2.10 του Κεφαλαίου 2 και το υλικό που διατίθεται στην ιστοσελίδα του μαθήματος σχετικά με το προσομοιωτή του MIPS.

Περιγραφή εργασίας

Δίνεται στην Εικόνα 1 πρόγραμμα γραμμένο σε γλώσσα Assembly του επεξεργαστή MIPS που υπολογίζει το παραγοντικό ενός ακεραίου αριθμού και τυπώνει το αποτέλεσμα. Το πρόγραμμα αυτό υλοποιεί το πρόγραμμα σε γλώσσα C που δίνεται στην Εικόνα 2.

Code:
        .data 0x10008000
        .word 10
        .word 1
        .word 0
        .ascii "The factorial of 10 is %d \n"
        .text
        .globl main
main:
        addi $sp, $sp, -32
        sw $ra, 20($sp)
        sw $fp, 16($sp)
        addiu $fp, $sp,28
        lw $a0, 0($gp)
        jal fact
        addi $t0, $gp 12
        sw $t0, 8($gp)
        sw $v0, 8($gp)
        lw $a1, 8($gp)
        jal printf
        lw $ra, 20($sp)
        lw $fp, 16($sp)
        addiu $sp, $sp, 32
        jr $ra
fact:
        addiu $sp, $sp, -32
        sw $ra, 20($sp)
        sw $fp, 16($sp)
        addiu $fp, $sp, 28
        sw $a0, 0($fp)
        lw $v0, 0($sp)
        lw $t0, 4($gp)
        slt $v0, $t0, $t1
        bne $t0, $t1 L2
        and $v0, $v0, $zero
        addi $v0, $v0, 1
        jr L1
L2:
        lw $v1, 0($fp)
        addi $v0, $v1, -1
        sw $v0, 8($gp)
        lw $a0, 8($gp)
        lw $v1, 0($fp)
        mul $a1, $a1, $v1
        jal fact
L1:
        lw $ra, 20($sp)
        lw $fp, 16($sp)
        addiu $sp, $sp, 32
        jr $ra
Εικόνα 1: Πρόγραμμα Υπολογισμού του παραγοντικού αριθμού σε γλώσσα Assembly

Code:
int main()
{
    printf ("The factorial of 10 is %d\n", fact (10));
}

int fact (int n)
{
    if (n < 1)
        return (1):
    else
        return (n * fact (n - 1));
}
Εικόνα 2: Πρόγραμμα υπολογισμού του παραγοντικού αριθμού σε C

Μελετήστε το πρόγραμμα βρείτε τα λάθη που έχει, διορθώστε τα και δοκιμάστε την ορθή λειτουργία του στο προσομοιωτή PCSpim. Στη συνέχεια τοποθετήστε πριν από κάθε εντολή σχόλια που να εξηγούν τη λειτουργία της κάθε εντολής και/η το σκοπό της. Στη συνέχεια υποβάλετε το αρχείο στο eTHMMY με τον τρόπο που εξηγήθηκε παραπάνω. Τα σχόλια να τα τοποθετήσετε όπως τις ετικέτες σε χωριστές γραμμές και να αρχίζουν με β “#” για να είναι δυνατή η συμβολομετάφραση του προγράμματος από το PCspim.

Η λειτουργία του προγράμματος θα ελεγχθεί με διαφορετικά δεδομένα για κάθε υποβληθέν πρόγραμμα.



Source: eTHMMY (http://alexander.ee.auth.gr:8083/eTHMMY/archive/150/downloadFile/5254/First%20Laboratory%20Exercise_2013.pdf)


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Silvo the Beautiful on April 08, 2013, 11:16:33 am
Να ρωτησω παλια χρησιμοποιούσαν το QtSpim... Το PCspim είναι άλλο πρόγραμμα?

Αν ναι απο που να το κατεβάσω?


Υ.Γ το QtSpim με φαινόταν πολύ χάλια πρόγραμμα


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: dpa on April 08, 2013, 15:20:11 pm
δες εδώ για το pcspim:
http://pages.cs.wisc.edu/~larus/spim.html
και
http://spimsimulator.sourceforge.net/

και τα 2 είναι του James Larus
QtSpim is a new user interface for Spim built on the Qt UI framework. Qt is cross-platform, so the same user iterface and same code will run on Windows, Linux, and Mac OS X (yeah!). Moreover, the interface is clean and up-to-date (unlike the archaic X windows interface).


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Niobe on April 12, 2013, 10:33:40 am
πως φορτωνω το προγραμμα στο PCSpim απο το πδφ? το αντεγραψα σε κειμενο word και το εσωσα ως .s αλλα δεν φαινεται να εχει αποτελεσμα..

εδιτ: βασικα μου βγαζει οτι ερρορ εχω καταλαβει οτι εχει.. απλα που μπορω να "δω" το προγραμμα...


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on April 12, 2013, 19:13:45 pm
πως φορτωνω το προγραμμα στο PCSpim απο το πδφ? το αντεγραψα σε κειμενο word και το εσωσα ως .s αλλα δεν φαινεται να εχει αποτελεσμα..

εδιτ: βασικα μου βγαζει οτι ερρορ εχω καταλαβει οτι εχει.. απλα που μπορω να "δω" το προγραμμα...

Στο window του PCSpim μπορείς να δεις τον κώδικα. Επίσης, μπορείς να ανοίξεις το .s αρχείο με κάποιον editor (πχ Wordpad, Notepad++, Sublime Text κλπ) για ευκολότερη επεξεργασία του κώδικα.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Fcoriolis on April 12, 2013, 21:07:15 pm
Μπορεί κάποιος να εξηγήσει τι είναι ο gp και να πει πως χρησιμεύει στην εργασία?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: zidan on April 12, 2013, 21:49:05 pm
Προσωπικά το έβγαλα τελείως γιατί πολύ με δυσκόλεψει κι δουλεύω με $sp...
έχω πρόβλημα στο προσμειωτή,γιατί μου δίνει  το μύνημα ((The following symbols are undefined :printf))
μα εποτίθεται ότι  τη printf τη αναγνωρίζει... :-\ :-\ :-\


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Eragon on April 12, 2013, 21:57:46 pm
Μπορεί κάποιος να εξηγήσει τι είναι ο gp και να πει πως χρησιμεύει στην εργασία?
Ο gp είναι ένας pointer που δείχνει στη διεύθυνση 0x10008000 της μνήμης (γι'αυτο στην αρχη της εργασιας αυτος γραφει .data 0x10008000)
Η χρησιμότητα του δεν ειναι αλλη παρα το οτι η ιδια η γλωσσα σου παρεχει ενα σημειο αναφορας για την αποθηκευση και την κληση των δεδομενων σου.
Οταν γραφεις
   .data 0x10008000
   .word 10
   .word 1
τοτε στο gp[0] (0x10008000) αποθηκευεται το 10 και στο gp[1] (0x10008004) το 1.
Ετσι μετα τα καλεις ως εξης : lw $a0, 0($gp) κλπ
Θα μπορουσες να τον παραλήψεις εντελώς!Τοτε αν έγραφες σκέτο .data θα ξεκιναγε η εγγραφη δεδομένων από την διευθυνση 0x10000000 νομίζω και τη διευθυνση αυτη θα επρεπε να τη δωσεις με lui σε καποιο καταχωρητη ωστε μετα να φορτωνεις μεσω αυτου τα δεδομενα σου.
π.χ.
   
Code:
.data 
.word 4, 3, 1, 2
.text
loop:  
and $s5, $s5, $zero
lui $s5, 0x1000
lw $s1, 0x0000($s5)
lw $s2, 0x0004($s5)
lw $s3, 0x0008($s5)
lw $s4, 0x000c($s5)
Απλως το gp σου δινει τζαμπα ολη αυτη τη λειτουργικοτητα...που λεει ο λογος... :)
τουλαχιστον ετσι τα καταλαβα εγω... :-\


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Eragon on April 12, 2013, 21:59:54 pm
Προσωπικά το έβγαλα τελείως γιατί πολύ με δυσκόλεψει κι δουλεύω με $sp...
έχω πρόβλημα στο προσμειωτή,γιατί μου δίνει  το μύνημα ((The following symbols are undefined :printf))
μα εποτίθεται ότι  τη printf τη αναγνωρίζει... :-\ :-\ :-\
Το printf φαινεται να μη δουλευει όντως,οπότε τύπωσε ό,τι θες με syscall(νομιζω στην παραγραφο με τις εξαιρεσεις τα εχει)


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: zidan on April 13, 2013, 16:23:32 pm
μία απορία έχω,τι ενοοεί με( addi $t0, $gp 12)  :-[ :-\ ?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Fcoriolis on April 14, 2013, 00:35:35 am
είναι λάθος αυτή η εντολή (συντακτικά αλλά και δεν χρειάζεται)


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Fcoriolis on April 14, 2013, 00:37:11 am
Μπορεί κάποιος να εξηγήσει τι είναι ο gp και να πει πως χρησιμεύει στην εργασία?
Ο gp είναι ένας pointer που δείχνει στη διεύθυνση 0x10008000 της μνήμης (γι'αυτο στην αρχη της εργασιας αυτος γραφει .data 0x10008000)
Η χρησιμότητα του δεν ειναι αλλη παρα το οτι η ιδια η γλωσσα σου παρεχει ενα σημειο αναφορας για την αποθηκευση και την κληση των δεδομενων σου.
Οταν γραφεις
   .data 0x10008000
   .word 10
   .word 1
τοτε στο gp[0] (0x10008000) αποθηκευεται το 10 και στο gp[1] (0x10008004) το 1.
Ετσι μετα τα καλεις ως εξης : lw $a0, 0($gp) κλπ
Θα μπορουσες να τον παραλήψεις εντελώς!Τοτε αν έγραφες σκέτο .data θα ξεκιναγε η εγγραφη δεδομένων από την διευθυνση 0x10000000 νομίζω και τη διευθυνση αυτη θα επρεπε να τη δωσεις με lui σε καποιο καταχωρητη ωστε μετα να φορτωνεις μεσω αυτου τα δεδομενα σου.
π.χ.
   
Code:
.data 
.word 4, 3, 1, 2
.text
loop:   
and $s5, $s5, $zero
lui $s5, 0x1000
lw $s1, 0x0000($s5)
lw $s2, 0x0004($s5)
lw $s3, 0x0008($s5)
lw $s4, 0x000c($s5)
Απλως το gp σου δινει τζαμπα ολη αυτη τη λειτουργικοτητα...που λεει ο λογος... :)
τουλαχιστον ετσι τα καταλαβα εγω... :-\

Σ ευχαριστώ πολύ!Τέλειες οδηγίες!


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: thanospr on April 14, 2013, 10:04:14 am
Ο Χασαπης μας ειχε δειξει κατι διαφανιες για την syscall και τα ορισματα που πρεπει να δωσουμε για να τυπωσει και να διαβασει δεδομενα αλλα δεν τις βρισκω.Ξερετε που ειναι η που θα τα βρω στο βιβλιο;


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Fcoriolis on April 14, 2013, 11:28:28 am
Για να τυπώνεις κείμενο πρέπει να έχει η v0 την τιμή 4
και η διεύθηνση της a0 να δείχνει στην αρχική θέση του κειμένου (πχ στην ασκηση la $a0,12($gp))
Για να εκτυπώσεις ακέραιο πρέπει η v0 να έχει τιμή 1 (αυτό το κάνεις με lw κλασικά)
και η a0 να δείχνει στον ακέραιο

αφού εκτελέσεις τις αλλαγές στα v0,a0 τότε καλέις την syscall (σκέτη χωρίς τίποτα δίπλα)

 


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on April 14, 2013, 13:18:39 pm
Για να εκτυπώσεις ακέραιο πρέπει η v0 να έχει τιμή 1 (αυτό το κάνεις με lw κλασικά)
και η a0 να δείχνει στον ακέραιο

Η $a0 πρέπει να περιέχει την τιμή του ακεραίου, όχι να δείχνει στη διεύθυνση μνήμης που είναι αποθηκευμένος!


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Fcoriolis on April 14, 2013, 13:47:16 pm
yeap αυτό εννοούσα! thnks!
Για να εκτυπώσεις ακέραιο πρέπει η v0 να έχει τιμή 1 (αυτό το κάνεις με lw κλασικά)
και η a0 να δείχνει στον ακέραιο

Η $a0 πρέπει να περιέχει την τιμή του ακεραίου, όχι να δείχνει στη διεύθυνση μνήμης που είναι αποθηκευμένος!


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: anchelon on April 14, 2013, 16:14:07 pm
Έστω ότι αρχικά έχουμε τον $sp να δείχνει κάπου(δν μας ενδιαφέρει).Έπειτα για κάποιο λόγο ο $sp μετακινείται. Ο $fp δείχνει αυτόματα εκεί που έδειχνε πριν τη μετακίνηση του ο $sp ?? plzz βοήθεια γιατί έχω κολλήσει (πάντα στο πλαίσιο μιας διαδικασίας, δλδ η διαδικασία μετακίνησε τον $sp)


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on April 14, 2013, 16:43:30 pm
Έστω ότι αρχικά έχουμε τον $sp να δείχνει κάπου(δν μας ενδιαφέρει).Έπειτα για κάποιο λόγο ο $sp μετακινείται. Ο $fp δείχνει αυτόματα εκεί που έδειχνε πριν τη μετακίνηση του ο $sp ?? plzz βοήθεια γιατί έχω κολλήσει (πάντα στο πλαίσιο μιας διαδικασίας, δλδ η διαδικασία μετακίνησε τον $sp)

Ο $fp δεν μετακινείται αυτόματα, πρέπει να τον μετακινείς εσύ αναλόγως (κάθε φορά που μετακινείς και τον $sp).


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: anchelon on April 14, 2013, 16:59:36 pm
Έστω ότι αρχικά έχουμε τον $sp να δείχνει κάπου(δν μας ενδιαφέρει).Έπειτα για κάποιο λόγο ο $sp μετακινείται. Ο $fp δείχνει αυτόματα εκεί που έδειχνε πριν τη μετακίνηση του ο $sp ?? plzz βοήθεια γιατί έχω κολλήσει (πάντα στο πλαίσιο μιας διαδικασίας, δλδ η διαδικασία μετακίνησε τον $sp)

Ο $fp δεν μετακινείται αυτόματα, πρέπει να τον μετακινείς εσύ αναλόγως (κάθε φορά που μετακινείς και τον $sp).
με ποια εντολή θα μπορούσα να τον τοποθετήσω εκεί που ήταν πριν ο $sp?
πχ με κάτι τέτοιο: li $fp,$sp πριν μετακινηθεί ο $sp  :-\??


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Niobe on April 14, 2013, 17:05:42 pm
για να ξεπερασω το λαθος που μου βγαζει μονιμως οτι "δεν εχει οριστει η printf" πρεπει να ορισω διαδικασια printf: και να γραψω εκει για τη syscall??


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: anchelon on April 14, 2013, 17:09:10 pm
για να ξεπερασω το λαθος που μου βγαζει μονιμως οτι "δεν εχει οριστει η printf" πρεπει να ορισω διαδικασια printf: και να γραψω εκει για τη syscall??
ναι νομίζω ότι έτσι μπορεί να γίνει!εγώ έτσι το έκανα πάντως


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: elefmylo on April 14, 2013, 17:28:01 pm
δες εδώ για το pcspim:
http://pages.cs.wisc.edu/~larus/spim.html
και
http://spimsimulator.sourceforge.net/

και τα 2 είναι του James Larus
QtSpim is a new user interface for Spim built on the Qt UI framework. Qt is cross-platform, so the same user iterface and same code will run on Windows, Linux, and Mac OS X (yeah!). Moreover, the interface is clean and up-to-date (unlike the archaic X windows interface).
το κατέβασα από εδώ για windows, εκανα αντιγρφή το pdf και και save σε σημειωματαριο με κατάληξη .s, πά να το τρέξω και μ πετάει αυτό το μήνυμα:


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: dpa on April 14, 2013, 17:32:57 pm
δοκίμασε να χρησιμοποιήσεις διαδρομές paths που θα είναι στα Αγγλικά και δεν θα είναι μεγάλες σε μήκος,για παράδειγμα c:\works


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: anchelon on April 14, 2013, 18:05:40 pm
Ρε παιδιά μου φαίνεται ή τα περισσότερα είναι λάθος??μερικές φορές μου φαίνεται ότι πρέπει να σβήσω πολλές γραμμές κώδικα μαζί κ να τα ξαναγράψω από την αρχή εντελώς διαφορετικά!!!λέτε να το θεωρούσαν λάθος κάτι τέτοιο?ποια είναι η γνώμη σας??


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: seamade on April 14, 2013, 18:32:06 pm
Τα σχόλια στα Ελληνικά, στα Αγγλικά ή όπως θέλουμε???  :D


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on April 14, 2013, 18:58:31 pm
Ρε παιδιά μου φαίνεται ή τα περισσότερα είναι λάθος??μερικές φορές μου φαίνεται ότι πρέπει να σβήσω πολλές γραμμές κώδικα μαζί κ να τα ξαναγράψω από την αρχή εντελώς διαφορετικά!!!λέτε να το θεωρούσαν λάθος κάτι τέτοιο?ποια είναι η γνώμη σας??

Ο Χασάπης διευκρίνισε πως μπορούμε να κάνουμε ότι αλλαγές θέλουμε στον κώδικα (άμα γουστάρεις, ξανγράψ' τον από την αρχή) αρκεί να βγάζει σωστό αποτέλεσμα και να εκτελεί την αναδρομική διαδικασία που περιγράφεται στον κώδικα σε C που υπάρχει στην εκφώνηση!


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on April 14, 2013, 18:58:55 pm
Τα σχόλια στα Ελληνικά, στα Αγγλικά ή όπως θέλουμε???  :D

Δεν διευκρινίζει, οπότε κάνε ότι θες!


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Niobe on April 14, 2013, 19:23:55 pm
η κονσολα του mips πρεπει να παραμενει εκνευριστικα κενη??  :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on April 14, 2013, 19:33:53 pm
η κονσολα του mips πρεπει να παραμενει εκνευριστικα κενη??  :P

Αν δεν βάλεις κάποιο syscall που να εκτυπώνει κάποιον αριθμό/string, τότε ναι 8))


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: anchelon on April 14, 2013, 19:38:11 pm
Ρε παιδιά μου φαίνεται ή τα περισσότερα είναι λάθος??μερικές φορές μου φαίνεται ότι πρέπει να σβήσω πολλές γραμμές κώδικα μαζί κ να τα ξαναγράψω από την αρχή εντελώς διαφορετικά!!!λέτε να το θεωρούσαν λάθος κάτι τέτοιο?ποια είναι η γνώμη σας??

Ο Χασάπης διευκρίνισε πως μπορούμε να κάνουμε ότι αλλαγές θέλουμε στον κώδικα (άμα γουστάρεις, ξανγράψ' τον από την αρχή) αρκεί να βγάζει σωστό αποτέλεσμα και να εκτελεί την αναδρομική διαδικασία που περιγράφεται στον κώδικα σε C που υπάρχει στην εκφώνηση!
να σαι καλά!!!ευχαριστώ πολύ!!


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: thanospr on April 15, 2013, 17:19:44 pm
Αυτες οι εντολες που γραφει συνεχεια ειναι λαθος;Κι αν δεν ειναι λαθος γιατι τις γραφει συνεχεια;
sw $ra, 20($sp)
sw $fp, 16($sp)


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: nash on April 15, 2013, 18:11:34 pm
τι διαφορα εχoυν αυτα τα τρια οταν θελω να τα χρησιμοποιησω σε μια ασκ: to j,jr k jal??επισης αυτο το προγραμμα μπορει να το εξηγησει καποιος που κατεχει,την καθε εντολη ξεχηριστα k τι κανει ιδικα αυτα τα ori:   
.data  0x10000000
str:
   .asciiz "the answer ="
   .text
main:
   lui $a0, 0x1000
        ori $a0, 0x0000
   ori $v0, 4
        syscall
   lui $a0, 0x0000
   andi $a0, 0x0000
   andi $v0, 0x0
   ori $v0, 1
   ori $a0, 5
        syscall
   jr $ra



Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: kofski17 on April 15, 2013, 18:54:50 pm
η εργασία παίρνει παράταση για πάσχα, ή ίσως κάποιες μέρες μετά το πάσχα. Διασταυρωμένο απ'τον ίδιον τον Χασάπη.
Θα βγει σύντομα σχετική ανακοίνωση.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on April 15, 2013, 19:30:42 pm
Αυτες οι εντολες που γραφει συνεχεια ειναι λαθος;Κι αν δεν ειναι λαθος γιατι τις γραφει συνεχεια;
sw $ra, 20($sp)
sw $fp, 16($sp)

Υλοποιούν τη λογική του stack. Αν διαβάσεις τη θεωρία, πιστεύω, θα καταλάβεις γιατί ακριβώς χρειάζονται.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on April 15, 2013, 19:36:41 pm
τι διαφορα εχoυν αυτα τα τρια οταν θελω να τα χρησιμοποιησω σε μια ασκ: to j,jr k jal??
Δες εδώ (http://en.wikibooks.org/wiki/MIPS_Assembly/Control_Flow_Instructions) για τις διαφορές τους.

πισης αυτο το προγραμμα μπορει να το εξηγησει καποιος που κατεχει,την καθε εντολη ξεχηριστα k τι κανει ιδικα αυτα τα ori:
Για κάθε μια εντολή, μπορείς να ψάξεις στο εξής tutorial για MIPS (http://en.wikibooks.org/wiki/MIPS_Assembly).
Η εντολή ori κάνει το bitwise λογικό OR μεταξύ μιας μεταβλητής και μιας σταθεράς.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: tolis_1 on April 16, 2013, 09:38:04 am
ο κωδικας του fact υπαρχει στο βιβλιο σελ.101 102


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Niobe on April 16, 2013, 09:39:54 am
ο κωδικας του fact υπαρχει στο βιβλιο σελ.101 102

σε ποιο βιβλιο??


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: tolis_1 on April 16, 2013, 11:35:58 am
ο κωδικας του fact υπαρχει στο βιβλιο σελ.101 102

σε ποιο βιβλιο??

του Patterson


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Niobe on April 16, 2013, 22:04:58 pm
ο κωδικας του fact υπαρχει στο βιβλιο σελ.101 102
σε ποιο βιβλιο??
του Patterson
θενκς
       
Code:
.data 0x10008000
        .word 10
        .word 1
        .word 0
        .ascii "The factorial of 10 is %d \n"
        .text
        .globl main
γινεται να πει κανεις καποιο σημειο του βιβλιου/καποιο σαιτ που να τα εξηγει... εξηγησεις πανω στο τι σημαινουν τα συγκεκριμενα ειναι ευπροσδεκτες αλλα θα ηθελα κατι πιο ολοκληρωμενο..


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: claus on April 17, 2013, 10:44:12 am
Οσο αφορα την πρωτη εργασια. Γραφω το κωδικα σε ενα wordpad (με τη βοηθεια του βιβλιου) τον αποθηκευω kjlfd.s ανοιγω το Pcspim,παω να το ανοιξω και μου βγαζει ερρορ. τι ρυθμισεις πρεπει να κανω ωστε να μου τον ανοιξει. :( κριμα και χαρηκα ρε γαμωτο στην αρχη :P heeelp!


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Schro on April 17, 2013, 13:49:31 pm
η εργασία παίρνει παράταση για πάσχα, ή ίσως κάποιες μέρες μετά το πάσχα. Διασταυρωμένο απ'τον ίδιον τον Χασάπη.
Θα βγει σύντομα σχετική ανακοίνωση.

Το ειπε αυτο σε καποιο απο τα τελευταια μαθηματα;
(Ρωταω γιατι δεν μπορεσα να παρακολουθησω τα δυο τελευταια μαθηματα τις δευτερας και τις τριτης)


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Elektor on April 20, 2013, 16:05:56 pm
Ανακοίνωση από το site του μαθήματος (etymmh)

Αλλαγή ημερομηνιών παράδοσης και αριθμού εργασιών
18 Απρ 2013 1:10 μμ
Χασάπης

Ο  αριθμός  των  εργασιών  που  πρέπει  να  παραδώσουν  οι  φοιτητές  μειώνεται  σε  δυο  και 
οι  νέες  ημερομηνίες  παράδοσής  τους  είναι:

1η  εργασία:  13/5/2013 
2η  εργασία:  31/5/2013


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: zidan on April 20, 2013, 21:17:36 pm
Οσο αφορα την πρωτη εργασια. Γραφω το κωδικα σε ενα wordpad (με τη βοηθεια του βιβλιου) τον αποθηκευω kjlfd.s ανοιγω το Pcspim,παω να το ανοιξω και μου βγαζει ερρορ. τι ρυθμισεις πρεπει να κανω ωστε να μου τον ανοιξει. :( κριμα και χαρηκα ρε γαμωτο στην αρχη :P heeelp!
Θα σου πρότεινα να βγάλεις το Pcspim κι να του εγκαταστήεις απο τη αρχή......


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Fcoriolis on April 21, 2013, 11:37:16 am
Qtspim.exe  αυτή είναι η καινούργια έκδοση του προγράμματος μπορείς να δοκιμάσεις να κατεβάσεις αυτήν.
Οσο αφορα την πρωτη εργασια. Γραφω το κωδικα σε ενα wordpad (με τη βοηθεια του βιβλιου) τον αποθηκευω kjlfd.s ανοιγω το Pcspim,παω να το ανοιξω και μου βγαζει ερρορ. τι ρυθμισεις πρεπει να κανω ωστε να μου τον ανοιξει. :( κριμα και χαρηκα ρε γαμωτο στην αρχη :P heeelp!
Θα σου πρότεινα να βγάλεις το Pcspim κι να του εγκαταστήεις απο τη αρχή......


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Pjr on April 29, 2013, 12:47:07 pm
δεν μπορώ να ανοίξω την εργασία ούτε με το Qtspim ούτε με το PCspim. Μου βγάζει απλά )cannot open the file μπλα μπλα for reading. Oύτε τα προγραμματάκια που έχει στο e-thmmy ανοίγουν. Υπάρχει κάτι στις ρυθμίσεις που πρέπει να κάνω ή μήπως σας είπε κάτι όσον αφορά την εγκατάσταση του προγράμματος.έχω δοκιμάσει τα πάντα. Καμιά βοήθεια??


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Fcoriolis on April 29, 2013, 12:49:43 pm
το έχεις αποθηκεύσει .s  το πρόγραμμα?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Pjr on April 29, 2013, 12:53:20 pm
ναι


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: 020400e on April 30, 2013, 16:38:52 pm
Code:
        .data 0x10008000
        .word 10
        .word 1
        .word 0
        .ascii "The factorial of 10 is %d \n"
        .text
        .globl main

Μπορεί να μου πει κάποιος σε τι χρησιμεύουν αυτά, γιατί στο βιβλίο του Patterson δεν αναφέρει τίποτα νομίζω.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on April 30, 2013, 17:09:32 pm
Code:
        .data 0x10008000
        .word 10
        .word 1
        .word 0
        .ascii "The factorial of 10 is %d \n"
        .text
        .globl main

Μπορεί να μου πει κάποιος σε τι χρησιμεύουν αυτά, γιατί στο βιβλίο του Patterson δεν αναφέρει τίποτα νομίζω.

Google is your friend (http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/dataseg.html)


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Niobe on April 30, 2013, 21:13:40 pm
γιατι η εντολη sw $fp, 16($sp) να μην ειναι sw $fp, 32($sp), εφοσον ο $fp δειχνει τη πρωτη λεξη του πλαισιου??

εδιτ: το επιασα κομπλε..


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Silvo the Beautiful on May 02, 2013, 13:56:08 pm
Μπορει καποιος να εξηγησει πως δουλευει η στοιβα? Γιατι την ξεκιναμε απο 20 ενω οριζουμε 32 θεσεις και τι πρπεει να αποθηκευουμαι καθε φορα εκει?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Carnot on May 04, 2013, 00:48:40 am
Code:
main:
        addi $sp, $sp, -32
        sw $ra, 20($sp)
        sw $fp, 16($sp)
Μπορεί να μου εξηγήσει κάποιος γιατί δημιουργεί χώρο για 8 αντικείμενα στη στοίβα?
Επίσης, γιατί αποθηκεύει τα $ra και $fp στις θέσεις 20 και 16 αντί να τα αποθηκεύσει στις θέσεις 0 και 4?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on May 04, 2013, 10:59:09 am
Μπορει καποιος να εξηγησει πως δουλευει η στοιβα? Γιατι την ξεκιναμε απο 20 ενω οριζουμε 32 θεσεις και τι πρπεει να αποθηκευουμαι καθε φορα εκει?
Code:
main:
        addi $sp, $sp, -32
        sw $ra, 20($sp)
        sw $fp, 16($sp)
Μπορεί να μου εξηγήσει κάποιος γιατί δημιουργεί χώρο για 8 αντικείμενα στη στοίβα?
Επίσης, γιατί αποθηκεύει τα $ra και $fp στις θέσεις 20 και 16 αντί να τα αποθηκεύσει στις θέσεις 0 και 4?

Νομίζω πως αυθαίρετα αφήνει περισσότερο χώρο απ' όσο πραγματικά χρειάζεται. Επίσης αυθαίρετα, αποθηκεύει τα δεδομένα από τη μέσα της στοίβας και όχι από την αρχή της.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Niobe on May 04, 2013, 12:53:18 pm
Μπορει καποιος να εξηγησει πως δουλευει η στοιβα? Γιατι την ξεκιναμε απο 20 ενω οριζουμε 32 θεσεις και τι πρπεει να αποθηκευουμαι καθε φορα εκει?
Code:
main:
        addi $sp, $sp, -32
        sw $ra, 20($sp)
        sw $fp, 16($sp)
Μπορεί να μου εξηγήσει κάποιος γιατί δημιουργεί χώρο για 8 αντικείμενα στη στοίβα?
Επίσης, γιατί αποθηκεύει τα $ra και $fp στις θέσεις 20 και 16 αντί να τα αποθηκεύσει στις θέσεις 0 και 4?

Νομίζω πως αυθαίρετα αφήνει περισσότερο χώρο απ' όσο πραγματικά χρειάζεται. Επίσης αυθαίρετα, αποθηκεύει τα δεδομένα από τη μέσα της στοίβας και όχι από την αρχή της.

εχει να κανει με την default δεσμευση μνημης για τα ορισματα και τους δεικτες $fp.$ra.
το εξηγει καλα στο παραρτημα β και εχει γινει και μια ερωτηση στο τημμυ


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Pjr on May 07, 2013, 15:19:01 pm
Είναι εύκολο να εξηγήσει κάποιος πώς θα εκτυπώσουμε το αποτέλεσμα. Επίσης πρέπει να διαβαζουμε το n από το πληκτρολόγιο και αν ναι πώς γίνεται αυτό?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: zidan on May 07, 2013, 19:13:27 pm
Είναι εύκολο να εξηγήσει κάποιος πώς θα εκτυπώσουμε το αποτέλεσμα. Επίσης πρέπει να διαβαζουμε το n από το πληκτρολόγιο και αν ναι πώς γίνεται αυτό?


   add   $a0, $v0, $zero
   li   $v0, 1      
   syscall         


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: τσαι-borg on May 09, 2013, 17:59:37 pm
γιατι η εντολη sw $fp, 16($sp) να μην ειναι sw $fp, 32($sp), εφοσον ο $fp δειχνει τη πρωτη λεξη του πλαισιου??

εδιτ: το επιασα κομπλε..


εγώ που προσπαθώ να το πιάσω άλλα δε, θες να μου το εξηγήσεις?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Niobe on May 10, 2013, 18:03:00 pm
γιατι η εντολη sw $fp, 16($sp) να μην ειναι sw $fp, 32($sp), εφοσον ο $fp δειχνει τη πρωτη λεξη του πλαισιου??

εδιτ: το επιασα κομπλε..


εγώ που προσπαθώ να το πιάσω άλλα δε, θες να μου το εξηγήσεις?

αν δεις στο πρασινο φυλλαδιο στη στηλη 4 εχει 2 πλαισια που εξηγει τη χρηση της στοιβας.Στο δευτερο δειχνει οτι ο $fp παιρνει τιμες κατω απο τις "Υψηλοτερες διευθυνσεις μνημης" που εκει δειχνει οτι ειναι 2 ορισματα (ορισμα 5,ορισμα 6)
γι'αυτο νομιζω οτι το κανει να ειναι παρακατω..

εδιτ: και γενικα υποθετω ο $fp παιρνει τιμες πιο κατω απο την κορυφη του πλαισιου στοιβας γι'αυτο το λογο..


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: sophie22 on May 11, 2013, 10:42:08 am

αν δεις στο πρασινο φυλλαδιο στη στηλη 4 εχει 2 πλαισια που εξηγει τη χρηση της στοιβας.Στο δευτερο δειχνει οτι ο $fp παιρνει τιμες κατω απο τις "Υψηλοτερες διευθυνσεις μνημης" που εκει δειχνει οτι ειναι 2 ορισματα (ορισμα 5,ορισμα 6)
γι'αυτο νομιζω οτι το κανει να ειναι παρακατω..

εδιτ: και γενικα υποθετω ο $fp παιρνει τιμες πιο κατω απο την κορυφη του πλαισιου στοιβας γι'αυτο το λογο..

ποιο ειναι αυτο το πρασινο φυλλαδιο???


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Jim D. Ace on May 11, 2013, 10:48:30 am
στην αρχη του βιβλιου


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: sophie22 on May 11, 2013, 11:13:16 am
στην αρχη του βιβλιου

Του Patterson το βιβλιο????
γιατι δεν το βρισκω?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Jim D. Ace on May 11, 2013, 11:22:24 am
ακριβως μετα το εμπροσθοφυλλο εχει μια πρασινη καρτελα...


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: sophie22 on May 11, 2013, 11:24:29 am
ακριβως μετα το εμπροσθοφυλλο εχει μια πρασινη καρτελα...

Το δικο σου βιβλιο ισως το δικο μου παντως ΟΧΙ!
μπορεις να το σκαναρεις και να το ανεβασεις μηπως? :)


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: anchelon on May 11, 2013, 11:26:48 am
Τρέχω το πρόγραμμα μου και μου βγάζει επαναλαμβανόμενα: "Exception 6 [Bad instruction address] occured and ignored"!Δεν έχω ιδέα τι σημαίνει κ δεν μπορώ να εντοπίσω τι λάθος έχω κάνει!Ξέρει κανείς που αναφέρεται η παραπάνω πρόταση?πλζζ χελπ!! :(


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Jim D. Ace on May 11, 2013, 11:39:32 am
ακριβως μετα το εμπροσθοφυλλο εχει μια πρασινη καρτελα...

Το δικο σου βιβλιο ισως το δικο μου παντως ΟΧΙ!
μπορεις να το σκαναρεις και να το ανεβασεις μηπως? :)
http://inst.eecs.berkeley.edu/~cs61c/resources/MIPS_Green_Sheet.pdf

Τρέχω το πρόγραμμα μου και μου βγάζει επαναλαμβανόμενα: "Exception 6 [Bad instruction address] occured and ignored"!Δεν έχω ιδέα τι σημαίνει κ δεν μπορώ να εντοπίσω τι λάθος έχω κάνει!Ξέρει κανείς που αναφέρεται η παραπάνω πρόταση?πλζζ χελπ!! :(
μηπως κατι τετοιο βοηθαει;
http://stackoverflow.com/questions/728392/mips-code-broken


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: sophie22 on May 11, 2013, 11:40:59 am
ακριβως μετα το εμπροσθοφυλλο εχει μια πρασινη καρτελα...

Το δικο σου βιβλιο ισως το δικο μου παντως ΟΧΙ!
μπορεις να το σκαναρεις και να το ανεβασεις μηπως? :)
http://inst.eecs.berkeley.edu/~cs61c/resources/MIPS_Green_Sheet.pdf


Ευχαριστω!!!


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Μπίλυ ο τρομερός on May 11, 2013, 13:25:00 pm
Παίδες να ρωτήσω κάτι; Εμένα μου υπολογίζει κανονικά το παραγοντικό και το δοκίμασα μέχρι το 12! όπου το αποτέλεσμα είναι 9 ψηφία...στο 13! που υπολογίζει λάθος παραγοντικό που πρέπει να εκτυπώσει 10 ψηφία...
Ξέρει κανείς τι παίζει; και τι πρέπει να αλλάξουμε για να υπολογίσει και μεγαλύτερα παραγοντικά με περισσότερα ψηφία;  :???:


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Nerevar on May 11, 2013, 13:53:14 pm
Παίδες να ρωτήσω κάτι; Εμένα μου υπολογίζει κανονικά το παραγοντικό και το δοκίμασα μέχρι το 12! όπου το αποτέλεσμα είναι 9 ψηφία...στο 13! που υπολογίζει λάθος παραγοντικό που πρέπει να εκτυπώσει 10 ψηφία...
Ξέρει κανείς τι παίζει; και τι πρέπει να αλλάξουμε για να υπολογίσει και μεγαλύτερα παραγοντικά με περισσότερα ψηφία;  :???:

Εχω ξεχασει ο,τι εχει σχεση με αυτο το μαθημα αλλα αν θυμαμαι καλα ο mips εχει καταχωρητες των 32bit,δηλαδη ο μεγιστος αριθμος (χωρις προσημο) που μπορει να αποθηκευτει ειναι  4.294.967.295.

12!=479.001.600< 4.294.967.295
13!=6.227.020.800>4.294.967.295,οποτε κανει overflow.Για το πως θα διορθωθει - αν μπορει κατι τετοιο - δεν εχω ιδεα.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: tsakos on May 11, 2013, 14:15:57 pm
Ξέρει κανείς γιατί δεν μου αναγνωρίζει την printf ο προσομοιωτής? Ούτε το qtspim ούτε το pcspim. Τρέχει κανονικά και μόλις φτάσει εκεί μου βγάζει σφάλμα.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: απλυτος on May 11, 2013, 14:17:53 pm
Είναι εύκολο να εξηγήσει κάποιος πώς θα εκτυπώσουμε το αποτέλεσμα. Επίσης πρέπει να διαβαζουμε το n από το πληκτρολόγιο και αν ναι πώς γίνεται αυτό?


   add   $a0, $v0, $zero
   li   $v0, 1      
   syscall         

μ αυτό τυπώνουμε λογικά. και πως διαβάζουμε το n;


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on May 11, 2013, 16:02:30 pm
Ξέρει κανείς γιατί δεν μου αναγνωρίζει την printf ο προσομοιωτής? Ούτε το qtspim ούτε το pcspim. Τρέχει κανονικά και μόλις φτάσει εκεί μου βγάζει σφάλμα.
Η printf είναι συνάρτηση στη C, δεν έχει λόγο να αναγνωρίζεται στον προσομοιωτή του MIPS. Πρέπει να υλοποιήσεις τη δικιά σου διαδικασία printf, μέσω syscall.

Είναι εύκολο να εξηγήσει κάποιος πώς θα εκτυπώσουμε το αποτέλεσμα. Επίσης πρέπει να διαβαζουμε το n από το πληκτρολόγιο και αν ναι πώς γίνεται αυτό?
Code:
	add	$a0, $v0, $zero 
li $v0, 1
syscall
      
μ αυτό τυπώνουμε λογικά. και πως διαβάζουμε το n;
Η εκφώνηση δε λέει πως πρέπει να διαβάσεις το n, θα το πάρεις δεδομένο ως 10 (το κάνει άλλωστε και στον κώδικα της εκφώνησης αυτό).


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: elefmylo on May 11, 2013, 16:12:33 pm
Μπορεί κάποιος να εξηγήσει αναλυτικά πως τυπώνουμε και αριθμούς και string γενικά με syscall...?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Exomag on May 11, 2013, 16:15:33 pm
Μπορεί κάποιος να εξηγήσει αναλυτικά πως τυπώνουμε και αριθμούς και string γενικά με syscall...?

Εννοείται! (http://www.doc.ic.ac.uk/lab/secondyear/spim/node8.html)


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: elefmylo on May 11, 2013, 16:27:18 pm
Μπορεί κάποιος να εξηγήσει αναλυτικά πως τυπώνουμε και αριθμούς και string γενικά με syscall...?

Εννοείται! (http://www.doc.ic.ac.uk/lab/secondyear/spim/node8.html)

Πολύ καλό αλλα να ρωτήσω για το text  που θα βρω τη διεύθυνση του string που φαντάζομαι έχει σχέση με το .ascii"mpla mpla"
και επίσης για εκτύπωση int μπορώ να σχηματίσω μια εντολή του τύπου
Code:
 
 li $v0, 1        
 li $a0, $t1        #όπου $t1=5 ξέρω γω...
 syscall    


edit:ok το βρήκα πως θα τ κάνω


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: tsakos on May 11, 2013, 18:13:43 pm
Ξέρει κανείς γιατί δεν μου αναγνωρίζει την printf ο προσομοιωτής? Ούτε το qtspim ούτε το pcspim. Τρέχει κανονικά και μόλις φτάσει εκεί μου βγάζει σφάλμα.
Η printf είναι συνάρτηση στη C, δεν έχει λόγο να αναγνωρίζεται στον προσομοιωτή του MIPS. Πρέπει να υλοποιήσεις τη δικιά σου διαδικασία printf, μέσω syscall.



Είναι εύκολο να εξηγήσει κάποιος πώς θα εκτυπώσουμε το αποτέλεσμα. Επίσης πρέπει να διαβαζουμε το n από το πληκτρολόγιο και αν ναι πώς γίνεται αυτό?
Code:
	add	$a0, $v0, $zero 
li $v0, 1
syscall
      
μ αυτό τυπώνουμε λογικά. και πως διαβάζουμε το n;
Η εκφώνηση δε λέει πως πρέπει να διαβάσεις το n, θα το πάρεις δεδομένο ως 10 (το κάνει άλλωστε και στον κώδικα της εκφώνησης αυτό).

Ναι συμφωνώ, απλώς το έχει έτσι μέσα σε παράδειγμα του βιβλίου και στην εκφώνηση της άσκησης. Γράφει κανονικά. printf. Αλλιώς πως γίνεται με syscall ? το έκανα έτσι και μου βγάζει σφάλμα για το str αυτή τη φορά. Προφανώς δεν το βγαλα απ το μυαλό μου. Στο παράρτημα Β το έχει
li $v0,4
la $a0,str
syscall


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: odysvamv on May 11, 2013, 20:21:42 pm
στην καταληξη του ονοματος της εργασιας το .asm και το .s ειναι το ιδιο?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: tsakos on May 12, 2013, 16:28:57 pm
Ξέρει κανείς γιατί δεν μου αναγνωρίζει την printf ο προσομοιωτής? Ούτε το qtspim ούτε το pcspim. Τρέχει κανονικά και μόλις φτάσει εκεί μου βγάζει σφάλμα.
Η printf είναι συνάρτηση στη C, δεν έχει λόγο να αναγνωρίζεται στον προσομοιωτή του MIPS. Πρέπει να υλοποιήσεις τη δικιά σου διαδικασία printf, μέσω syscall.



Είναι εύκολο να εξηγήσει κάποιος πώς θα εκτυπώσουμε το αποτέλεσμα. Επίσης πρέπει να διαβαζουμε το n από το πληκτρολόγιο και αν ναι πώς γίνεται αυτό?
Code:
	add	$a0, $v0, $zero 
li $v0, 1
syscall
      
μ αυτό τυπώνουμε λογικά. και πως διαβάζουμε το n;
Η εκφώνηση δε λέει πως πρέπει να διαβάσεις το n, θα το πάρεις δεδομένο ως 10 (το κάνει άλλωστε και στον κώδικα της εκφώνησης αυτό).

Ναι συμφωνώ, απλώς το έχει έτσι μέσα σε παράδειγμα του βιβλίου και στην εκφώνηση της άσκησης. Γράφει κανονικά. printf. Αλλιώς πως γίνεται με syscall ? το έκανα έτσι και μου βγάζει σφάλμα για το str αυτή τη φορά. Προφανώς δεν το βγαλα απ το μυαλό μου. Στο παράρτημα Β το έχει
li $v0,4
la $a0,str
syscall

Ντάξει, το έκανα και τρέχει.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: kofski17 on May 12, 2013, 16:31:27 pm
όταν φτιάχνουμε τη στοίβα, πχ: addi $sp, $sp, -32
τότε τον fp τον αποθηκεύουμε στη μέση της στοίβας sw $fp, 16($sp) αν κατάλαβα καλά γιατί είναι σύμβαση τα πρώτα 16 bytes να δέιχνουν στα τέσσερα ορίσματα $a0-$a3??

και αν ναι, αφού ο fp υποτίθεται ότι δείχνει στην αρχή του πλαισίου γιατί τον σηκώνουμε στο +28 (-4 απ'το μέγεθος της στοίβας διάβασα κάπου) και όχι στο +32???  :-\


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: Falergon on May 13, 2013, 17:54:22 pm
Μέχρι ποιο νούμερο σας δούλεψε το πρόγραμμα που φτιάξατε?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: anchelon on May 13, 2013, 18:08:31 pm
ε δν πάει άλλο!έχω εδώ και τόσες μέρες παιδεύομαι να βγάλω αποτέλεσμα και το μόνο που εκτυπώνει είναι ένας άσχετος ηλίθιος αριθμός(πάντα ο ίδιος ότι κ να αλλάξω).Το πρόγραμμα μου είναι πανομοιότυπο με αυτό του παραρτήματος Β με κάποιες εμφανείς αλλαγές.Αδυνατώ να εντοπίσω το πρόβλημα και εδώ είναι που θα ρωτήσω αν υπάρχει κανείς που να έχει τελειώσει με το δικό του  και θέλει να ρίξει μια ματιά στον κώδικα μου μήπως και εντοπίσει κάτι που εγώ αμελώ.Ξέρω ότι ζητάω πολλά αλλά είστε η τελευταία μου ελπίδα...ευχαριστώ εκ των προτέρων


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: El Niño on May 13, 2013, 19:41:34 pm
και αν ναι, αφού ο fp υποτίθεται ότι δείχνει στην αρχή του πλαισίου γιατί τον σηκώνουμε στο +28 (-4 απ'το μέγεθος της στοίβας διάβασα κάπου) και όχι στο +32???  :-\
νομιζω το εξηγησαν καποιοι σε προηγουμενες σελιδες..
δεσμευεις αρχικα 2 λεξεις διπλες δλδ 4 απο τα 32 οποτε τον fp τον τοποθετεις εκει...αν κανω λαθος ας με διορθωσει καποιος.


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: saddodancererer on May 13, 2013, 21:15:37 pm
ε δν πάει άλλο!έχω εδώ και τόσες μέρες παιδεύομαι να βγάλω αποτέλεσμα και το μόνο που εκτυπώνει είναι ένας άσχετος ηλίθιος αριθμός(πάντα ο ίδιος ότι κ να αλλάξω).Το πρόγραμμα μου είναι πανομοιότυπο με αυτό του παραρτήματος Β με κάποιες εμφανείς αλλαγές.Αδυνατώ να εντοπίσω το πρόβλημα και εδώ είναι που θα ρωτήσω αν υπάρχει κανείς που να έχει τελειώσει με το δικό του  και θέλει να ρίξει μια ματιά στον κώδικα μου μήπως και εντοπίσει κάτι που εγώ αμελώ.Ξέρω ότι ζητάω πολλά αλλά είστε η τελευταία μου ελπίδα...ευχαριστώ εκ των προτέρων
και εγω επι 2 μερες εβγαζα συνεχεια εναν οτι να ναι αριθμο κατι 21344234452 οτι παραγοντικο και να βαζα να υπολογισω μεχρι που στην
L2 την κληση της fact (jal fact) την εβγαλα απο το τελος και την εβαλα πριν απο την lw $v1,0($fp). δοκιμασε γενικα να μην την βαλεις στο τελος γιατι μετα νομιζω χρειαζεται να γινουν καποιες μετατροπες στους καταχωρητες αφου την καλεσεις n φορες...


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: El Niño on May 13, 2013, 21:56:00 pm
στην καταληξη του ονοματος της εργασιας το .asm και το .s ειναι το ιδιο?
βαλτο μωρε ενα .s να σαι σιγουρος ...τι σε πειραζει?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: odysvamv on May 13, 2013, 22:14:14 pm
στην καταληξη του ονοματος της εργασιας το .asm και το .s ειναι το ιδιο?
βαλτο μωρε ενα .s να σαι σιγουρος ...τι σε πειραζει?
αυτο εκανα τελικα  :D


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: anchelon on May 13, 2013, 22:36:08 pm
ε δν πάει άλλο!έχω εδώ και τόσες μέρες παιδεύομαι να βγάλω αποτέλεσμα και το μόνο που εκτυπώνει είναι ένας άσχετος ηλίθιος αριθμός(πάντα ο ίδιος ότι κ να αλλάξω).Το πρόγραμμα μου είναι πανομοιότυπο με αυτό του παραρτήματος Β με κάποιες εμφανείς αλλαγές.Αδυνατώ να εντοπίσω το πρόβλημα και εδώ είναι που θα ρωτήσω αν υπάρχει κανείς που να έχει τελειώσει με το δικό του  και θέλει να ρίξει μια ματιά στον κώδικα μου μήπως και εντοπίσει κάτι που εγώ αμελώ.Ξέρω ότι ζητάω πολλά αλλά είστε η τελευταία μου ελπίδα...ευχαριστώ εκ των προτέρων
και εγω επι 2 μερες εβγαζα συνεχεια εναν οτι να ναι αριθμο κατι 21344234452 οτι παραγοντικο και να βαζα να υπολογισω μεχρι που στην
L2 την κληση της fact (jal fact) την εβγαλα απο το τελος και την εβαλα πριν απο την lw $v1,0($fp). δοκιμασε γενικα να μην την βαλεις στο τελος γιατι μετα νομιζω χρειαζεται να γινουν καποιες μετατροπες στους καταχωρητες αφου την καλεσεις n φορες...
/?
και εμένα παρόμοιο ηλίθιο νούμερο μου βγάζει αλλά δν έχω τν jal fact στο τέλος!κανείς καμιά άλλη ιδέα ?


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: El Niño on May 13, 2013, 23:43:48 pm
ε δν πάει άλλο!έχω εδώ και τόσες μέρες παιδεύομαι να βγάλω αποτέλεσμα και το μόνο που εκτυπώνει είναι ένας άσχετος ηλίθιος αριθμός(πάντα ο ίδιος ότι κ να αλλάξω).Το πρόγραμμα μου είναι πανομοιότυπο με αυτό του παραρτήματος Β με κάποιες εμφανείς αλλαγές.Αδυνατώ να εντοπίσω το πρόβλημα και εδώ είναι που θα ρωτήσω αν υπάρχει κανείς που να έχει τελειώσει με το δικό του  και θέλει να ρίξει μια ματιά στον κώδικα μου μήπως και εντοπίσει κάτι που εγώ αμελώ.Ξέρω ότι ζητάω πολλά αλλά είστε η τελευταία μου ελπίδα...ευχαριστώ εκ των προτέρων
και εγω επι 2 μερες εβγαζα συνεχεια εναν οτι να ναι αριθμο κατι 21344234452 οτι παραγοντικο και να βαζα να υπολογισω μεχρι που στην
L2 την κληση της fact (jal fact) την εβγαλα απο το τελος και την εβαλα πριν απο την lw $v1,0($fp). δοκιμασε γενικα να μην την βαλεις στο τελος γιατι μετα νομιζω χρειαζεται να γινουν καποιες μετατροπες στους καταχωρητες αφου την καλεσεις n φορες...
/?
και εμένα παρόμοιο ηλίθιο νούμερο μου βγάζει αλλά δν έχω τν jal fact στο τέλος!κανείς καμιά άλλη ιδέα ?
προσωπικα ειχα ξεχασει να βαλω τις εντολες αποδεσμευσης και επιστροφης στην αρχικη μνημη στο τελος και ειχα και γω κατι θεματα με ακυρους αριθμους και κατι ατερμονα λουπ... οταν τα βαλα ομως ηταν μια χαρα αμεσως ...


Title: Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
Post by: boone on May 17, 2013, 11:53:30 am
Μέχρι ποιο νούμερο σας δούλεψε το πρόγραμμα που φτιάξατε?

Μέχρι το 12!, το 13! το έβγαζε άλλα 'ντ' άλλων..