Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 5 - Editor

Σχετικά έγγραφα
Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 4 Real Mode Interrupts

Keyboard. Ασσιούρας Ιωάννης 5593 Βούκας Ιωάννης 5001 Πρωτονοτάριος Ιωάννης 6072

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 6 C & Assembly

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 1 Hello World

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Προηγμένοι Μικροεπεξεργαστές. Παρουσίαση Projects

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

Διαδικασιακός Προγραμματισμός

Λύσεις 2 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

ΧΡΗΣΗ ΠΛΗΚΤΡΟΛΟΓΙΟΥ, ΟΘΟΝΗΣ ΚΑΙ INTERRUPTS ΣΤΟΝ EMULATOR

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Διαδικασιακός Προγραμματισμός

Εξωτερικές συσκευές Οδηγός χρήσης

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Εξωτερικές συσκευές Οδηγός χρήσης

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

Εξωτερικές συσκευές Οδηγός χρήσης

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία

Εισαγωγή στον Προγραμματισμό Μάθημα 2: Οκτώβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Μεθόδων Επίλυσης Προβλημάτων

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

scanf() scanf() stdin scanf() printf() int float double %lf float

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Εξωτερικές συσκευές Οδηγός χρήσης

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

Οργάνωση Υπολογιστών (IΙI)

Σημειωματάριο Τετάρτης 25 Οκτ. 2017

Εξωτερικές συσκευές Οδηγός χρήσης

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

Προγραμματισμός Ι (ΗΥ120)

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

1. Άνοιγμα Και Κλείσιμο Της Εφαρμογής Φυλλομετρητή Ιστού (Internet Explorer)

Εισαγωγή στους Υπολογιστές

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Εξωτερικές συσκευές Οδηγός χρήσης

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009

Εργαστήριο 9: Αρχεία

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Χωρική Βάση δεδοµένων Autocad

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

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο

S, (5, -3, 34, -23, 7) ( *, _

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Προτεινόμενες Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 & Αποτελέσματα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

Εξωτερικές συσκευές Οδηγός χρήσης

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Προγραμματισμός Η/Υ (ΤΛ2007 )

Εξωτερικές συσκευές Οδηγός χρήσης

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Μεταβλητές τύπου χαρακτήρα

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Αντιγραφή με χρήση της γυάλινης επιφάνειας σάρωσης

ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

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

Streams Input / Output in C++ George Kastrinis

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Βιβλιοθήκη stdio. Προγραμματισμός II 1

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Μεθόδων Επίλυσης Προβλημάτων

Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT)

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

ιαφάνειες παρουσίασης #4

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Κεφάλαιο 3 Λειτουργικά Συστήματα Β ΕΠΑΛ

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

Transcript:

Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 5 - Editor

Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο από το πληκτρολόγιο κέρσορα συγκεκριμένους χαρακτήρες Θα κλείνει όταν πατηθεί το πλήκτρο esc Αυξητικά, θα προσθέσουμε δυνατότητα επεξεργασίας και αποθήκευσης

BIOS services Κάθε ΙΒΜ-PC συμβατό σύστημα παρέχει μία σειρά από χρήσιμες υπηρεσίες μέσω του BIOS Αφορούν χαμηλού επιπέδου χρήση περιφερειακών συσκευών Οθόνη Πληκτρολόγιο Ποντίκι Εκτυπωτής κοκ

DOS services Παράλληλα το DOS παρέχει και αυτό τις δικές του υπηρεσίες που αφορούν: υψηλότερου επιπέδου χρήση περιφερειακών συσκευών υπηρεσίες σχετικές με την διαχείρηση του λειτουργικού συστήματος

BIOS και DOS services Ο μηχανισμός με τον οποίο καλούνται αυτές οι υπηρεσίες είναι τα software interrupts Κυριότερα interrupts: 18h για το BIOS 21h για το DOS Αναλυτική λίστα με τις παρεχόμενες υπηρεσίες μπορείτε να βρείτε στον Brey και εδώ: http://emu8086.comlu.com/assembly_language_tutorial_assembler_reference/8086 http://www.htl-steyr.ac.at/~morg/pcinfo/hardware/interrupts/inte1at0.htm

Χρήσιμα int 0x21 interrupts Μέσω του int 21h παρέχονται πολλαπλές υπηρεσίες Η επιλογή γίνεται μέσω της τιμής που έχει ο ΑΗ πριν το software interrupt Ah = 01h -> keyboard input with echo Ah = 07h -> direct console input without echo Ah = 0ah -> Buffered keyboard input Ah = 3dh -> open file using handle Ah = 3eh -> close file using handle Ah = 3fh -> read file or device using handle Ah = 40h -> write file or device using handle

Άσκηση Ο κώδικας είναι ομαδοποιημένος σε 4 αρχεία editor.asm : το κεντρικό αρχείο του κώδικα parser.asm : το κομμάτι που υλοποιεί το interface με το filesystem και το πληκτρολόγιο display.asm : το κομμάτι που είναι υπεύθυνο για την απεικόνιση stdio_16bits.asm : βιβλιοθήκη που παρέχει έτοιμες τις cls, printstr, hex2ascii Τα σχόλια πριν τις συναρτήσεις δίνουν και τα πρωτότυπα

editor Συντονίζει τα υποσυστήματα: Είσοδος στο πρόγραμμα Include των υπόλοιπων αρχείων Δέσμευση κοινόχρηστων μεταβλητών Καλεί την parser_init κατά την αρχικοποίηση Μετά καλεί συνέχεια τις display και parser όσο το active = 1

parser Κατά την αρχικοποίηση του: Ανοίγει το αρχείο με το όνομα που περιέχεται στην μεταβλητή file_name Αντιγράφει τα δεδομένα του στην περιοχή μνήμης file_buffer (αρχείο editor.asm) Κλείνει το αρχείο Αν παρουσιάστηκε κάποιο σφάλμα, εκτυπώνεται μήνυμα στην οθόνη και τερματίζει το πρόγραμμα Αν όχι, ενεργοποιεί το main loop του editor (active = 1)

parser Στον κυρίως του βρόχο ο parser διαβάζει συνεχώς το πληκτρολόγιο και: Αν πατηθεί κάποιο βέλος, ανανεώνει την θέση του κέρσορα μέσω της μεταβλητής cursor_pos Αν πατηθεί escape το πρόγραμμα τερματίζει

display Διαβάζει τον file buffer και απεικονίζει τα δεδομένα στην οθόνη Κάνει highlight την τρέχουσα θέση του κέρσορα Παρακολουθεί την μεταβλητή redraw, που σετάρεται από τον parser και αν γίνει 1, ανανεώνει την οθόνη Xρησιμοποιεί άμεση πρόσβαση στην vga text memory Δίνεται τελείως έτοιμο

Σκοπός Να υλοποιήσετε τις συναρτήσεις που καλεί o parser για να διαβάσει τα δεδομένα του αρχείου και να επικοινωνήσει με το πληκτρολόγιο, καθώς και την κλήση τους αυτή καθ'αυτή

Διάβασμα αρχείου Int 21h services: Ah = 3dh -> open file using handle Ah = 3eh -> close file using handle Ah = 3fh -> read file or device using handle Η συνάρτηση πρέπει να επιστρέφει στον ah 0 αν όλα πήγαν καλά, 1 αν παρουσιάστηκε σφάλμα

Παρακολούθηση πληκτρολογίου Int 21h services: 07h -> direct console input without echo Αν το πλήκτρο που πατήθηκε ήταν extended (non ASCII), τότε επιστρέφει 0 και στην επόμενη κλήση της επιστρέφει τον έξτρα κωδικό του πλήκτρου Η συνάρτηση πρέπει να επιστρέφει στον ah το αν το πλήκτρο ήταν extended ή όχι και τον κώδικό (1o διαβασμένο byte για ASCII, 2ο byte για extended) στον al

Extended κωδικοί