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

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.
August 01, 2025, 14:01:30 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
[Τομέας Ενέργειας] Μαθήμα...
by chatzikys
[Today at 13:53:11]

Πρόγραμμα Σπουδών Ακαδημα...
by tzortzis
[Today at 12:55:49]

[Τομέας Ηλεκτρονικής] Μαθ...
by sassi
[Today at 12:14:48]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by MajorTom
[Today at 11:34:38]

Aναζωπύρωση των εχθροπραξ...
by Katarameno
[July 31, 2025, 21:15:48 pm]

Καμμένα...!!
by Godat
[July 31, 2025, 21:07:58 pm]

Οι μπράβοι του πρύτανη
by okan
[July 31, 2025, 20:32:45 pm]

[ΑΝΤΙΣΤΑΣΗ] Ανακοίνωση γι...
by Katarameno
[July 31, 2025, 20:31:30 pm]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[July 31, 2025, 15:33:28 pm]

ΤΗΜΜΥ-Σκάκι
by L
[July 31, 2025, 13:24:56 pm]

Τι ακούτε αυτήν τη στιγμή...
by Giopan
[July 30, 2025, 17:07:32 pm]

Νέα Δημοκρατία (and Co. I...
by Katarameno
[July 30, 2025, 15:31:16 pm]

Αποτελέσματα Εξεταστικής ...
by Mr Watson
[July 30, 2025, 14:19:11 pm]

Τα παράσιτα ανάμεσά μας
by Katarameno
[July 30, 2025, 13:47:28 pm]

Ρώτα κάτι τον επόμενο
by Giopan
[July 29, 2025, 16:04:23 pm]

Πότε θα βγει το μάθημα; -...
by chatzikys
[July 29, 2025, 13:52:51 pm]

[ΣΗΕ ΙΙ] Γενικές απορίες ...
by Διάλεξις
[July 29, 2025, 01:00:00 am]

Η άχρηστη πληροφορία της ...
by Katarameno
[July 28, 2025, 23:50:00 pm]

Αναβαθμολόγιση??
by Katarameno
[July 28, 2025, 23:20:48 pm]

Ίδρυση Ιδιωτικών Πανεπιστ...
by Katarameno
[July 28, 2025, 20:59:44 pm]
Στατιστικά
Members
Total Members: 9987
Latest: Kwtininatheod
Stats
Total Posts: 1427621
Total Topics: 31739
Online Today: 136
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 33
Guests: 103
Total: 136
gpapmtb
filkilkis
nmpampal
peakymath
chatzikys
nikos123321
stavros0201
aris123321
cealexop
aalmpanb
gpr000
AcDimitri
Katarameno
JoHn!
alexter
Mr Watson
rafail zisiadis
George_RT
dsaragiotis
kouf
ThanosTheTT
Gray139
A-TheITGuy
tasos gourd
prigians
sassi
chrismzag
Εμφάνιση

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

Νέα!
Για ανανέωση (ή προσθήκη νέου) avatar, πρέπει η μεγαλύτερη διάσταση της εικόνας να είναι 110 pixels.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 4ο Εξάμηνο > 4ο Εξάμηνο - ΠΠΣ > Αρχιτεκτονική Υπολογιστών (Moderators: chatzikys, tzortzis) > [Αρχιτεκτονική Υπ.] 2η Εργασία
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 3 ... 5 Go Down Print
Author Topic: [Αρχιτεκτονική Υπ.] 2η Εργασία  (Read 10616 times)
George_RT
Veteran
Εθισμένος στο ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 838



View Profile
[Αρχιτεκτονική Υπ.] 2η Εργασία
« on: April 19, 2014, 21:23:52 pm »

Δεύτερη Εργαστηριακή Εργασία

Η εργασία πρέπει να υποβληθεί ηλεκτρονικά στο eTHMMY μέχρι 1 Ιουνίου 2014, ώρα 12:00 το μεσημέρι

Περιγραφή

Γράψετε πρόγραμμα στη γλώσσα Assembly του MIPS που να εκτελεί τις παρακάτω λειτουργίες:

1.Να μπορεί ο χρήστης του προγράμματος να εισάγει από την κονσόλα του προσομοιωτή του MIPS, QtSpim, τις τιμές των στοιχείων δυο πινάκων Α, Β, διαστάσεων 3Χ3 ο καθένας που πρέπει να είναι πραγματικοί αριθμοί. Το πρόγραμμα να τυπώνει ακολουθιακά στην οθόνη το όνομα κάθε στοιχείου του κάθε πίνακα, ο χρήστης να εισάγει ένα πραγματικό αριθμό σto κάθε στοιχείο. Και στη συνέχεια να τυπώνει το επόμενο στοιχείο, όπως δείχνεται στο σχήμα 1,

a(0,0) = <εισαγωγή αριθμού> <enter>

a(0,1) =<εισαγωγή αριθμού><enter>

.

.

.

a(2,0) =<εισαγωγή αριθμού><enter>

a(2,1) =<εισαγωγή αριθμού> <enter>

a(2,2) =<εισαγωγή αριθμού><enter>

b(0,0) =<εισαγωγή αριθμού><enter>

b(0,1) =<εισαγωγή αριθμού><enter>

b(0,2) =<εισαγωγή αριθμού><enter>

.

.

.

b(2,2) =<εισαγωγή αριθμού><enter>



2. Να εκτελεί την ακόλουθη πράξη των πινάκων

D=Α*Β

3.Nα τυπώνει στην κονσόλα το αποτέλεαμα της πράξης με το τρόπο που δείχνεται στο σχήμα 2.

d(1,1)=
d(1,2)=
d(1,3)=
d(2,1)=
d(2,2)=
Cd2,3)
d(3,1)=
d(3,2)=
d(3,3)=
Σχήμα 2

1.Οι αρχικές διευθύνσεις των πινάκων μπορούν να είναι παράμετροι και να βρίσκονται στους καταχωρητές $a0, $a1, $a2.

2.Οι πραγματικοί αριθμοί που θα εισάγονται στο πρόγραμμα θα πρέπει να μετατρέπονται σε αριθμούς κινητής υποδιαστολής και οι υπολογισμοί κινητής υποδιαστολής να γίνονται με διπλή ακρίβεια.

3.Για την υλοποίηση της ζητούμενης πράξης μπορείτε να υλοποιήσετε την ακόλουθη ρουτίνα σε γλώσσα C.

Code:
Void mm ( double a[][], double b[][ )

{

int i, j, k;

for (i=0; i! = 3; i = i+1) for (j = 0; j! = 3; j = j+1) for (k = 0; k! = 3; k = k+1)

d[i][j] = d[I][j]+a[i][κ] * b[κ][j]

}

4.Υποθέστε ότι οι ακέραιες μεταβλητές i, j και k βρίσκονται στους $s0, $s1, και $s2.

5.Για να υπολογίσετε την εκάστοτε διεύθυνση των στοιχείων a[j] πρέπει να θεωρήσετε ένα τρόπο αποθήκευσης κάθε διδιάστατου πίνακα στη μνήμη. Ο συνήθης τρόπος που θεωρούν οι μεταγλωττιστές γλωσσών υψηλού επιπέδου είναι κάθε γραμμή να αποθηκεύεται ως μονοδιάστατος πίνακας, και οι διαδοχικές γραμμές να αποθηκεύονται η μια κάτω από την άλλη. Έτσι για να βρεθεί o αριθμοδείκτης του πρώτου στοιχείου της i γραμμής πρέπει να πολλαπλασιασθεί ο δείκτης i με το πλήθος των στοιχείων της i γραμμής , που στην περίπτωση της άσκησης αυτής είναι 3. Για να βρεθεί ο αριθμοδείκτης οπουδήποτε άλλου στοιχείου

a[j] πρέπει στο παραπάνω γινόμενο να προστεθεί το j. Επι πλέον για να βρεθεί και η διευθυνση της μνήμης στην οποία είναι αποθηκευμένο το στοιχείο πρέπει να γίνει η πράξη:

Διεύθυνση=(Διεύθυνση βάσης του πίνακα a) +(i*3+j)*4

στην περίπτωση που οι τιμές των στοιχείων είναι εκφρασμένες σε μορφή κινητής υποδιαστολής απλής ακρίβειας.

Αν χρησιμοποιείται διπλή ακρίβεια τότε η διεύθυnση υπολογίζεται από τη σχέση:

Διεύθυνση=(Διεύθυνση βάσης του a)+(i*3+j)*8

6.Όταν προσδιορισθεί η διεύθυνση του στοιχείου a[j] γίνεται η φόρτωσή του σε κάποιο καταχωρητή κινητής υποδιαστολής και επαναλάμβάνεται παρόμοια διαδικασία για την αποθήκευση σε καταχωρητές κινητής υποδιαστολής των στοιχείων b [j].

7.Όταν έχουν φορτωθεί τα δεδομένα, μπορούν να γίνουν οι πράξεις πολλαπλασιασμού των στοιχείων a[k]*b[k][j] και η συσσώρευση του αποτελέσματος στον καταχωρητή του d[j].

8.Για την εκτύπωση των ονομάτων των στοιχείων των σχημάτων 1 και 2 και των αριθμών που αντιστοιχούν σε αυτά θα πρέπει να γίνει επαναλαμβανόμενη χρήση των κατάλληλων syscall.


Logged
DarkPassenger
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 614


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #1 on: May 03, 2014, 22:50:03 pm »

Τα string α(0,0) α(0,1)...b(0,0) κλπ πρέπει να τα γράψουμε σε 18 (9+9) διαφορετικά string-οσα δηλαδή και τα στοιχεία των πινακων- ή υπάρχει τρόπος να γράψουμε σε loop π.χ α(i,j) και να αλλάζουμε τις τιμές στα i και j??
Logged
PanteGrv
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 606



View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #2 on: May 04, 2014, 12:59:03 pm »

Πίνακας με τις διευθύνσεις των string?
Logged

“The strangest and most fantastic fact about negative emotions is that people actually worship them.”
P.D. Ouspensky
Ο Ουσπένσκι υποστηρίζει  ότι τα αρνητικά συναισθήματα(θυμός, λύπη, πίκρα, απογοήτευση), αν και υπαρκτά και δικαιολογίσιμα, αποκτούν διάρκεια και σημασία σαν οντότητες από το άτομο οικειοθελώς. Δηλαδή ο άνθρωπος "τραβάει" αυτές τις καταστάσεις στα όριά τους, εμμένει σε αυτές, στήνει τα σκηνικό του βασανιστηρίου του. Επειδή αυτή είναι η δική μου οπτική για αυτά που διάβασα,αξίζει κανείς να ψάξει το θέμα αυτό.
gt
Θαμώνας
****
Posts: 321


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #3 on: May 04, 2014, 15:52:24 pm »

Quote from: DarkPassenger on May 03, 2014, 22:50:03 pm
Τα string α(0,0) α(0,1)...b(0,0) κλπ πρέπει να τα γράψουμε σε 18 (9+9) διαφορετικά string-οσα δηλαδή και τα στοιχεία των πινακων- ή υπάρχει τρόπος να γράψουμε σε loop π.χ α(i,j) και να αλλάζουμε τις τιμές στα i και j??

Εννοειται Loop οπου αλλαζεις τα i,j κυριως για δικη σου ευκολια αλλα και για "δομημενο"-σωστο προγραμματισμο...σαν string πρεπει μονο να εχεις τα "α( ","b(", το "," και το ")"
Logged
DarkPassenger
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 614


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #4 on: May 04, 2014, 16:01:24 pm »

Quote from: gt on May 04, 2014, 15:52:24 pm
Quote from: DarkPassenger on May 03, 2014, 22:50:03 pm
Τα string α(0,0) α(0,1)...b(0,0) κλπ πρέπει να τα γράψουμε σε 18 (9+9) διαφορετικά string-οσα δηλαδή και τα στοιχεία των πινακων- ή υπάρχει τρόπος να γράψουμε σε loop π.χ α(i,j) και να αλλάζουμε τις τιμές στα i και j??

Εννοειται Loop οπου αλλαζεις τα i,j κυριως για δικη σου ευκολια αλλα και για "δομημενο"-σωστο προγραμματισμο...σαν string πρεπει μονο να εχεις τα "α( ","b(", το "," και το ")"
μαλιστα, και αυτό μπορεί να γινει εύκολα? γιατι δε μας εδειξε και τρομερα πραγματα στις διαλεξεις....
Logged
gt
Θαμώνας
****
Posts: 321


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #5 on: May 04, 2014, 17:20:00 pm »

Ναι ειναι σχετικα ευκολο...θα χρειαστεις 2 καταχωρητες πχ $t0=1 k $t1=1 που θα ειναι το i k j αντιστοιχα και μια loop..σε καθε loop αυξανεις το $t1 και μεχρι να γινει 3 το στελνεις στο Loop..Ετσι θα φτιαξεις α(1,1),α(1,2),α(1,3).Μολις γινει 3 κανεις $t1=1 και αυξανεις $t0 και ξαναστελνεις στο loop μεχρι να γινει $t0=3 και μετα συνεχιζεις στο προγραμμα σου...
Logged
DarkPassenger
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 614


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #6 on: May 08, 2014, 00:52:56 am »

Quote from: gt on May 04, 2014, 17:20:00 pm
Ναι ειναι σχετικα ευκολο...θα χρειαστεις 2 καταχωρητες πχ $t0=1 k $t1=1 που θα ειναι το i k j αντιστοιχα και μια loop..σε καθε loop αυξανεις το $t1 και μεχρι να γινει 3 το στελνεις στο Loop..Ετσι θα φτιαξεις α(1,1),α(1,2),α(1,3).Μολις γινει 3 κανεις $t1=1 και αυξανεις $t0 και ξαναστελνεις στο loop μεχρι να γινει $t0=3 και μετα συνεχιζεις στο προγραμμα σου...
οκ τα loops τα εκανα.. διαβαζω και τιμες, αλλα δεν ξερω πως να αποθηκευσω! χρησιμοποιησα τις εντολες:
li $v0, 7
syscall
s.d $f0, $t2($a1)

οπου αυξανω τον $t2 και τον κανω +8 σε καθε loop, αλλα μου βγαζει συντακτικο λαθος... πως να το κανω??

EDIT: νομίζω το βρήκα
« Last Edit: May 08, 2014, 01:48:48 am by DarkPassenger » Logged
gt
Θαμώνας
****
Posts: 321


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #7 on: May 08, 2014, 14:01:22 pm »

Quote from: DarkPassenger on May 08, 2014, 00:52:56 am
Quote from: gt on May 04, 2014, 17:20:00 pm
Ναι ειναι σχετικα ευκολο...θα χρειαστεις 2 καταχωρητες πχ $t0=1 k $t1=1 που θα ειναι το i k j αντιστοιχα και μια loop..σε καθε loop αυξανεις το $t1 και μεχρι να γινει 3 το στελνεις στο Loop..Ετσι θα φτιαξεις α(1,1),α(1,2),α(1,3).Μολις γινει 3 κανεις $t1=1 και αυξανεις $t0 και ξαναστελνεις στο loop μεχρι να γινει $t0=3 και μετα συνεχιζεις στο προγραμμα σου...
οκ τα loops τα εκανα.. διαβαζω και τιμες, αλλα δεν ξερω πως να αποθηκευσω! χρησιμοποιησα τις εντολες:
li $v0, 7
syscall
s.d $f0, $t2($a1)

οπου αυξανω τον $t2 και τον κανω +8 σε καθε loop, αλλα μου βγαζει συντακτικο λαθος... πως να το κανω??

EDIT: νομίζω το βρήκα

Το λαθος ειναι στον $t2...σε εκεινο το σημειο θελει αριθμο και οχι καταχωρητη...αυτο που πρεπει να κανεις ειναι να γραψεις s.d $f0,0($a1) και απο κατω addi $a1,$a1,8..Ετσι καθε φορα θα αποθηκευεται στην επομενη θεση κατα 8 κελια..
Logged
DarkPassenger
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 614


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #8 on: May 08, 2014, 14:36:41 pm »

Quote from: gt on May 08, 2014, 14:01:22 pm
Quote from: DarkPassenger on May 08, 2014, 00:52:56 am
Quote from: gt on May 04, 2014, 17:20:00 pm
Ναι ειναι σχετικα ευκολο...θα χρειαστεις 2 καταχωρητες πχ $t0=1 k $t1=1 που θα ειναι το i k j αντιστοιχα και μια loop..σε καθε loop αυξανεις το $t1 και μεχρι να γινει 3 το στελνεις στο Loop..Ετσι θα φτιαξεις α(1,1),α(1,2),α(1,3).Μολις γινει 3 κανεις $t1=1 και αυξανεις $t0 και ξαναστελνεις στο loop μεχρι να γινει $t0=3 και μετα συνεχιζεις στο προγραμμα σου...
οκ τα loops τα εκανα.. διαβαζω και τιμες, αλλα δεν ξερω πως να αποθηκευσω! χρησιμοποιησα τις εντολες:
li $v0, 7
syscall
s.d $f0, $t2($a1)

οπου αυξανω τον $t2 και τον κανω +8 σε καθε loop, αλλα μου βγαζει συντακτικο λαθος... πως να το κανω??

EDIT: νομίζω το βρήκα

Το λαθος ειναι στον $t2...σε εκεινο το σημειο θελει αριθμο και οχι καταχωρητη...αυτο που πρεπει να κανεις ειναι να γραψεις s.d $f0,0($a1) και απο κατω addi $a1,$a1,8..Ετσι καθε φορα θα αποθηκευεται στην επομενη θεση κατα 8 κελια..
ευχαριστω για την απαντηση, θα το δοκιμασω αν κ το εκανα αλλιως..
εκανα αυτό εγω:

s.d $f0, arrayA($t2)   
addi $t2, $t2, 8

και δουλευει μια χαρα!
Logged
gt
Θαμώνας
****
Posts: 321


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #9 on: May 09, 2014, 10:59:08 am »

Quote from: DarkPassenger on May 08, 2014, 14:36:41 pm
Quote from: gt on May 08, 2014, 14:01:22 pm
Quote from: DarkPassenger on May 08, 2014, 00:52:56 am
Quote from: gt on May 04, 2014, 17:20:00 pm
Ναι ειναι σχετικα ευκολο...θα χρειαστεις 2 καταχωρητες πχ $t0=1 k $t1=1 που θα ειναι το i k j αντιστοιχα και μια loop..σε καθε loop αυξανεις το $t1 και μεχρι να γινει 3 το στελνεις στο Loop..Ετσι θα φτιαξεις α(1,1),α(1,2),α(1,3).Μολις γινει 3 κανεις $t1=1 και αυξανεις $t0 και ξαναστελνεις στο loop μεχρι να γινει $t0=3 και μετα συνεχιζεις στο προγραμμα σου...
οκ τα loops τα εκανα.. διαβαζω και τιμες, αλλα δεν ξερω πως να αποθηκευσω! χρησιμοποιησα τις εντολες:
li $v0, 7
syscall
s.d $f0, $t2($a1)

οπου αυξανω τον $t2 και τον κανω +8 σε καθε loop, αλλα μου βγαζει συντακτικο λαθος... πως να το κανω??

EDIT: νομίζω το βρήκα

Το λαθος ειναι στον $t2...σε εκεινο το σημειο θελει αριθμο και οχι καταχωρητη...αυτο που πρεπει να κανεις ειναι να γραψεις s.d $f0,0($a1) και απο κατω addi $a1,$a1,8..Ετσι καθε φορα θα αποθηκευεται στην επομενη θεση κατα 8 κελια..
ευχαριστω για την απαντηση, θα το δοκιμασω αν κ το εκανα αλλιως..
εκανα αυτό εγω:

s.d $f0, arrayA($t2)   
addi $t2, $t2, 8

και δουλευει μια χαρα!
:???:Δεν ξερω αν ειναι σωστο, πρωτη φορα βλεπω κατι τετοιο αλλα αν σου δουλευει σωστα ΟΚ..
Logged
DarkPassenger
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 614


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #10 on: May 09, 2014, 11:24:31 am »

Quote from: gt on May 09, 2014, 10:59:08 am
Quote from: DarkPassenger on May 08, 2014, 14:36:41 pm
Quote from: gt on May 08, 2014, 14:01:22 pm
Quote from: DarkPassenger on May 08, 2014, 00:52:56 am
Quote from: gt on May 04, 2014, 17:20:00 pm
Ναι ειναι σχετικα ευκολο...θα χρειαστεις 2 καταχωρητες πχ $t0=1 k $t1=1 που θα ειναι το i k j αντιστοιχα και μια loop..σε καθε loop αυξανεις το $t1 και μεχρι να γινει 3 το στελνεις στο Loop..Ετσι θα φτιαξεις α(1,1),α(1,2),α(1,3).Μολις γινει 3 κανεις $t1=1 και αυξανεις $t0 και ξαναστελνεις στο loop μεχρι να γινει $t0=3 και μετα συνεχιζεις στο προγραμμα σου...
οκ τα loops τα εκανα.. διαβαζω και τιμες, αλλα δεν ξερω πως να αποθηκευσω! χρησιμοποιησα τις εντολες:
li $v0, 7
syscall
s.d $f0, $t2($a1)

οπου αυξανω τον $t2 και τον κανω +8 σε καθε loop, αλλα μου βγαζει συντακτικο λαθος... πως να το κανω??

EDIT: νομίζω το βρήκα

Το λαθος ειναι στον $t2...σε εκεινο το σημειο θελει αριθμο και οχι καταχωρητη...αυτο που πρεπει να κανεις ειναι να γραψεις s.d $f0,0($a1) και απο κατω addi $a1,$a1,8..Ετσι καθε φορα θα αποθηκευεται στην επομενη θεση κατα 8 κελια..
ευχαριστω για την απαντηση, θα το δοκιμασω αν κ το εκανα αλλιως..
εκανα αυτό εγω:

s.d $f0, arrayA($t2)   
addi $t2, $t2, 8

και δουλευει μια χαρα!
:???:Δεν ξερω αν ειναι σωστο, πρωτη φορα βλεπω κατι τετοιο αλλα αν σου δουλευει σωστα ΟΚ..
το βρήκα σε σαιτ με οδηγιες κ' παραδείγματα  για mips, οπότε υποθετω πως είναι σωστό
Logged
sk0uf
Ανερχόμενος/Ανερχόμενη
**
Posts: 88


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #11 on: May 12, 2014, 20:37:31 pm »

H πραξη που ζηταει ειναι η D=A*B ,παρολ'αυτα στον αλγοριθμο που μας δινει γραφει d[j]=d[j]+a[j]*b[j] δηλαδη η πραξη D=D+A*B ,τυπογραφικο λαθος να υποθεσω;
« Last Edit: May 12, 2014, 21:09:06 pm by sk0uf » Logged
gt
Θαμώνας
****
Posts: 321


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #12 on: May 12, 2014, 23:39:47 pm »

Quote from: sk0uf on May 12, 2014, 20:37:31 pm
H πραξη που ζηταει ειναι η D=A*B ,παρολ'αυτα στον αλγοριθμο που μας δινει γραφει d[j]=d[j]+a[j]*b[j] δηλαδη η πραξη D=D+A*B ,τυπογραφικο λαθος να υποθεσω;

Σωστη ειναι η εκφωνηση...στο d[ i][ j] συσσωρευεται το αθροισμα των πολλαπλασιασμων στηλης γραμμης για καθε ενα στοιχειο του πινακα d..στην ουσια ειναι d[ i][j]+=a[ i][κ] * b[κ][j]
« Last Edit: May 12, 2014, 23:45:41 pm by gt » Logged
vasilis94
Veteran
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1511



View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #13 on: May 16, 2014, 12:23:45 pm »

Quote from: George_RT on April 19, 2014, 21:23:52 pm
2.Οι πραγματικοί αριθμοί που θα εισάγονται στο πρόγραμμα θα πρέπει να μετατρέπονται σε αριθμούς κινητής υποδιαστολής και οι υπολογισμοί κινητής υποδιαστολής να γίνονται με διπλή ακρίβεια.

Καταλαβαίνει κάποιος από εδώ ή γενικά από την εκφώνηση τι από τα παρακάτω πρέπει  να κάνουμε:
> Από ότι είδα υπάρχει syscall για να διαβάζεις double, τα διαβαζεις όλα ως double, τα φορτώνεις/αποθηκεύεις με l.d και όλα τα κάνεις με διπλή τελοσπάντων.
> Τα αποθηκεύεις ως floats 4 byte στη μνήμη και κάθε φορά που θέλεις να κάνεις πράξεις κάνεις ένα cvt (convert to double) και μετά η πράξη σε double.

Λογικό είναι το πρώτο αλλά λέει και ξαναλέει για πραγματικούς αριθμούς που εισάγονται (δηλαδή?), μετατροπή σε κινητή υποδιαστολή και υπολογισμούς με διπλή ακρίβεια.
Logged
iliachry
Καταξιωμένος/Καταξιωμένη
***
Posts: 203


View Profile
Re: [Αρχιτεκτονική Υπ.] 2η Εργασία
« Reply #14 on: May 16, 2014, 13:27:07 pm »

εγώ τα αποθηκεύω σε απλής ακρίβειας, κάνω πράξεις απλής ακρίβειας ανάμεσα στους πίνακες A και Β, και όταν πρέπει να κάνω αυτή την εντολή (d[ι][j] = d[j]+a[ι][κ]  * b[κ][j]) αναγκαστικά μετατρέπω σε διπλής ακρίβειας το a [ι][k]*b[k][j]!

νομίζω αυτό είναι και το πιο σωστό γιατί δεν υπάρχει περίπτωση να έχουμε υπερχείλιση!
Logged
Pages: [1] 2 3 ... 5 Go Up Print
Jump to:  

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