Garyfallos7 Δημοσ. 19 Ιουνίου 2008 Δημοσ. 19 Ιουνίου 2008 Καλησπερα σε ολους, προσφατα μου εδωσαν μια εργασια σχετικα με την αρχιτεκτονικη υπολογιστων αλλα δυσκολευομαι λιγο. Οποιος μπορει να βοηθησει αμεσα, ιδου η εργασια: "Να υλοποιήσετε σε συμβολική γλώσσα (assembly) του MIPS και να εκτελέσετε στον SPIM, ένα πρόγραμμα που να επεξεργάζεται απρόσημους (unsigned) ακεραίους αριθμούς των 64 bit. Κάθε στιγμή το πρόγραμμα διατηρεί αποθηκευμένους δύο απρόσημους ακεραίους των 64 bit Sum και Last στα ζεύγη καταχωρητών ($s0,$s1)=Sum και ($s2,$s3)=Last (οι $s0 και $s2 αποθηκεύουν τα υψηλότερα 32 bit και οι $s1 και $s3 τα χαμηλότερα 32 bit των Sum και Last αντίστοιχα). Το Sum κρατάει το άθροισμα των αριθμών που έχουν προστεθεί μέχρι τη δεδομένη στιγμή (αρχική τιμή του Sum=0) και το Last κρατάει τον τελευταίο αριθμό των 64 bit που έχει δοθεί από τον χρήστη. Το πρόγραμμα πρέπει να περιέχει τις παρακάτω ρουτίνες – υποπρογράμματα: read64 – Ανάγνωση από τη κονσόλα ενός απρόσημου ακεραίου αριθμού και αποθήκευσή του στο ζεύγος καταχωρητών τιμής ($v0,$v1). Η ανάγνωση από τη κονσόλα πρέπει να γίνεται με ανάγνωση συμβολοσειράς (string) η οποία στη συνέχεια να μετατρέπεται σε αριθμό των 64 bit και να αποθηκεύεται στο ζεύγος ($v0,$v1). Να γίνουν όλοι οι έλεγχοι λάθους (αρνητικός αριθμός – αριθμός που δεν χωράει σε 64 bit – εισαγωγή χαρακτήρα που δεν είναι αριθμητικό ψηφίο). print64 – Εκτύπωση στην κονσόλα του περιεχομένου του 64 bit αριθμού που βρίσκεται στο ζεύγος καταχωρητών ορίσματος ($a0,$a1). accumulate64 – Πρόσθεση των 64 bit αριθμών που βρίσκονται στα ζεύγη ($a0,$a1) και ($a2,$a3) και αποθήκευση του αθροίσματος στο ζεύγος ($v0,$v1) – σε περίπτωση υπερχείλισης το πρόγραμμα να εκτυπώνει μήνυμα λάθους και να τερματίζεται. Ο χρήστης μπορεί να ζητήσει μέσω ενός απλού μενού επιλογών (υλοποιήστε το όπως επιθυμείτε) να εκτελεστεί μία από τις ακόλουθες λειτουργίες οι οποίες φυσικά θα χρησιμοποιούν τις παραπάνω ρουτίνες: εισαγωγή νέου απρόσημου αριθμού των 64 bit και αποθήκευση στο Last εκτύπωση του Last ή του Sum συσσώρευση (accumulation) του τελευταίου έγκυρου Last που εισήγαγε ο χρήστης στον Sum τερματισμός του προγράμματος Μπορείτε να χρησιμοποιήσετε ψευδο-εντολές του SPIM." Οποιαδηποτε βοηθεια δεκτη!!! Ευχαριστω πολυ!!!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.