$24.99
5η ΟΜΑΔΑ ΑΣΚΗΣΕΩΝ
ΓΙΑ ΤΟ ΜΑΘΗΜΑ "Συστήματα Μικροϋπολογιστών"
ΑΦΟΡΟΥΝ ΣΤΟΝ ΕΠΕΞΕΡΓΑΣΤΗ 80x86:
Ασκήσεις προσομοίωσης
(Να υλοποιηθούν και να δοκιμαστούν με τη χρήση του προγράμματος προσομοίωση emu8086)
1η ΑΣΚΗΣΗ: Να γραφούν τρεις ρουτίνες PRINT_DEC, PRINT_OCT και PRINT_BIN που να δέχονται μέσω του DL έναν 8-bit αριθμό και να τον τυπώνουν στην οθόνη ενός προσωπικού υπολογιστή σε δεκαδική, οκταδική και δυαδική μορφή αντίστοιχα. Στη συνέχεια να γραφεί πρόγραμμα που να διαβάζει από το πληκτρολόγιο έναν αριθμό δύο ψηφίων σε δεκαεξαδική μορφή χρησιμοποιώντας την ρουτίνα HEX_KEYB (που διαβάζει κάθε φορά ένα δεκαεξαδικό ψηφίο) και μόλις συμπληρωθούν 2 έγκυρα ψηφία να τυπώνει τον αριθμό σε δεκαεξαδική, δεκαδική, οκταδική και δυαδική μορφή με ένα χαρακτήρα ‘=’ μεταξύ τους, κάνοντας χρήση των παραπάνω ρουτινών. Στη συνέχεια να αναμένει νέο διψήφιο δεκαεξαδικό αριθμό κ.λπ. Το πρόγραμμα να τερματίζεται σε οποιοδήποτε σημείο εισαγωγής χαρακτήρα με τον ‘Q’.
2η ΑΣΚΗΣΗ: Να δοθεί πρόγραμμα που να αποθηκεύει τους αριθμούς 254, 253, …,1, 0, 255 με τη σειρά αυτή, σε διαδοχικές θέσεις της μνήμης (τύπου byte) αρχίζοντας από την θέση TABLE. Στη συνέχεια το πρόγραμμα να συμπληρωθεί με τους εξής δύο (2) υπολογισμούς και να τυπώνει τα αποτελέσματα σε 2 γραμμές στην οθόνη:
α. Το ακέραιο μέρος (στρογγυλευμένο στα 16 bit) του μέσου όρου των άρτιων (128) από τα 256 δεδομένα σε δεκαεξαδική μορφή.
β. Το μέγιστο και τον ελάχιστο σε μέγεθος από το παραπάνω σύνολο δεδομένων. Τα δύο αυτά αποτελέσματα να τυπωθούν με ένα κενό μεταξύ τους σε δεκαεξαδική μορφή. Θα εκτιμηθεί ο αλγόριθμος να υπολογίζει ταυτόχρονα και τους δύο σε ένα βρόχο αναζήτησης.
Σημείωση: Στην άσκηση αυτή μπορεί να γίνει εύκολα η επαλήθευση του προγράμματος αφού τα αποτελέσματα είναι από πριν γνωστά.
3η ΑΣΚΗΣΗ: Σε ένα προσωπικό υπολογιστή, που βασίζεται στον μΕ 80x86, να γραφεί πρόγραμμα Assembly με τις παρακάτω προδιαγραφές:
1. Να δέχεται δυο (2) διψήφιους δεκαεξαδικούς αριθμούς: x και y από το πληκτρολόγιο (0-F), τους οποίους να τυπώνει στην οθόνη, για παράδειγμα, ως εξής:
x=2F y=3Α
2. Στην επόμενη γραμμή της οθόνης (με την προϋπόθεση ότι συμπληρώθηκαν τέσσερα έγκυρα HEX ψηφία), να υπολογίζει και να τυπώνει το άθροισμα και τη διαφορά των 2 αριθμών σε δεκαδική μορφή, όπως φαίνεται παρακάτω:
x+y=105 x-y=-11
4η ΑΣΚΗΣΗ: Σε ένα προσωπικό υπολογιστή, που βασίζεται στον μΕ 80x86, να γραφεί πρόγραμμα Assembly με τις παρακάτω προδιαγραφές:
1. Να αναμένει την πληκτρολόγηση 16 χαρακτήρων που να αποτελούνται από κεφαλαία αγγλικά A-Z και τους αριθμούς 0-9, τους οποίους να τυπώνει στην οθόνη, αγνοώντας κάθε άλλο χαρακτήρα.
2. Στη συνέχεια, με τη συμπλήρωση 16 έγκυρων χαρακτήρων στην επόμενη γραμμή το πρόγραμμα να τυπώνει το ίδιο κείμενο με πεζούς χαρακτήρες (a-z) ξεχωρίζοντας και τυπώνοντας τους αριθμούς 0-9 στην αρχή με μια παύλα ‘-’ διατηρώντας όμως τη σειρά με την οποίαν δόθηκαν. Το πρόγραμμα να είναι συνεχούς λειτουργίας και να τερματίζεται σε οποιοδήποτε σημείο με τον χαρακτήρα ENTER.
Παράδειγμα: A8X9S1FETD73A8KL 891738-axsfetdakl
5η ΑΣΚΗΣΗ : Σε ένα προσωπικό υπολογιστή, που βασίζεται στον μΕ 80x86 και περιλαμβάνει σύστημα λήψης δεδομένων να γραφεί πρόγραμμα Assembly με τις παρακάτω προδιαγραφές:
Να παρακολουθεί και να απεικονίζει θερμοκρασίες από 0°C ως 1000°C στην οθόνη του PC, σε δεκαδική μορφή (το πολύ 4ων μη κλασματικών ψηφίων) και με ακρίβεια ενός κλασματικού δεκαδικού ψηφίου (για την ζητούμενη ακρίβεια επιλέξτε στρογγύλευση). Υποτίθεται ότι η θερμοκρασία λαμβάνεται μέσω μιας 16-bit θύρας εισόδου σε δυαδική μορφή των 12 bit. Η τάση που παρέχεται από τον αισθητήρα θερμοκρασίας έχει την χαρακτηριστική καμπύλη του παραπάνω σχήματος (Θερμοκρασία/ Τάση εξόδου) και ακολουθείται από ένα μετατροπέα από Αναλογική τιμή σε Ψηφιακή (ADC) των 12 bits (βλ. σχήμα με την χαρακτηριστική καμπύλη: Τάση εισόδου ADC/Έξοδος ADC). Για να προσομοιώσετε την θύρα εισόδου, τα δεδομένα της (12 bits) να τα εισάγετε μέσω του πληκτρολογίου σε μορφή 3ων HEX ψηφίων (να λαμβάνονται κάθε φορά τα 3 πρώτα έγκυρα). Το πρόγραμμα να αρχίζει με το μήνυμα “START (Y, N):” και ανάλογα με το χαρακτήρα που δίνεται να ξεκινάει ή να τερματίζεται. Μετά την εκκίνηση να αναμένει 3 HEX ψηφία όπως αναφέρθηκε και να είναι συνεχούς λειτουργίας δηλαδή να εμφανίζει νέα τιμή θερμοκρασίας σε κάθε νέα τριάδα HEX ψηφίων που δίνεται από το πληκτρολόγιο. Επίσης και στη φάση της λειτουργίας να τερματίζεται αν δοθεί οποιαδήποτε στιγμή ο χαρακτήρας Ν. Για τιμές μεγαλύτερες από 999,9°C να εμφανίζεται το μήνυμα σφάλματος “ERROR”.