• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 06:10:30 am

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 17, 2025, 06:10:30 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Ισραήλ - Ιράν: Πόλεμος στ...
by okan
[Today at 02:33:21]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 02:29:21]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[June 16, 2025, 15:55:08 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

Αποτελέσματα Εξεταστικής ...
by Nikos_313
[June 16, 2025, 12:01:53 pm]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by George_RT
[June 16, 2025, 10:22:18 am]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

Αντικατάστασης πυκνωτή σε...
by nmpampal
[June 15, 2025, 16:25:56 pm]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]

Πότε θα βγει το μάθημα; -...
by Nikos_313
[June 14, 2025, 10:00:55 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]

Αλέξης Τσίπρας, η επιστρο...
by Yamal
[June 14, 2025, 04:42:23 am]
Στατιστικά
Members
Total Members: 9960
Latest: valco08
Stats
Total Posts: 1426680
Total Topics: 31710
Online Today: 169
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 9
Guests: 107
Total: 116
pipitsenko
Yamal
Geoth
cremidhs
akoil
stefpapa21
mixkats
iasonasl
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Για οποιοδήποτε πρόβλημα με register/login, στείλτε email στο contact@thmmy.gr.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 4ο Εξάμηνο > 4ο Εξάμηνο - ΠΠΣ > Αρχιτεκτονική Υπολογιστών (Moderators: chatzikys, tzortzis) > [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 3 ... 6 Go Down Print
Author Topic: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05  (Read 11759 times)
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
[Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« on: April 03, 2013, 01: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
« Last Edit: May 16, 2013, 19:37:02 pm by Exomag » Logged

Silvo the Beautiful
Αbsolute ΤΗΜΜΥ.gr
*******
Posts: 3784



View Profile
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #1 on: April 08, 2013, 12:16:33 pm »

Να ρωτησω παλια χρησιμοποιούσαν το QtSpim... Το PCspim είναι άλλο πρόγραμμα?

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


Υ.Γ το QtSpim με φαινόταν πολύ χάλια πρόγραμμα
Logged
dpa
Ανερχόμενος/Ανερχόμενη
**
Posts: 67

Είμαι ηλεκτρολόγος, συμβαίνει κάτι;


View Profile
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #2 on: April 08, 2013, 16: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).
« Last Edit: April 08, 2013, 16:35:39 pm by dpa » Logged
Niobe
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1853



View Profile
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #3 on: April 12, 2013, 11:33:40 am »

πως φορτωνω το προγραμμα στο PCSpim απο το πδφ? το αντεγραψα σε κειμενο word και το εσωσα ως .s αλλα δεν φαινεται να εχει αποτελεσμα..

εδιτ: βασικα μου βγαζει οτι ερρορ εχω καταλαβει οτι εχει.. απλα που μπορω να "δω" το προγραμμα...
« Last Edit: April 12, 2013, 11:40:49 am by panourgos » Logged

Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #4 on: April 12, 2013, 20:13:45 pm »

Quote from: panourgos on April 12, 2013, 11:33:40 am
πως φορτωνω το προγραμμα στο PCSpim απο το πδφ? το αντεγραψα σε κειμενο word και το εσωσα ως .s αλλα δεν φαινεται να εχει αποτελεσμα..

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

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

Fcoriolis
Guest
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #5 on: April 12, 2013, 22:07:15 pm »

Μπορεί κάποιος να εξηγήσει τι είναι ο gp και να πει πως χρησιμεύει στην εργασία?
Logged
zidan
Θαμώνας
****
Gender: Male
Posts: 305


FREEEEDOME


View Profile
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #6 on: April 12, 2013, 22:49:05 pm »

Προσωπικά το έβγαλα τελείως γιατί πολύ με δυσκόλεψει κι δουλεύω με $sp...
έχω πρόβλημα στο προσμειωτή,γιατί μου δίνει  το μύνημα ((The following symbols are undefined :printf))
μα εποτίθεται ότι  τη printf τη αναγνωρίζει... Undecided Undecided Undecided
« Last Edit: April 12, 2013, 22:51:06 pm by zidan » Logged
Eragon
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 672



View Profile
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #7 on: April 12, 2013, 22:57:46 pm »

Quote from: The Batman on April 12, 2013, 22:07:15 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 σου δινει τζαμπα ολη αυτη τη λειτουργικοτητα...που λεει ο λογος... Smiley
τουλαχιστον ετσι τα καταλαβα εγω... Undecided
« Last Edit: April 12, 2013, 23:01:00 pm by pavlos100 » Logged

Change happens by listening and then starting a dialogue with the people who are doing something you don't believe is right.

Jane Goodall
Eragon
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 672



View Profile
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #8 on: April 12, 2013, 22:59:54 pm »

Quote from: zidan on April 12, 2013, 22:49:05 pm
Προσωπικά το έβγαλα τελείως γιατί πολύ με δυσκόλεψει κι δουλεύω με $sp...
έχω πρόβλημα στο προσμειωτή,γιατί μου δίνει  το μύνημα ((The following symbols are undefined :printf))
μα εποτίθεται ότι  τη printf τη αναγνωρίζει... Undecided Undecided Undecided
Το printf φαινεται να μη δουλευει όντως,οπότε τύπωσε ό,τι θες με syscall(νομιζω στην παραγραφο με τις εξαιρεσεις τα εχει)
Logged

Change happens by listening and then starting a dialogue with the people who are doing something you don't believe is right.

Jane Goodall
zidan
Θαμώνας
****
Gender: Male
Posts: 305


FREEEEDOME


View Profile
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #9 on: April 13, 2013, 17:23:32 pm »

μία απορία έχω,τι ενοοεί με( addi $t0, $gp 12)  Embarrassed Undecided ?
Logged
Fcoriolis
Guest
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #10 on: April 14, 2013, 01:35:35 am »

είναι λάθος αυτή η εντολή (συντακτικά αλλά και δεν χρειάζεται)
Logged
Fcoriolis
Guest
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #11 on: April 14, 2013, 01:37:11 am »

Quote from: pavlos100 on April 12, 2013, 22:57:46 pm
Quote from: The Batman on April 12, 2013, 22:07:15 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 σου δινει τζαμπα ολη αυτη τη λειτουργικοτητα...που λεει ο λογος... Smiley
τουλαχιστον ετσι τα καταλαβα εγω... Undecided

Σ ευχαριστώ πολύ!Τέλειες οδηγίες!
Logged
thanospr
Καταξιωμένος/Καταξιωμένη
***
Posts: 115


View Profile
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #12 on: April 14, 2013, 11:04:14 am »

Ο Χασαπης μας ειχε δειξει κατι διαφανιες για την syscall και τα ορισματα που πρεπει να δωσουμε για να τυπωσει και να διαβασει δεδομενα αλλα δεν τις βρισκω.Ξερετε που ειναι η που θα τα βρω στο βιβλιο;
Logged
Fcoriolis
Guest
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #13 on: April 14, 2013, 12:28:28 pm »

Για να τυπώνεις κείμενο πρέπει να έχει η v0 την τιμή 4
και η διεύθηνση της a0 να δείχνει στην αρχική θέση του κειμένου (πχ στην ασκηση la $a0,12($gp))
Για να εκτυπώσεις ακέραιο πρέπει η v0 να έχει τιμή 1 (αυτό το κάνεις με lw κλασικά)
και η a0 να δείχνει στον ακέραιο

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

 
Logged
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [Αρχιτεκτονική Υπολογιστών] Πρώτη Εργασία - Προθεσμία 13/05
« Reply #14 on: April 14, 2013, 14:18:39 pm »

Quote from: The Batman on April 14, 2013, 12:28:28 pm
Για να εκτυπώσεις ακέραιο πρέπει η v0 να έχει τιμή 1 (αυτό το κάνεις με lw κλασικά)
και η a0 να δείχνει στον ακέραιο

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

Pages: [1] 2 3 ... 6 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...