Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου



Σχετικά έγγραφα
Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Εργαστήριο

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:07. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Αρχιτεκτονική Υπολογιστών

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Αρχιτεκτονική Υπολογιστών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Λειτουργικά Συστήματα

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Αρχιτεκτονική Υπολογιστών

Ενσωματωμένα Συστήματα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική -Ι

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας

Εισαγωγή στην Πληροφορική

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Αρχιτεκτονική Υπολογιστών

Συστήματα Μικροϋπολογιστών

Ενσωματωμένα Συστήματα

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΜΑΘΗΜΑ: ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Δομημένος Προγραμματισμός

Αρχιτεκτονική Υπολογιστών

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην πληροφορική

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Εισαγωγή στον Προγραμματισμό με C++

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Ενσωματωμένα Συστήματα

11 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Αρχιτεκτονική Υπολογιστών

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

Ενσωματωμένα Συστήματα

Οργάνωση Υπολογιστών

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπ

Δομημένος Προγραμματισμός

Λογιστικές Εφαρμογές Εργαστήριο

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ

Μοντελοποίηση Λογικών Κυκλωμάτων

{ int a = 5; { int b = 7; a = b + 3;

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Υπολογιστικά & Διακριτά Μαθηματικά

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 3 : Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Αρχιτεκτονική Υπολογιστών Ι

Transcript:

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No 05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http:// arch.icte.uowm.gr/mdasyg

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα του Πανεπιστημίου Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Περιεχόμενα 1. Σκοπός της άσκησης... 4 2. Εργαστηριακή άσκηση... 4 3. Ερωτήσεις κατανόησης... 7 3

1. Σκοπός της άσκησης Εισαγωγή ύστερα από έλεγχο. Εντολές αλλαγής ροής προγράμματος. Εκτύπωση στο δεκαδικό σύστημα. Εκτύπωση στο δεκαεξαδικό σύστημα. (Α) 10 Ερωτήσεις (C) 1 Πρόγραμμα 2. Εργαστηριακή άσκηση ΠΡΟΓΡΑΜΜΑ C1 Να κατασκευάσετε πρόγραμμα το οποίο θα υπολογίζει την αριθμητική παράσταση x 2 +x και θα εμφανίζει το αποτέλεσμα στο δεκαδικό και το δεκαεξαδικό σύστημα. Το πρόγραμμα θα δέχεται έναν μονοψήφιο δεκαδικό αριθμό από το πληκτρολόγιο χωρίς εμφάνιση, ύστερα από έλεγχο (έγκυροι χαρακτήρες 0 έως 9). Σε περίπτωση που ο χρήστης δώσει κάτι άλλο η διαδικασία θα επαναλαμβάνεται. Μόλις ο χρήστης δώσει έγκυρο χαρακτήρα, τότε θα εκτυπώνεται στην οθόνη. Θα γίνεται ο υπολογισμός του αποτελέσματος. Θα εκτυπώνεται ο διψήφιος δεκαδικός αριθμός (διαίρεση με το 10). Θα εκτυπώνεται ο διψήφιος δεκαεξαδικός αριθμός (διαίρεση με το 16). Ενδεικτική υλοποίηση προγράμματος (μπορείτε να χρησιμοποιήσετε διαφορετική υλοποίηση) 1. Ξεκινήστε με το teplate A και αποθηκεύστε το πρόγραμμα με το όνομα lab05.asm 2. Τοποθετήστε στο τμήμα δεδομένων τη συμβολοσειρά με το μήνυμα Parakalw doste 0-9:. Η συμβολοσειρά θα τοποθετηθεί στην ετικέτα μεταβλητής protropimsg και θα έχει τελευταίο χαρακτήρα το '$' (γιατί θα την εκτυπώσουμε με το ah=09, int 21h). 3. Χρησιμοποιώντας το αντίστοιχο int 21h εκτυπώστε το μήνυμα. Να αφήνετε κενές γραμμές όταν ολοκληρώνετε ένα block εντολών για να βοηθάει την ανάγνωση του asm κώδικα. Επίσης, να χρησιμοποιείτε σχόλια. 4. Αφήστε μια κενή γραμμή για να είναι ευανάγνωστο το πρόγραμμά σας. 5. Χρησιμοποιώντας το αντίστοιχο int 21h κάνετε είσοδο χωρίς εμφάνιση ενός χαρακτήρα από το πληκτρολόγιο. 4

6. Δώστε την εντολή σύγκρισης του αριθμού που εισάγατε με την ASCII τιμή του χαρακτήρα 0 (εναλλακτικά, μπορείτε να μετατρέψετε τον αριθμό που εισάγατε στην καθαρή τιμή του και να συγκρίνετε με την αριθμητική τιμή 0). 7. Αν ο αριθμός που εισάγατε είναι μικρότερος από 0 τότε η εκτέλεση να πάει στο βήμα 3. 8. Δώστε την εντολή σύγκρισης του αριθμού που εισάγατε με την ASCII τιμή του χαρακτήρα 9 (εναλλακτικά, μπορείτε να μετατρέψετε τον αριθμό που εισάγατε στην καθαρή τιμή του και να συγκρίνετε με το 9). 9. Αν ο αριθμός που εισάγατε είναι μεγαλύτερος από 9 τότε η εκτέλεση να πάει στο βήμα 3. 10. Εκτυπώστε τον αριθμό στην οθόνη με int 21h και κατάλληλη τιμή στο AH. Πρέπει σε κάθε πρόγραμμα να δείχνουμε στο χρήστη όταν εισάγει κάτι για να μη θεωρεί ότι υπολειτουργεί το πρόγραμμά μας. Με τους δυο παραπάνω ελέγχους διασφαλίζετε ότι ο αριθμός σε αυτό το σημείο ανήκει στο εύρος [0,9]. 11. Μετατρέψτε τον ASCII αριθμό σε καθαρό αριθμό (αν δεν το έχετε ήδη κάνει). 12. Κάντε τον πολλαπλασιασμό και την πρόσθεση που ζητείται στην εκφώνηση. 13. Αποθηκεύστε το ανωτέρω αποτέλεσμα σε μια θέση μνήμης apotelesma (να την ορίσετε στο τμήμα 14. Για να εκτυπώσετε στο δεκαδικό σύστημα μεταφέρετε το αποτέλεσμα στον AX και κάντε τη διαίρεση με το 10. 15. Αποθηκεύστε το πηλίκο στη θέση μνήμης dekada (να την ορίσετε στο τμήμα 16. Αποθηκεύστε το υπόλοιπο στη θέση μνήμης monada (να την ορίσετε στο τμήμα 17. Εκτυπώστε το αλφαριθμητικό: Dekadiko Apotelesma: (τοποθετήστε το στο τμήμα 18. Χρησιμοποιώντας το αντίστοιχο int 21h εκτυπώστε τη dekada (αν δεν την έχετε μετατρέψει στο ASCII να το κάνετε). 19. Χρησιμοποιώντας το αντίστοιχο int 21h εκτυπώστε τη monada (αν δεν την έχετε μετατρέψει στο ASCII να το κάνετε). 20. Μεταφέρετε το apotelesma πίσω στον AX (γιατί θα έχει τροποποιηθεί σε αυτό το σημείο από τις προηγούμενες ενέργειες). 21. Για να εκτυπώσετε στο δεκαεξαδικό σύστημα μεταφέρετε το αποτέλεσμα στον AX και κάντε τη διαίρεση με το 10h (δλδ. με το 16). 5

22. Αποθηκεύστε το πηλίκο στη θέση μνήμης dekaexada (να την ορίσετε στο τμήμα 23. Αποθηκεύστε το υπόλοιπο στη θέση μνήμης monada (να την ορίσετε στο τμήμα 24. Εκτυπώστε το αλφαριθμητικό: Dekaexadiko Apotelesma: (τοποθετήστε το στο τμήμα 25. Προκειμένου να γίνει η εκτύπωση στο δεκαεξαδικό σύστημα θα πρέπει να προσεχθεί ότι: 1. Ένα ψηφίο στο δεκαεξαδικό σύστημα θα έχει τιμή από 0 έως 15. 2. Αν έχει τιμές από 0 έως και 9, τότε για να εκτυπωθεί θα πρέπει να προσθέσουμε το 30h για να γίνει ο αντίστοιχος χαρακτήρας στο ASCII. Δηλαδή το 0 να γίνει 0 (ASCII τιμή του 0) κ.ο.κ. 3. Αν έχει τιμές από 10 έως και 15, τότε για να εκτυπωθεί θα πρέπει να προσθέσουμε μια άλλη τιμή. Δηλαδή αν είναι 10 θα πρέπει να εκτυπώσουμε το Α, αν είναι 11 θα πρέπει να εκτυπώσουμε το Β κ.ο.κ. 4. Αφού προσθέσουμε είτε το 30h είτε την τιμή που υπολογίσαμε στο προηγούμενο βήμα (αναλόγως της αρχικής τιμής που έχει ο αριθμός [0-9] ή [10-15], μεταφέρουμε το αποτέλεσμα της παραπάνω άθροισης στον καταχωρητή DL και κάνουμε την αντίστοιχη κλήση int 21h). 26. Θα πρέπει λοιπόν να φέρετε τον αριθμό από τη dekaexada σε έναν καταχωρητή. *** Σημειώστε ότι επειδή έχουμε διαιρέσει με το 16, στο dekaexada και στο monada θα υπάρχει μια τιμή από 0 έως 15. 27. Να το συγκρίνετε ως προς το 9. 28. Αν είναι μεγαλύτερος από 9 τότε να προστεθεί η τιμή που έχετε υπολογίσει σε προηγούμενο βήμα για να μετατραπεί σε ASCII. 29. Αν είναι μικρότερος ή ίσος από 9 τότε να προστεθεί το 30h για να μετατραπεί σε ASCII. 30. Μεταφέρετε το ASCII αποτέλεσμα στο dl. 31. Τοποθετήστε την κατάλληλη τιμή για εκτύπωση ενός χαρακτήρα στον AH. Δώστε int 21h. 32. H παραπάνω διαδικασία να επαναληφθεί για το monada. 6

3. Ερωτήσεις κατανόησης Δώστε δικαιολογημένες απαντήσεις: 1. Ποιος αριθμός πρέπει να προστεθεί αν έχουμε καθαρή τιμή 10 έως 15 για να το μετατρέψουμε στην αντίστοιχη ASCII αναπαράσταση στο δεκαεξαδικό σύστημα;(α1) 2. Τι τιμές έχει το CS και το IP για την πρώτη εντολή cmp του προγράμματός σας; (Α2) 3. Ποια είναι η λογική διεύθυνση (ή διεύθυνση μετατόπισης) και ποια η φυσική διεύθυνση (ή απόλυτη διεύθυνση) του ανωτέρω CS:IP; (Α3) 4. Γιατί στο αλφαριθμητικό μήνυμα συνήθως βάζουμε το 10,13 ; (Α4) 5. Αν θέλαμε να εκτυπώσουμε το αποτέλεσμα που υπολογίσαμε αμέσως μετά το αλφαριθμητικό (στην ίδια γραμμή) πως θα έπρεπε να γίνει; (Α5) 6. Αν αντί για το τελευταίο int 21h γράφαμε int 33 τι θα γίνονταν; Δοκιμάστε και αιτιολογήστε το. (Α6) 7. Θα μπορούσα να γράψω το int 21h ως int και μια δυαδική σειρά από 1 και 0; Πως; (Α7) 8. Η παρακάτω εντολή είναι σωστή ή όχι για να διαιρέσω το AX με το 10: div 10 ; (Α8) 9. Αν θέλουμε να εκτυπώσουμε ένα χαρακτήρα και δώσουμε AX=01, πριν το int 21h θα εκτυπωθεί ή όχι; (Α9) 10. Πόσα byte καταλαμβάνει το κάθε αλφαριθμητικό παρακάτω; (Α10) hellomsg db Hello hellomsg dw Hello testmsg dd 10,13, Hello 7