ΗΥ-225: Οργάνωση Υπολογιστών
Άνοιξη 2010 |
Τμήμα Επιστήμης Υπολογιστών © Πανεπιστήμιο Κρήτης |
[Up - Table of Contents] [Prev - 3. Memory Accesses] |
[printer version - PDF] [5. Compare and Branch - Next] |
Εσωτερικά, ο υπολογιστής λειτουργεί μόνο με δυαδικές τιμές και σύμβολα. Έτσι, γιά να μπορέσει να εκτελεστεί ένα πρόγραμμα Assembly πρέπει αυτό να μεταφραστεί σε Γλώσσα Μηχανής, δηλ. σε δυαδικά σύμβολα. Τη μετάφραση αυτή κάνει ένα πρόγραμμα, ο Assembler.
Όλες οι εντολές του MIPS, όπως και των άλλων υπολογιστών στυλ RISC, έχουν σταθερό μέγεθος 32 bits. Μέσα τους περιέχουν από 2 έως 6 πεδία (fields). Υπάρχουν 3 διαφορετικές μορφές που οι εντολές μπορεί να έχουν. Η μορφή (format) της κάθε εντολής καθορίζεται από το πρώτο πεδίο της εντολής, που ονομάζεται op, έχει μέγεθος 6 bits, και είναι πάντα στην ίδια θέση (MS bits) γιά όλες τις εντολές. Φυσικά, με τα 6 bits που έχει, το πεδίο αυτό καθορίζει, εκτός από το format της εντολής, και ένα μέρος ή και ολόκληρο το opcode της εντολής, δηλαδή το τι πράξη ή ενέργεια πρέπει να εκτελέσει αυτή η εντολή. Οι τρείς μορφές εντολών είναι:
Ειδική αναφορά χρήζει η κωδικοποίηση των εντολών μεταφοράς ελέγχου με συνθήκη στον MIPS. Οι εντολές μεταφοράς ελέγχου (CTI, control transfer instructions) καθορίζουν να εκτελεστεί σαν επόμενη εντολή –πάντοτε ή υπό ορισμένες συνθήκες μόνο– μια έντολη άλλη από την "επόμενη από κάτω" τους εντολή. Όταν η μεταφορά ελέγχου γίνεται υπό συνθήκη, οι εντολές συνήθως ονομάζονται διακλαδώσεις (branch). Όταν η μεταφορά γίνεται πάντοτε, οι εντολές συνήθως λέγονται άλματα (jump). Επίσης υπάρχουν κλήσεις διαδικασιών και λειτουργικού συστήματος, και επιστροφές από αυτές. Στον MIPS, η συνθήκη διακλάδωσης μπορεί να έχει περιορισμένες μόνο μορφές, γιά λόγους ταχύτητας. Οι μόνες συνθήκες διακλαδώσεων που υπάρχουν αφορούν συγκρίσεις ενός καταχωρητή με το μηδέν (δεν θα ασχοληθούμε με αυτές στο "δικό μας" υποσύνολο του MIPS), και συγκρίσεις δύο καταχωρητών μόνο γιά ισότητα ή ανισότητα και όχι γιά άλλων μορφών σχέσεις (μικρότερος, μεγαλύτερος, κλπ). Οι εντολές αυτές είναι:
Σε αυτή την άσκηση στόχος σας είναι να αποκωδικοποιήσετε το παρακάτω απόσπασμα κώδικα μηχανής του MIPS και να βρείτε τον ισοδύναμο κώδικα σε assembly, ο οποίος περιλαμβάνει εντολές που έχετε διδαχθεί μέχρις στιγμής στο μάθημα. Σας δίνουμε δύο στοιχεία, τη διεύθυνση κάθε εντολής και την κωδικοποίηση της εντολής, η οποία ακολουθεί το instruction format του επεξεργαστή MIPS.
[0x00400038] 0x8d4c0000 [0x0040003c] 0x218c0001 [0x00400040] 0xad6c0000 [0x00400044] 0x21080001 [0x00400048] 0x216b0004 [0x0040004c] 0x218c0004 [0x00400050] 0x1509fffaΓράψτε σε ένα αρχείο text με όνομα ask4.txt τον ισοδύναμο κώδικα σε assembly του MIPS. Εξηγήστε λεπτομερώς πώς κάνετε την αποκωδικοποίηση όλων των πεδίων της κάθε εντολής. Τέλος, περιγράψτε με μία πρόταση τι λειτουργία εκτελεί αυτός ο κώδικας.
Τρόπος Παράδοσης:
Για να παραδώσετε την άσκηση χρησιμοποιήστε την ακόλουθη διαδικασία.
Συνδεθείτε σε ένα μηχάνημα Linux του τμήματος με το login και
password που χρησιμοποιείτε στο Τμήμα. Η λίστα μηχανημάτων Linux
του Τμήματος είναι διαθέσιμη
εδώ. Ετοιμάστε ένα directory με το αρχείο που σας ζητάει η
άσκηση (ask4.txt).
Ας υποθέσουμε ότι το όνομα του directory είναι <somepath>/mydir. Μετακινηθείτε
στο directory <somepath> και εκτελέστε την εντολή:
/usr/local/bin/submit exercise4@hy225 mydir
Η διαδικασία submit θα σας ζητήσει να επιβεβαιώσετε την αποστολή των αρχείων.Περισσότερες πληροφορίες και αναλυτικές οδηγίες για τη νέα διαδικασία submit είναι διαθέσιμες εκτελώντας:
man submit
σε κάποιο από τα μηχανήματα Linux του Τμήματος. Σημειώστε ότι η απομακρυσμένη πρόσβαση στα μηχανήματα του Τμήματος γίνεται από 1.2.2010 με νέο ασφαλή τρόπο μέσω gateways και με χρήση tunnel.
Up to the Home Page of CS-225
|
© copyright University of Crete, Greece. Last updated: , by D. Nikolopoulos. |