ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής Intel 8085, Εργαστηριακές Ασκήσεις

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής Intel 8085, Εργαστηριακές Ασκήσεις"

Transcript

1 ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής Intel 8085, Εργαστηριακές Ασκήσεις Δρ.Τοπάλης Ευάγγελος Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών καθ. Χαδέλλης Λουκάς ΤΕΙ Δυτικής Ελλάδας ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε., ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ v

2 2

3 Περιεχόμενα ΚΕΦΑΛΑΙΟ 1 - ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Εισαγωγή Ο Μικροεπεξεργαστής Βασική Δομή ενός Μικροϋπολογιστή Ο Μικροελεγκτής Εισαγωγή της έννοιας του Λογισμικού Εφαρμογές των μικροϋπολογιστών ΚΕΦΑΛΑΙΟ 2 - ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ 8085 ΜΙΚΡΟΚΙΤ Η δομή του ΜΙΚΡΟΚΙΤ Χαρτογράφηση μνήμης Είσοδοι Έξοδοι ΜΙΚΡΟΚΙΤ Διαχείριση διακοπών στο ΜΙΚΡΟΚΙΤ Λειτουργίες του monitor προγράμματος Εισαγωγή και εκτέλεση προγράμματος Εκτέλεση προγράμματος βήμα-βήμα Εξέταση και αλλαγή του περιεχομένου των καταχωρητών Χειροκίνητη διακοπή Χρήσιμες παρατηρήσεις και λειτουργίες Λειτουργία RESET Λειτουργία WARM START ως break point Τερματισμός προγράμματος ΚΕΦΑΛΑΙΟ 3 - ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ 8085 VIRTUAL KIT Virtual Kit ΚΕΦΑΛΑΙΟ 4 - ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ GNUSIM gnusim

4 ΚΕΦΑΛΑΙΟ 5 - ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΑΣΚΗΣΗ 1 Γενικά για τους Μικροϋπολογιστές, Εξοικείωση με το ΚΙΤ, και τα προγράμματα ΑΣΚΗΣΗ 2 Αποθήκευση σε Μνήμη και Μεταφορά Περιεχομένων Μνήμης Παράδειγμα ΑΣΚΗΣΗ 3 Αριθμητικές πράξεις (Πρόσθεση δεκαεξαδικών 8-bit (διψήφιων) - 16-bit (τετραψήφιων) αριθμών) και λογικές πράξεις Παράδειγμα ΑΣΚΗΣΗ 4 Βρόχοι Εντολές INC/DEC & CMP/CPI, JMP/JNZ/JZ/JNC/JC Διαγράμματα Ροής ΑΣΚΗΣΗ 5 Συγκρίσεις, Διακλαδώσεις & Βρόχοι - Διαγράμματα Ροής ΑΣΚΗΣΗ 6 Αριθμητικές Πράξεις Πολλαπλασιασμός ΑΣΚΗΣΗ 7 Στοίβα και Εύρεση Μέγιστου ΑΣΚΗΣΗ 8 Στοίβα και Υπορουτίνες ΑΣΚΗΣΗ 9 Λειτουργίες Ι/Ο Θύρες Εισόδου / Εξόδου ΑΣΚΗΣΗ 10 Επαναληπτική ΠΑΡΑΡΤΗΜΑ 1 - ΡΕΠΕΡΤΟΡΙΟ ΕΝΤΟΛΩΝ ΤΟΥ

5 Κεφάλαιο 1 ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ 1.1 Εισαγωγή Ο Μικροϋπολογιστής είναι ένας «μικρός» υπολογιστής και αποτελείται από τα εξής μέρη Τον Μικροεπεξεργαστή ή CPU Την Μνήμη (RAM, ROM, Flash) Τα Κυκλώματα Εισόδου / Εξόδου ή όπως λέγονται Ι/Ο (Input / Output). Τα Ι/Ο χρησιμοποιούνται για την διασύνδεση περιφερειακών «εξωτερικών» συσκευών όπως η οθόνη, το πληκτρολόγιο, ο εκτυπωτής, ο δίσκος αποθήκευσης κλπ. Όλα αυτά τα στοιχεία είναι τοποθετημένα πάνω σε μια πλακέτα (board). Ο μικροϋπολογιστής είναι το υπολογιστικό σύστημα πάνω στο οποίο αναπτύχθηκαν, αφενός οι προσωπικοί υπολογιστές (PC s) και αφετέρου τα σύγχρονα υπολογιστικά συστήματα βασισμένα στην αρχιτεκτονική της κατανεμημένης ή παράλληλης επεξεργασίας (distributed / parallel processing). Πέρα από αυτά όμως ο μικροϋπολογιστής σήμερα υπάρχει μέσα σε οποιαδήποτε ηλεκτρονική ή ηλεκτρική συσκευή χρειάζεται υπολογιστική νοημοσύνη. Έτσι ο μικροϋπολογιστής υπάρχει μέσα στο αυτοκίνητο (ABS, Injection, Cruise control, αερόσακοι, διαγνωστικά, κλπ.), μέσα σε συσκευές της κατοικίας (πλυντήριο, τηλεόραση, ψυγείο, κλπ.), στο γραφείο (τηλεφωνικό κέντρο, τηλεφωνική συσκευή, φαξ, κλπ.), στα συστήματα αυτοματισμού κτιρίων και κατοικιών (κλιματισμός, θέρμανση / ψύξη, ασφάλεια, φωτισμός, κλπ.), στις προσωπικές μας συσκευές (κινητό τηλέφωνο, ρολόι, PDA, έξυπνες κάρτες, κλπ.) και αλλού. Δεν χρειάζεται να αναφερθεί η βιομηχανία, η βιοτεχνία και η εν γένει παραγωγή. Όλοι οι βιομηχανικοί αυτοματισμοί (PLC, industrial controllers, AC/DC Drives, Inverters, Converters, κλπ.) βασίζονται στην «νοημοσύνη» που παρέχει ο μικροϋπολογιστής. 1.2 Ο Μικροεπεξεργαστής Η κεντρική επεξεργαστική μονάδα ή Central Processing Unit ή CPU ή απλά ο μικροεπεξεργαστής αποτελεί το βασικότερο μέρος ενός μικροϋπολογιστή. Είναι ένα πολύπλοκο ψηφιακό κύκλωμα το οποίο αποτελείται από τα εξής μέρη. Καταχωρητές (Registers) για προσωρινή αποθήκευση δεδομένων (data), εντολών (commands), όπως και άλλων πληροφοριών. Υπάρχουν καταχωρητές αποκλειστικής ή γενικής χρήσης. Αποκωδικοποιητή Εντολών (Command Decoder) για την μετατροπή μιας εντολής προγράμματος σε μια σειρά λειτουργιών, μέσω των οποίων υλοποιείται η εν λόγω εντολή. 5

6 Αριθμητική και Λογική Μονάδα (Α / Λ Μ) (Arithmetic / Logic Unit ALU) η οποία εκτελεί αριθμητικές (αθροιστής κλπ.) και λογικές πράξεις. Κυκλώματα Χρονισμού και Ελέγχου (Timing / Control ) τα οποία με ψηφιακό ρολόι και ψηφιακούς απαριθμητές παράγουν δευτερεύοντα περιοδικά και μη σήματα, για να ελέγχουν και διατηρούν τη σωστή ακολουθία των λειτουργιών στα πλαίσια της εκτέλεσης εντολών προγράμματος. Εσωτερικούς διαύλους επικοινωνίας (Internal Bus) για την επικοινωνία όλων αυτών των μονάδων μεταξύ των, μέσα στην CPU. Διασύνδεση των εσωτερικών διαύλων με τους εξωτερικούς διαύλους (Data / Address / Control Buses Interfaces) για την επικοινωνία της CPU με τα άλλα τμήματα του μικροϋπολογιστή όπως μνήμη και Ι/Ο μέσω των τριών διαύλων Δεδομένων / Διευθύνσεων / Ελέγχου. Η CPU υλοποιείται από την συνεργασία και συνλειτουργία όλων αυτών των προαναφερομένων μερών ή μονάδων, και είναι «συγκεντρωμένη» μέσα σε ένα chip. 1.3 Βασική Δομή ενός Μικροϋπολογιστή Η δομή αυτή φαίνεται στο παρακάτω σχήμα (Σχήμα 1). Τα τρία μέρη του μικροϋπολογιστή, δηλαδή η CPU, η Μνήμη και τα Ι/Ο επικοινωνούν με τρεις διαύλους επικοινωνίας, τον Δίαυλο Δεδομένων (Data Bus), τον Δίαυλο Διευθύνσεων (Address Bus) και τον Δίαυλο Ελέγχου (Control Bus). Σχήμα 1 Η υπολογιστική ισχύς γενικά καθορίζεται από τα εξής στοιχεία: 6

7 Την ταχύτητα (το ρολόι) της CPU (πχ 700 MHz ή 3GHz). Όσο υψηλότερη τόσο ισχυρότερος. Το εύρος του διαύλου δεδομένων (πχ 8 bit, 16 bit, 32 bit, 64 bit). Όσο περισσότερα bits τόσο ισχυρότερος. Το εύρος του διαύλου διευθύνσεων (πχ 16 bit 64 kbytes, 32 bit 4 Gbytes). Όσο μεγαλύτερος τόσο περισσότερη μνήμη μπορεί να διευθυνσιοδοτηθεί και τόσο ισχυρότερο είναι το σύστημα. Το πλήθος των εσωτερικών καταχωρητών της CPU. Όσο περισσότεροι τόσο ισχυρότερος. Την παρουσία ειδικής μνήμης cache δίπλα στην CPU. 1.4 Ο Μικροελεγκτής Είναι ένας Μικροϋπολογιστής «συγκεντρωμένος» σε ένα chip. Δηλαδή CPU, Μνήμη και Ι/Ο είναι όλα συγκεντρωμένα στο ίδιο chip. Οι μικροελεγκτές χρησιμοποιούνται στις εφαρμογές αυτοματισμού και στην «τοποθέτηση» υπολογιστικής νοημοσύνης σε μικρές συσκευές. 1.5 Εισαγωγή της έννοιας του Λογισμικού Το Λογισμικό είναι πρόγραμμα φορτωμένο στην μνήμη του μικροϋπολογιστή όπως φαίνεται στο παρακάτω σχήμα (Σχήμα 2). Πρόγραμμα Software F8 4C 8D A5 89 FF E2 45 CPU S / W M I/O ΔΙΑΥΛΟΙ ΔΕΔΟΜΕΝΩΝ - ΔΙΕΥΘΥΝΣΕΩΝ & Buses ΕΛΕΓΧΟΥ Data / Address / Contol Σχήμα 2 Το Λογισμικό επιτρέπει τον διαρκή και αέναο «επαναπρογραμματισμό» του μικροϋπολογιστή ώστε να μπορεί να αλλάζει λειτουργία και να αντεπεξέρχεται σε διαφορετικά προβλήματα διατηρώντας την ίδια δομή και αρχιτεκτονική. Το λογισμικό δίνει την δυνατότητα της προηγμένης επικοινωνίας του ανθρώπου με το υλικό Hardware του μικροϋπολογιστή. Η «θέση» του λογισμικού σε σχέση με το υλικό φαίνεται στο παρακάτω σχήμα (Σχήμα 3). 7

8 S / W MICROCOMPUTER BOARD MONITOR PROGRAM RESET, PRINT, ESCAPE, ENTER ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ (MACHINE LANGUAGE) Bytes (Hex) FE, 8A, DE, 23 ΔΥΑΔΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ bits HARDWARE (H/W) Σχήμα 3 Η Γλώσσα Μηχανής και το Monitor Program είναι τα δύο επίπεδα λογισμικού από την Μηχανή προς τον Άνθρωπο. Στο χαμηλότερο επίπεδο βρίσκεται το υλικό ή Hardware (H/W). Πάνω από το H/W υπάρχει «εικονικά» η δυαδική αναπαράσταση των ηλεκτρικών μεγεθών του H/W που είναι υψηλές (high=1) και χαμηλές (low=0) στάθμες τάσης. Πάνω από αυτό το επίπεδο υπάρχει η «ομαδοποίηση» των bits σε Bytes και η «εμφάνιση» της Γλώσσας Μηχανής στο δεκαεξαδικό σύστημα. Από εδώ και πάνω εισάγεται η έννοια του λογισμικού ή προγράμματος (software S/W). Το προφορτωμενο λογισμικό ή Monitor Program είναι το ανώτατο επίπεδο επικοινωνίας του χειριστή με τον μικροϋπολογιστή 8085 μέσω εντολών λειτουργικού προγράμματος. Από εδώ ο χρήστης χειρίζεται το μικροϋπολογιστικό σύστημα του 8085 με εντολές. S / W MICROCOMPUTER BOARD ΦΙΛΙΚΟΤΗΤΑ ΕΠΙΚΟΙΝΩΝΙΑΣ ΓΛΩΣΣΑ ASSEMBLY ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ (MACHINE LANGUAGE) ΔΥΑΔΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ HARDWARE (H/W) LDA, STA, MOV, ADC, INC Bytes (Hex) FE, 8A, DE, 23 bits Σχήμα 4 8

9 Ο χρήστης μπορεί να προγραμματίζει τον 8085 να κάνει διάφορες εργασίες μέσω της γλώσσας προγραμματισμού Assembly. Η Assembly στην ουσία είναι μια «μετάφραση» της γλώσσας μηχανής σε «ανθρώπινα αντιληπτή μορφή» δηλαδή μοιάζει με ανθρώπινη γλώσσα επικοινωνίας. Το αντίστοιχο μοντέλο σε επίπεδα έχει την παρακάτω μορφή (Σχήμα 4). Από τα δύο προηγούμενα σχήματα φαίνεται ότι η Γλώσσα Assembly και το Monitor Program βρίσκονται στο ίδιο επίπεδο πάνω από την Γλώσσα Μηχανής. Πράγματι αυτά τα δύο λογισμικά βρίσκονται σε παράλληλη λειτουργία. Το Monitor είναι λογισμικό τοποθετημένο από τον κατασκευαστή και επιτρέπει τον γενικό έλεγχο του μικροϋπολογιστή ενώ η Assembly είναι λογισμικό που επιτρέπει τον προγραμματισμό σε γλώσσα Assembly. Αν κάναμε ένα μοντέλο επιπέδων όπως τα δυο προηγούμενα, για τον Η/Υ μας τότε αυτά θα είχαν την εξής μορφή. COMPUTER W I N D O W S D O S B I O S WINDOWS, MENUS, BUTTONS, FIELDS Disc Operating System Basic Input Output System ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ (MACHINE LANGUAGE) Bytes (Hex) FE, 8A, DE, 23 ΔΥΑΔΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ bits HARDWARE (H/W) Σχήμα 5 Στον Η/Υ μας το ισχυρό λειτουργικό σύστημα που αντιστοιχεί στο Monitor Program του μικροϋπολογιστή, είναι τα επίπεδα από το BIOS έως και τα WINDOWS. 9

10 S / W COMPUTER ΦΙΛΙΚΟΤΗΤΑ ΕΠΙΚΟΙΝΩΝΙΑΣ VISUAL ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ VISUAL C, VISUAL BASIC ΥΨΗΛΟΤΕΡΕΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C, C++, JAVA, BASIC, PASCAL ASSEMBLY ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ (MACHINE LANGUAGE) ΔΥΑΔΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ WINDOWS, MENUS, BUTTONS, FIELDS if, then, while, when, include Bytes (Hex) FE, 8A, DE, 23 bits HARDWARE (H/W) Σχήμα 6 Αντίστοιχα στο προγραμματιστικό περιβάλλον του Η/Υ, αντί της Assembly του μικροϋπολογιστή, έχουμε Υψηλότερες Γλώσσες Προγραμματισμού. Η Assembly μπορεί επίσης να συνεχίζει να υπάρχει πάνω από την γλώσσα μηχανής όπως φαίνεται στο παραπάνω σχήμα. Με αναφορά τον προσωπικό μας Η/Υ μας, μπορούμε να πούμε ότι αποτελείται από τα εξής μέρη, διότι βασίζεται στον μικροϋπολογιστή. ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΗ (ταχύτητα 3 GHz εύρος ψηφιακής λέξης 64 bit) ) ΜΝΗΜΗ RAM (ποσότητα πχ. 2 GBytes ταχύτητα πχ. 800 MHz) ΚΥΚΛΩΜΑΤΑ ΕΙΣΟΔΟΥ / ΕΞΟΔΟΥ (ποσότητα είδη πχ. PCI, PCI E, IDE, SATA, SCSI, USB, FireWire, Serial, Parallel) ΕΞΩΤΕΡΙΚΕΣ ΣΥΣΚΕΥΕΣ (οθόνη, πληκτρολόγιο, εκτυπωτής, δίσκος κλπ.) 1.6 Εφαρμογές των μικροϋπολογιστών Ο μικροϋπολογιστής μέσω του προγραμματισμού του από την γλώσσα Assembly μπορεί να κάνει διάφορες εργασίες είτε «Εσωτερικές» όπως πχ να προσθέτει / αφαιρεί / πολλαπλασιάζει / διαιρεί αριθμούς, να υπολογίζει τύπους, να βρίσκει μέγιστο / ελάχιστο, να μεταφέρει δεδομένα από μια περιοχή μνήμης σε μια άλλη, να λύνει εξισώσεις κλπ. Ή «Εξωτερικές» όπως να δέχεται από τις εισόδους δεδομένα, να τα επεξεργάζεται και να παράγει νέες εξόδους μέσω των κυκλωμάτων εισόδου / εξόδου (Ι/Ο 8085, 8255) Στο παρακάτω σχήμα φαίνεται που μπορεί να χρησιμοποιηθεί ένας μικροϋπολογιστής ή μέσα σε ποια συστήματα ενσωματώνεται. Ο μικροϋπολογιστής είναι το βασικό ψηφιακό ηλεκτρονικό κύκλωμα ή σύστημα που έχει υπολογιστική 10

11 νοημοσύνη και μπορεί να κάνει εργασίες, να παίρνει αποφάσεις, να ελέγχει κλπ. Αποτελεί λοιπόν το βασικότερο στοιχείο σε συσκευές όπως είναι οι Η/Υ, τα PLC, οι βιομηχανικοί ελεγκτές, οι δικτυακές συσκευές, τα χειριστήρια ελέγχου και οποιοδήποτε σύστημα ή συσκευή πρέπει να είναι «Έξυπνο» δηλαδή να έχει δυναμική συμπεριφορά, να αντιδρά σε ερεθίσματα και χοντρικά να «σκέφτεται», βέβαια σε «χαμηλό» επίπεδο. CPU M Ι / Ο PLC ΔΙΑΥΛΟΙ ΔΕΔΟΜΕΝΩΝ - ΔΙΕΥΘΥΝΣΕΩΝ & ΕΛΕΓΧΟΥ OPERATOR PANEL PC PLC INDUSTRIAL CONTROLLER DC / AC MOTOR DRIVE COMMUNICATION UNIT (Router, Switch, Hub) Σχήμα 7 11

12 Κεφάλαιο 2 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ 8085 ΜΙΚΡΟΚΙΤ 2.1 Η δομή του ΜΙΚΡΟΚΙΤ Στο ποιο κάτω σχήμα φαίνεται η κάτοψη του ΜΙΚΡΟΚΙΤ 8085, το οποίο αποτελείται από το με 8085, μνήμη SRAM, μνήμη EPROM, την USART 8251, το προγραμματιζόμενο περιφερειακό παράλληλης διασύνδεσης 8155, τον ελεγκτή πληκτρολογίου 8279, έξι seven segment displays (θα το ονομάζουμε εν συντομία display ) και μια σειρά από συνδέσμους (connectors). Με τη βοήθεια του ΜΙΚΡΟΚΙΤ μπορεί να αναπτυχθεί, να ελεγχθεί και να εκσφαλματωθεί γρήγορα και αποτελεσματικά το λογισμικό εφαρμογής για τον μe Ο σκοπός αυτός υποστηρίζεται από ένα ειδικού σκοπού λογισμικό το οποίο έχει αναπτυχθεί και αποθηκευτεί στην μνήμη EPROM του ΜΙΚΡΟΚΙΤ. Το πρόγραμμα ονομάζεται εν συντομία monitor και έχει τις πιο κάτω λειτουργίες δυνατότητες: Εξέταση του περιεχομένου όλων των θέσεων μνήμης (RAM και ROM) του συστήματος και απεικόνιση στο display. Εξέταση του περιεχομένου όλων των καταχωρητών του με και απεικόνιση στο display. Αλλαγή του περιεχομένου όλων των θέσεων μνήμης RAM. Αλλαγή του περιεχομένου όλων των καταχωρητών του με. Εκτέλεση προγράμματος. Εκτέλεση προγράμματος βήμα βήμα. Επανεκκίνηση (RESET) με το πάτημα ενός πλήκτρου. Διακοπή της λειτουργίας ενός προγράμματος (INTERRUPT) και εκτέλεση άλλου υποπρογράμματος με το πάτημα ενός πλήκτρου. 12

13 Σχήμα 8 Κάτοψη του ΜΙΚΡΟΚΙΤ Χαρτογράφηση μνήμης Στο πιο κάτω εικόνα φαίνεται παραστατικά η δομή της μνήμης του ΜΙΚΡΟΚΙΤ. 13

14 Σχήμα 9 Χαρτογράφηση μνήμης 2.3 Είσοδοι Έξοδοι ΜΙΚΡΟΚΙΤ Το ΜΙΚΡΟΚΙΤ έχει τις εξής δυνατότητες εισόδου εξόδου: 3 παράλληλες θύρες (IC C) σύνδεσμος X1 Σειριακή θύρα USART (IC A) σύνδεσμος DB9 1 Σειριακή θύρα η οποία υποστηρίζεται από τον με8085 μέσω των ακίδων της SID και SOD σύνδεσμος DB9 2 Κύκλωμα ελέγχου πληκτρολογίου και Display (IC14 KDC 8279) 14

15 Όλα τα βασικά σήματα του με8085 είναι διαθέσιμα στο σύνδεσμο X1 Στον πιο κάτω πίνακα φαίνονται αναλυτικά οι Ι/Ο διευθύνσεις που έχουν ανατεθεί σε διάφορα ολοκληρωμένα κυκλώματα για τον έλεγχο της λειτουργίας τους και για την διακίνηση δεδομένων. Ολοκληρωμένο Διεύθυνση Διεύθυνση USART 8251 (IC13) 1EH 1FH Data Register Control/Status Register KDC 8279 (IC14) 2EH 2FH Data Register Control/Status Register PPI 8155 (IC12) 40H 41H 42H 43H 44H 45H Command/Status Register Data Register PORT A Data Register PORT B Data Register PORT C Timer λιγότερο σημαντικό byte Timer περισσότερο σημαντικό byte input port (IC21) 0FH Παράλληλο θύρα εισόδου 3 bits. Η θύρα αυτή είναι συνδεδεμένη απ ευθείας στο data bus του με και διαθέσιμη στο χρήστη μέσω του συνδέσμου Χ3 Πίνακας 1. Ανάθεση Ι/Ο διευθύνσεων στη διαχείριση των θυρών εισόδου εξόδου. Στους πιο κάτω πίνακες φαίνεται η ανάθεση των ακίδων στους διαθέσιμους συνδέσμους εισόδου εξόδου. Ακίδες Λειτουργία 1 Ασύνδετο 2 RxD (input) 3 TxD (output) 4 CTS# (input) 5 RTS# (output) 15

16 6 Ασύνδετο 7 GND 8 Ασύνδετο 9 Ασύνδετο Πίνακας 2. Ανάθεση ακίδων στο σύνδεσμο DB9 1 (σειριακή θύρα 8251). Ακίδες Λειτουργία Ακίδες Λειτουργία 25 PA0 13 PB4 26 PA1 14 PB5 23 PA2 11 PB6 24 PA3 12 PB7 21 PA4 9 PC0 22 PA5 10 PC1 19 PA6 7 PC2 20 PA7 8 PC3 17 PB0 5 PC4 18 PB1 6 PC5 15 PB2 2 & 4 VCC (+5V) 16 PB3 1 & 3 GND Πίνακας 3. Ανάθεση ακίδων στο σύνδεσμο X2 (παράλληλη θύρα 8155). Ακίδες Λειτουργία Ακίδες Λειτουργία 25 A0 33 AD0 26 A1 34 AD1 16

17 23 A2 31 AD2 24 A3 32 AD3 21 A4 29 AD4 22 A5 30 AD5 19 A6 27 AD6 20 A7 28 AD7 17 Α8 8 IO/M# 18 Α9 7 ALE 15 Α10 5 RESET OUT 16 Α11 10 RD# 13 Α12 9 WR# 14 Α13 6 CLK OUT 11 Α14 1, 2, 3, 4 GND 12 A15 Πίνακας 4. Ανάθεση ακίδων στο σύνδεσμο X1 (CPU BUS). Ακίδες Λειτουργία 1 Ασύνδετη 2 SID (input) 3 SOD (output) 4 Ασύνδετη 5 Ασύνδετη 6 Ασύνδετη 17

18 7 GND 8 Ασύνδετη 9 Ασύνδετη Πίνακας 5. Ανάθεση ακίδων στο σύνδεσμο DB9 2 (σειριακή θύρα με8085). 2.4 Διαχείριση διακοπών στο ΜΙΚΡΟΚΙΤ Οι διακοπές στο με8085 διακλαδίζουν το πρόγραμμα (με εξαίρεση τη διακοπή INTR) σε θέσεις μνήμης κοντά στη θέση 0000Η. Αυτή η περιοχή μνήμης είναι γνωστή ως interrupt vector table και χρησιμοποιείται για την ανάπτυξη των ρουτινών εξυπηρέτησης των διακοπών. Στο ΜΙΚΡΟΚΙΤ στην περιοχή αυτή υπάρχει η μνήμη ROM η οποία περιέχει το monitor πρόγραμμα. Αποτέλεσμα αυτού είναι να μην δίδεται η δυνατότητα στο χρήστη να τοποθετήσει τις ρουτίνες εξυπηρέτησης διακοπών στην περιοχή αυτή. Το πρόβλημα αυτό αντιμετωπίζεται από το monitor πρόγραμμα με την προσθήκη εντολών διακλάδωσης σε συγκεκριμένες θέσεις μνήμης οι οποίες βρίσκονται σε περιοχή στην οποία υπάρχει μνήμη RAM. Με το τρόπο αυτό δημιουργείται ένα δεύτερο interrupt vector table το οποίο θα χρησιμοποιείται πλέον για την ανάπτυξη τον ρουτινών εξυπηρέτησης των διακοπών. Θα πρέπει όμως να σημειωθεί ότι δεν είναι όλες οι πηγές διακοπών διαθέσιμες στο χρήστη του ΜΙΚΡΟΚΙΤ μιας και μερικές από αυτές χρησιμοποιούνται από το monitor για την λειτουργία του ΜΙΚΡΟΚΙΤ. Στον πιο κάτω πίνακα φαίνεται αναλυτικά ο τρόπος με τον οποίο διαχειρίζεται το monitor πρόγραμμα τις διακοπές. Διακοπή με 8085 Λειτουργία Αρχική διεύθ. εξυπηρέτησης Τελική διεύθ. εξυπηρέτησης TRAP Συνδέεται με το TIMER OUT του 8155 και χρησιμοποιείται από το monitor πρόγραμμα για την υλοποίηση της λειτουργίας SINGLE STEP. 0024H RST 7.5 Συνδέεται με το πλήκτρο VI χρησιμοποιείται για τη 003CH 40E3H χειροκίνητη δημιουργία διακοπής. Διατίθεται στο χρήστη. RST 6.5 Συνδέεται στο JUMPER J2. Διατίθεται στο χρήστη. 0034H 40DDH RST 5.5 Συνδέεται με το 8279 και χρησιμοποιείται για να ειδοποιήσει τον με ότι πατήθηκε κάποιο πλήκτρο. 002CH 18

19 INTR Συνδέεται στο JUMPER J3. Διατίθεται στο χρήστη. Για να χρησιμοποιηθεί η διακοπή αυτή είναι απαραίτητη η ανάπτυξη εξωτερικού HW. RST 0 Χρησιμοποιείται από το monitor πρόγραμμα. Υλοποιεί την λειτουργία COLD START που ισοδυναμεί με HW RESET. 0000H RST 1 Χρησιμοποιείται από το monitor πρόγραμμα. Υλοποιεί την λειτουργία WARM START και μπορεί να χρησιμοποιείται για την επαναφορά του ελέγχου στο monitor πρόγραμμα από πρόγραμμα του χρήστη. Για το λόγο αυτό είναι χρήσιμη επίσης αυτή η διακοπή και υλοποίηση break points στο πρόγραμμα του χρήστη. 0008H RST 2 Δεν υλοποιείται, επικαλύπτεται από το monitor πρόγραμμα. Δεν πρέπει να χρησιμοποιείται. RST 3 Δεν υλοποιείται, επικαλύπτεται από το monitor πρόγραμμα. Δεν πρέπει να χρησιμοποιείται. RST 4 Δεν υλοποιείται, επικαλύπτεται από το monitor πρόγραμμα. Δεν πρέπει να χρησιμοποιείται. RST 5 Διατίθεται στο χρήστη. 0028H 40D7H RST 6 Διατίθεται στο χρήστη. 0030H 40DAH RST 7 Διατίθεται στο χρήστη. 0038H 40E0H Πίνακας 6. Διαχείριση διακοπών στο ΜΙΚΡΟΚΙΤ. 2.5 Λειτουργίες του monitor προγράμματος Το monitor πρόγραμμα είναι σε θέση να εκτελέσει μια σειρά από λειτουργίες, οι οποίες μπορούν να μας φανούν χρήσιμες στην ανάπτυξη προγραμμάτων εφαρμογής για τον με8085 με την βοήθεια του ΜΙΚΡΟΚΙΤ. Οι λειτουργίες αυτές εξυπηρετούνται από το πληκτρολόγιο και το display το υπάρχει στο ΜΙΚΡΟΚΙΤ και έχει την ακόλουθη δομή. 19

20 Ένα μέρος του πληκτρολογίου, το αριθμητικό, μας επιτρέπει την εισαγωγή δεκαεξαδικών αριθμών κατά την πληκτρολόγηση εντολών. Η εντολοδότηση του monitor υποστηρίζεται και από μια σειρά πλήκτρων ειδικών λειτουργιών. Το αποτέλεσμα κάθε εντολής απεικονίζεται στο display το οποίο διαιρείται σε δύο μέρη. Το πρώτο μέρος αποτελείται από τέσσερα ψηφία και απεικονίζει διευθύνσεις μνήμης ή καταχωρητές ενώ το δεύτερο απεικονίζει δεδομένα. Η δομή του πληκτρολογίου και του display καθώς επίσης και μια σύντομη επεξήγηση της λειτουργίας των πλήκτρων ειδικού σκοπού φαίνεται στην πιο κάτω εικόνα. Εικόνα 1. Η δομή και η χρήση του πληκτρολογίου και του display Εξέταση και αλλαγή περιεχομένων μνήμης Με την εντολή μπορεί να εξεταστεί το περιεχόμενο μιας θέσης μνήμης. Στην περίπτωση όπου η υπό εξέταση περιοχή μνήμης είναι τύπου RAM τότε υπάρχει η δυνατότητα αλλαγής του περιεχομένου της. Αν επιχειρηθεί η αλλαγή του περιεχομένου μιας θέσης ROM μνήμης το monitor πρόγραμμα το αντιλαμβάνεται και εμφανίζει στο display μήνυμα λάθους Err. Η σύνταξη της εντολής καθώς και το αποτέλεσμα της εφαρμογής της φαίνεται παραστατικά στην πιο κάτω εικόνα. 20

21 Εικόνα 2. Εντολή εξέτασης και αλλαγής περιεχομένων μνήμης Εισαγωγή και εκτέλεση προγράμματος Το monitor πρόγραμμα με την εντολή αλλαγής μνήμης που διαθέτει μας δίδει την δυνατότητα εισαγωγής προγράμματος από το πληκτρολόγιο. Ας υποθέσουμε ότι θέλουμε να εισάγουμε το πιο κάτω πρόγραμμα στο ΜΙΚΡΟΚΙΤ στη θέση μνήμης 2000H (περιοχή RAM) και στη συνέχεια να το εκτελέσουμε. MVI A, 47H RST 1 Η μετατροπή του προγράμματος αυτού σε γλώσσα μηχανής έχει ως εξής: Διεύθυνση Δεδομένα Κώδικας Assembly 21

22 2000 3E MVI A,47H CF RST 1 Αφού εισάγουμε το πρόγραμμα σύμφωνα με τις εντολές τις παραγράφου 0 δίνουμε στο ΜΙΚΡΟΚΙΤ την εντολή εκτέλεσης προγράμματος η οποία συντάσσεται ως εξής: Εκτέλεση προγράμματος βήμα βήμα Το monitor πρόγραμμα μας δίδει την δυνατότητα εκτέλεσης προγράμματος βήμα. Η σύνταξη της εντολής είναι η εξής: Εξέταση και αλλαγή του περιεχομένου των καταχωρητών Το monitor πρόγραμμα μας δίδει την δυνατότητα εξέτασης του περιεχομένου των όλων καταχωρητών των καταχωρητών του με καθώς επίσης και την δυνατότητα μεταβολής του περιεχομένου τους. Η σύνταξη της εντολής στην περίπτωση της εξέτασης του περιεχομένου είναι η εξής: 22

23 Για την αλλαγή του περιεχομένου των καταχωρητών χρησιμοποιούμε τα πλήκτρα «R» και «Ν» προκειμένου να εμφανίσουμε τον καταχωρητή που επιθυμούμε να μεταβάλουμε, στη συνέχεια χρησιμοποιώντας το πληκτρολόγιο αλλάζουμε τιμή, η οποία αποθηκεύεται στο καταχωρητή με το πάτημα του πλήκτρου «Ν». Στην πιο κάτω εικόνα φαίνεται ένα παράδειγμα εξέτασης και αλλαγής της τιμής του καταχωρητή B. Εικόνα 3. Εξέταση και αλλαγή περιεχομένου καταχωρητή Η σειρά με την οποία εμφανίζονται οι καταχωρητές στο display φαίνεται στον πιο κάτω πίνακα. 23

24 Πεδίο διευθύνσεων του display Πλήρης ονομασία καταχωρητή Καταχωρητής Α Καταχωρητής B Καταχωρητής C Καταχωρητής D Καταχωρητής E Καταχωρητής των FLAGS INTERRUPT BYTE Καταχωρητής H Καταχωρητής L Το περισσότερο σημαντικό byte του 16 bit STACK POINTER Το λιγότερο σημαντικό byte του 16 bit STACK POINTER Το περισσότερο σημαντικό byte του 16 bit PROGRAM COUNTER Το λιγότερο σημαντικό byte του 16 bit PROGRAM COUNTER Πίνακας 7. Σειρά εμφάνισης καταχωρητών. 24

25 Μερικοί από τους πιο πάνω καταχωρητές χρίζουν ιδιαίτερης επεξήγησης διότι δεν είναι φανερός ο τρόπος με τον οποίο το monitor τους χειρίζεται. Η σημασία των bits του καταχωρητή F (FLAGS) είναι η εξής: Η σημασία των bits του ΙΝΤΕRRUPT BYTE (Ι), αμέσως μετά την εκτέλεση κάποιου προγράμματος είναι η εξής: BIT 7: SID (Serial Input Data). Δείχνει την κατάσταση της ακίδας SID του με8085 BIT 3: ΙΕ (Interrupt Enable). Όταν το bit αυτό έχει την τιμή 1 σημαίνει πως οι διακοπές είναι ενεργοποιημένες. Η ενεργοποίηση αυτού του bit γίνεται με εντολή EI (Enable Interrupt) και η απενεργοποίηση με την εντολή DI. BIT 2 0: M7.5, M6.5, M5.5: Δείχνουν την παρούσα κατάσταση ενεργοποίησης των διακοπών RST7.5, RST6.5, RST5.5. Όταν κάποιο από τα bit αυτά έχει την τιμή 1 σημαίνει πως έχει τεθεί μάσκα στο αντίστοιχο interrupt και εμποδίζεται η εξυπηρέτηση του. Αντίθετα όταν τα bit αυτά έχουν την τιμή 0 και IE bit (BIT 3) έχει την τιμή 1 τότε επιτρέπεται στην CPU να εξυπηρετήσει μια αίτηση διακοπής. Όταν το monitor αλλάζει το περιεχόμενο του INTERRUPT BYTE τότε τα bits αυτού αποκτούν την πιο κάτω σημασία. Τα bits 3 0 έχουν την ίδια σημασία με αυτή που αναλύθηκε πιο πάνω και τροποποιώντας τα μπορούμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε όλες τις διακοπές ή καθεμιά χωριστά. H σημασία των bit 6 και 7 αναλύεται πιο κάτω. BIT 7: SΟD (Serial Output Data). Η κατάσταση του αντιστοιχεί στη στάθμη που τίθεται στην ακίδα εξόδου SOD του με8085 εφόσον το bit 6 έχει την τιμή 1. BIT 6: SOΕ (Serial Output Enable). Όταν το bit αυτό έχει την τιμή 1 τότε το bit 7 εμφανίζεται στην ακίδα 25

26 εξόδου SOD του με8085. Όταν έχει την τιμή 0 η έξοδος είναι απενεργοποιημένη Χειροκίνητη διακοπή Το κουμπί «VI» το πληκτρολογίου είναι διασυνδεδεμένο με την ακίδα διακοπής RST 7.5 του με8085. Στην περίπτωση όπου η συγκεκριμένη διακοπή είναι ενεργοποιημένη και πατηθεί το κουμπί «VI» αυτό θα προκαλέσει την εκτέλεση προγράμματος από τη θέση 003CH δηλαδή από την θέση εκείνη του interrupt vector table του με8085 που προβλέπεται για τη διακοπή RST 7.5. Η θέση 003CH όμως βρίσκεται στη ROM όπου φυλάσσεται και το monitor πρόγραμμα το οποίο και ανακατευθύνει την διακοπή αυτή στη διεύθυνση 40E3H. Η θέση αυτή βρίσκεται σε περιοχή όπου υπάρχει RAM μνήμη και είναι δυνατή η ανάπτυξη της δικιάς μας ρουτίνας εξυπηρέτησης της διακοπής. Πρέπει να σημειώσουμε ότι στην περιοχή έχουν δεσμευθεί μόλις 3 θέσεις μνήμης για τον σκοπό αυτό οι οποίες μόλις που επαρκούν για την ανακατεύθυνση της ρουτίνας εξυπηρέτησης διακοπής σε μια άλλη περιοχή μνήμης όπου υπάρχει διαθέσιμη μνήμη RAM (στην περιοχή από 2000H ως 27FFH) Χρήσιμες παρατηρήσεις και λειτουργίες Στις επόμενες γραμμές αναλύονται διάφορες χρήσιμες λειτουργίες του ΜΙΚΡΟΚΙΤ για την ανάπτυξη λογισμικού εφαρμογής με την βοήθεια του, ενώ παράλληλα γίνονται και χρήσιμες παρατηρήσεις πάνω στη λειτουργία του και στη λειτουργία το monitor προγράμματος Λειτουργία RESET Με το πάτημα του πλήκτρου «RS» (RESET) το monitor πρόγραμμα επανεκκινεί από την θέση 0000H και εκτελεί όλες τις διαδικασίες αρχικοποίησης των ολοκληρωμένων 8279, 8155, 8251 αρχικοποιεί τον STACK POINTER (40D0H) και αποθηκεύει την κατάσταση των καταχωρητών του με8085 στη μνήμη RAM (40E6H 40F2H). Η διαδικασία αυτή ονομάζεται και COLD START και είναι ισοδύναμη με την εκτέλεση των εντολών JMP 0000H ή RST Λειτουργία WARM START ως break point Η εντολή RST 1 εκτελεί το monitor πρόγραμμα από το σημείο όπου αποθηκεύεται στη RAM η κατάσταση της CPU, η λειτουργία αυτή ονομάζεται και WARM START. Το γεγονός αυτό είναι εκμεταλλεύσιμο στην εκσφαλματώση του υπό ανάπτυξη λογισμικού εφαρμογής. Έτσι η τοποθέτηση μιας εντολής RST 1, στο σημείο του υπό ανάπτυξη κώδικα μπορούμε που επιθυμούμε να εξετάσουμε την κατάσταση της CPU ( break point ), έχει ως αποτέλεσμα την διακοπή της εκτέλεσης του προγράμματος εφαρμογής της αποθήκευση της κατάστασης της CPU, την στιγμή που συνέβη η διακοπή, και εκτέλεση του monitor προγράμματος. 26

27 Χρησιμοποιώντας τις εντολές του monitor μπορεί να απεικονιστούν στο display όλες οι τιμές των καταχωρητών και των θέσεων μνήμης που απαιτούνται προκειμένου να γίνει ο έλεγχος του προγράμματος Τερματισμός προγράμματος Αν το πρόγραμμα που αναπτύσσεται δεν μπαίνει σε κάποια ατέρμονη διαδικασία σκόπιμα θα πρέπει να τερματίζεται οπωσδήποτε. Αλλιώς η εκτέλεση του προγράμματος θα συνεχιστεί σε περιοχή μνήμης όπου το περιεχόμενο της είναι απροσδιόριστο με αποτέλεσμα και η συμπεριφορά του ΜΙΚΡΟΚΙΤ να είναι επίσης απροσδιόριστη. Στην περίπτωση όπου το πρόγραμμα εφαρμογής δεν επηρεάζει τη λειτουργία του monitor ο τερματισμός μπορεί να γίνεται με μια εντολή RST 1. Στην αντίθετη περίπτωση θα πρέπει να γίνεται οπωσδήποτε με μια RST 0 ή JMP 0000H. 27

28 Κεφάλαιο 3 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ 8085 Virtual Kit Virtual Kit Στα πλαίσια αυτού του κεφαλαίου θα παρουσιάσουμε έναν ιδιαίτερα χρήσιμο και φιλικό στη χρήση εξομοιωτή ο οποίος μπορεί να εξομοιώσει πλήρως την λειτουργία του 8085 αλλά και της εργαστηριακής πλακέτας που χρησιμοποιείται στα πλαίσια του μαθήματος. Τα τελευταία χρόνια η εξομοιώση έχει γίνει αναπόσπαστο κομμάτι της σχεδίασης, ανάπτυξης και ελέγχου οποιουδήποτε μικρού ή μεγάλου συστήματος. Όλο και περισσότερο γίνεται κατανοητό ότι οποιασδήποτε κατηγορίας σύστημα (μηχανολογικό, ηλεκτρολογικό, ηλεκτρονικό, τηλεπικοινωνιακό, κατασκευαστικό κ.α.) προτού καν αρχίσει να υλοποιείται θα έχει εξομοιωθεί σε μεγάλη λεπτομέρεια και σε όσο γίνεται μεγαλύτερο φάσμα πιθανόν λειτουργικών περιπτώσεων. Όπως, λοιπόν, είναι σαφές με τον όρο εξομοιωτή αναφερόμαστε σε ένα λογισμικό (πρόγραμμα) το οποίο μπορεί να εκτελεστεί σε έναν υπολογιστή (ανάλογα και με την πολυπλοκότητα του εξομοιούμενου συστήματος ποικίλουν και οι απαιτήσεις από τον συγκεκριμένο υπολογιστή) και να εξομοιώσει κάθε πιθανή λειτουργία του εκάστοτε συστήματος. Ένα τέτοιο πρόγραμμα παρουσιάζεται εδώ και παρέχεται δωρεάν στους φοιτητές του εργαστηρίου. Τα πλεονεκτήματα που παρέχονται στον φοιτητή μέσα από την χρήση του εν λόγω εξομοιωτή είναι πολλά και ιδιαιτέρως σημαντικά. Εξάσκηση στην ανάπτυξη προγράμματος για τον 8085 και στη λειτουργία της εργαστηριακής πλακέτας χρησιμοποιώντας μονό έναν προσωπικό υπολογιστή. Οι απαιτήσεις του εξομοιωτικού προγράμματος είναι ιδιαιτέρως χαμηλές και άρα μπορεί να εκτελεστεί σε σχεδόν κάθε υπολογιστικό σύστημα αρκεί να τρέχει το λειτουργικό σύστημα windows. Πειραματισμός και εύρεση απαντήσεων σε απορίες που δεν διασαφηνίστηκαν πλήρως στην ώρα του εργαστηρίου ή προέκυψαν μετά από αυτό. Προετοιμασία για εξετάσεις είτε σε επίπεδο προόδου είτε τελικές. Προετοιμασία για την επόμενη άσκηση ώστε η ώρα του εργαστηρίου να είναι πιο εποικοδομητική, ουσιαστική και χρήσιμη. Το συγκεκριμένο πρόγραμμα παρέχει ένα ιδιαίτερα φιλικό γραφικό περιβάλλον, όμοιο σχεδόν με την εργαστηριακή πλακέτα που έχετε γνωρίσει και δεν χρειάζεται καν εγκατάσταση. Στις επόμενες γραμμές γίνεται μια συνοπτική παρουσίαση των δυνατοτήτων και των κυριότερων λειτουργιών του εξομοιωτή. Στην παρακάτω εικόνα φαίνεται το γραφικό περιβάλλον του προγράμματος στο οποίο έχουμε δημιουργήσει μια νέα εργασία στα πλαίσια της οποία έχουμε γράψει ένα πολύ απλό πρόγραμμα αποτελούμενο από εντολές που είναι οικίες στον φοιτητή στο σημείο αυτό. Μια νέα εργασία μπορεί να δημιουργηθεί από το μενού File New ή μια ήδη υπάρχουσα να ανοιχθεί από το μενού File Open με διαδικασίες, κοινές σε όλα τα προγράμματα των Windows. 28

29 Η εισαγωγή των εντολών ακολουθεί συγκεκριμένη χρωματική επισήμανση (αν το κείμενο είναι εντολή, αριθμητική ποσότητα, σχόλιο κτλ.), ιδιαίτερα χρήσιμη στον γρήγορο εντοπισμό ορθογραφικών και συντακτικών λαθών. Στο δεξί πάνω μέρος το πρόγραμμα μας εμφανίζει τις τιμές που έχουν ανά πάσα στιγμή οι καταχωρητές (γενικού και ειδικό σκοπού) και τα περιεχόμενα κάθε μιας εκ των 256 διευθύνσεων εισόδου/εξόδου. Ακριβώς από κάτω δίνονται τα πλήκτρα ελέγχουν των λειτουργιών του monitor προγράμματος η λειτουργία των οποίων είναι σχεδόν ολόιδια με το Monitor πρόγραμμα της εργαστηριακής πλακέτας. Ακριβώς από κάτω έχουμε την οθόνης με λειτουργία όπως και στην πλακέτα. Δηλαδή στο αριστερό μέρος φαίνεται η διεύθυνση που έχουμε διαλέξει και στο δεξί το περιεχόμενό της σε δεκαεξαδική μορφή. Τέλος ακριβώς από κάτω βλέπουμε το δεκαεξαδικό πληκτρολόγιο όμοιο με αυτό της πλακέτας το οποίο μας δίνει τη δυνατότητα να επιλέγουμε διευθύνσεις ή/και να τροποποιούμε τα περιεχόμενα τους. Αφού εξοικειωθούμε με τα μέρη του γραφικού περιβάλλοντος και γράψουμε τις εντολές του κώδικά μας το επόμενο βήμα είναι να εκτελέσουμε της βασικές λειτουργίες του εξομοιωτικού προγράμματος, αυτές είναι: Δημιουργία του εκτελέσιμου αρχείου: Ως γνωστό οι εντολές που εισάγουμε πρέπει να μεταφραστούν σε δυαδικό κώδικα που καταλαβαίνουν και μπορούν να εκτελέσουν οι μικροεπεξεργαστές. Η λειτουργία αυτή ενεργοποιείται μέσα από το μενού Tools Assemble. Τα πιθανά λάθη φαίνονται στο κάτω αριστερά λευκό πλαίσιο. Στην συγκεκριμένη περίπτωση μεταφραστήκαν 13 γραμμές και δεν υπήρξαν λάθη ή προειδοποιήσεις. 29

30 Κατέβασμα του εκτελέσιμου στο εικονικό επεξεργαστή και εκτέλεση αυτού: Αφού τελειώσει η μετάφραση χωρίς λάθη μέσα από το μενού Tools Load/Unload OBJ εκτελούμε εικονική μεταφορά του εκτελέσιμου στον επεξεργαστή. Κατόπιν η εκτέλεση γίνεται μέσα από το monitor πρόγραμμα και τα αντίστοιχα πλήκτρα όπως θα γινόταν και στην πραγματική πλακέτα. Φυσικά μετά την εκτέλεση του προγράμματος μπορούμε να εξετάσουμε και να τροποποιήσουμε τα περιεχόμενα της μνήμης όπως θα κάναμε και στην πραγματική πλακέτα του εργαστηρίου. Συγκεκριμένα πρέπει να γίνουν τα ακόλουθα βήματα o Πάτημα του πλήκτρου GO o Εισαγωγή της αρχικής διεύθυνσης του κώδικα, στη συγκεκριμένη περίπτωση 2000 o Πάτημα του πλήκτρου NEXT Εξέταση Παρακολούθηση Λειτουργίας Προγράμματος (Trace Program): Η συγκεκριμένη λειτουργία ενσωματώνει το περιβάλλον εξομοίωσης με τον κώδικα που έχουμε γράψει και έτσι έχουμε τη δυνατότητα να εκτελέσουμε το πρόγραμμα με βάση τις εντολές που έχουμε γράψει στη γλώσσα assembly. Η λειτουργία αυτή ενεργοποιείται μέσα από το μενού Tools Trace Program. Με την ενεργοποίηση της λειτουργίας εμφανίζεται η βοηθητική μπάρα Trace Bar (φαίνεται στην επόμενη εικόνα) η οποία παρέχει (με ανάλογα κουμπιά) τα διαφορετικά είδη εκτέλεσης του προγράμματος σε σχέση με τον κώδικα που έχουμε γράψει. Παράλληλα παρατηρήστε ότι με ειδική σήμανση (μαύρισμα γραμμής) το πρόγραμμα μας δείχνει ανά πάσα στιγμή ποια είναι η επόμενη προς εκτέλεση εντολή. Για παράδειγμα με διαδοχικά πατήματα του αριστερού πλήκτρου το οποίο αντιστοιχεί στη εντολή προς εντολή εκτέλεση του προγράμματος (και η οποία είναι η πιο χρήσιμη λειτουργία στη παρούσα φάση για τον φοιτητή του εργαστηρίου) παρατηρούμε την εκτέλεση κάθε μιας από τις εντολές assembly που έχουμε γράψει και παράλληλα μπορούμε να έχουμε εποπτεία των δεδομένων όλων των διαθέσιμων καταχωρητών. Όταν η λειτουργία απενεργοποιηθεί (πάλι μέσα από το μενού Tools Trace Program) ο χρήστης μπορεί να εξετάσει και να τροποποιήσει τα δεδομένα της μνήμης όπως θα έκανε και στην πραγματική εργαστηριακή πλακέτα. Περισσότερες λεπτομέρειες για τις δυνατότητες και λειτουργίες του συγκεκριμένου εξομοιωτή μπορείτε να βρείτε στη βοήθεια του προγράμματος (μενού HELP) αλλά και μέσα από ερωτήσεις κατά τη διάρκεια των εργαστηρίων. 30

31 Κεφάλαιο 4 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ gnusim gnusim8085 Κατεβάστε σχετικό video χρήσης από την σελίδα του μαθήματος στο eclass 31

32 32

33 33

34 34

35 35

36 Κεφάλαιο 5 ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΑΣΚΗΣΗ 1 Γενικά για τους Μικροϋπολογιστές, Εξοικείωση με το ΚΙΤ, και τα προγράμματα Σε αυτό το εργαστήριο γίνεται μία γνωριμία με τους μικροϋπολογιστές και τα μικροϋπολογιστικά συστήματα, καθώς και με το ΚΙΤ και τα προγράμματα που θα χρησιμοποιηθεί στο εργαστήριο. Γενικά για μικροϋπολογιστικά συστήματα Γνωριμία με ΜικροΚΙΤ Χάρτης μνήμης Διάβασμα γράψιμο μνήμης Διάβασμα γράψιμο καταχωρητών Γνωριμία με το Πρόγραμμα gnusim8085, Κατεβάστε σχετικό video χρήσης από την σελίδα του μαθήματος στο eclass Γνωριμία με το 8085 Virtual Kit Έτοιμο πρόγραμμα τρέξιμο και κατέβασμα 36

37 ΑΣΚΗΣΗ 2 Αποθήκευση σε Μνήμη και Μεταφορά Περιεχομένων Μνήμης Παράδειγμα Χρησιμοποιώντας τον άμεσο τρόπο μεταφοράς δεδομένων από/προς την μνήμη, γράψτε ένα πρόγραμμα για να φορτώσετε άμεσα τον αριθμό 8AH στην θέση μνήμης 2020H. Ύστερα, χρησιμοποιώντας τον τρόπο μεταφοράς δεδομένων από/προς την μνήμη με χρήση των καταχωρητών διεύθυνσης (καταχωρητές H και L), φορτώστε έμμεσα τον αριθμό ΑCH στον καταχωρητή Α και στην συνέχεια να τον μεταφέρετε στην θέση μνήμης 2040H με την χρήση του ζευγαριού καταχωρητών H και L. Στην συνέχεια, με άμεσο τρόπο μεταφοράς δεδομένων από/προς μνήμη, ανταλλάξτε αμοιβαία τα περιεχόμενα των δύο θέσεων μνήμης (2020H και 2040H) δηλαδή ότι είχε η θέση μνήμης 2020 να μεταφερθεί στην θέση μνήμης 2040H και ότι είχε η 2040H να μεταφερθεί στην 2020H. Τρέξτε το πρόγραμμα και διαπιστεύστε την ορθή μεταφορά όλων των δεδομένων (μνήμης και καταχωρητών). ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ Στην συνέχεια δίνεται το διάγραμμα ροής του παραδείγματος ΑΡΧΗ Α {2020Η} Α 8AΗ B A Α {2020Η} A {2040Η} Α ACΗ A { 2020Η} H 20Η Α B A {2040Η} L 40Η End A { M} 37

38 Ο κώδικας στο ΜΙΚΡΟΚΙΤ ;******************************************************************************* ;LABORATORY EXERCISE 2 ;FILE LAB2.ASM ;******************************************************************************* ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) START: ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) MVI A,08ΑH STA 2020H ΜVI A,0ACH MVI H,20H MVI L,40H ;μεταφορά του 8ΑH στον καταχωρητή Α ;αποθήκευση των περιεχομένων του Α στην θέση μνήμης 2020Η ;μεταφορά του ACH στον καταχωρητή Α ;μεταφορά του 20H στον καταχωρητή Η ;μεταφορά του 50H στον καταχωρητή L ;εναλλακτικός τρόπος φόρτωσης σε ζευγάρι καταχωρητών LXI H, 2040H MOV M,A ;αποθήκευση των περιεχομένων του A στην θέση μνήμης ;που ορίζεται από HL LDA 2020H MOV B,A ; αποθήκευση των περιεχομένων της θέσης μνήμης 2020H στον A ;αντιγραφή των περιεχομένων του καταχωρητή Α ;στον καταχωρητή Β για να μην χαθούν από την ;επόμενη εντολη [ΤΑ ΠΕΡΙΕΧΟΜΕΝΑ ΤΟΥ ΚΑΤΑΧΩΡΗΤΗΣ Β ΕΙΝΑΙ ΙΔΙΑ ΜΕ ;ΑΥΤΑ ΤΗΣ ΘΕΣΗΣ ΜΝΗΜΗΣ 2020Η] LDA 2040H ;αποθήκευση των περιεχομένων της θέσης μνήμης 2040H ;στον A [ΤΑ ΠΕΡΙΕΧΟΜΕΝΑ ΤΟΥ ΚΑΤΑΧΩΡΗΤΗ A ΜΕΤΑ ΑΠΟ ΑΥΤΗ ;ΤΗΝ ΕΝΤΟΛΗ ΕΙΝΑΙ ΙΔΙΑ ΜΕ ΑΥΤΑ ΤΗΣ ΘΕΣΗΣ ΜΝΗΜΗΣ 2040Η] STA 2020H MOV A, B STA 2040Η ;αποθήκευση των περιεχομένων του Α στην θέση μνήμης 2020H ;αντιγραφή των περιεχομένων του καταχωρητή Β στον καταχωρητή A ;αποθήκευση των περιεχομένων του Α στην θέση μνήμης 2040H RST 1 38

39 END ;δήλωση τέλους εντολών προγράμματος (ψευδοεντολή) ;******************************************************************************* Ο κώδικας στο gnusim8085 ;******************************************************************************* ;LABORATORY EXERCISE 2 ;FILE LAB2.ASM ;******************************************************************************* MVI A,8AH STA 2020H MVI A,0ACH MVI H,20H MVI L,40H ;μεταφορά του 8ΑH στον καταχωρητή Α ;αποθήκευση των περιεχομένων του Α στην θέση μνήμης 2020Η ;μεταφορά του ACH στον καταχωρητή Α ;μεταφορά του 20H στον καταχωρητή Η ;μεταφορά του 40H στον καταχωρητή L ;εναλλακτικός τρόπος φόρτωσης σε ζευγάρι καταχωρητών LXI H, 2040H MOV M,A ;αποθήκευση των περιεχομένων του A στην θέση μνήμης ;που ορίζεται από HL LDA 2020H MOV B,A ; αποθήκευση των περιεχομένων της θέσης μνήμης 2020H στον A ;αντιγραφή των περιεχομένων του καταχωρητή Α ;στον καταχωρητή Β για να μην χαθούν από την ;επόμενη εντολη [ΤΑ ΠΕΡΙΕΧΟΜΕΝΑ ΤΟΥ ΚΑΤΑΧΩΡΗΤΗΣ Β ΕΙΝΑΙ ΙΔΙΑ ΜΕ ;ΑΥΤΑ ΤΗΣ ΘΕΣΗΣ ΜΝΗΜΗΣ 2020Η] LDA 2040H ;αποθήκευση των περιεχομένων της θέσης μνήμης 2040H ;στον A [ΤΑ ΠΕΡΙΕΧΟΜΕΝΑ ΤΟΥ ΚΑΤΑΧΩΡΗΤΗ A ΜΕΤΑ ΑΠΟ ΑΥΤΗ ;ΤΗΝ ΕΝΤΟΛΗ ΕΙΝΑΙ ΙΔΙΑ ΜΕ ΑΥΤΑ ΤΗΣ ΘΕΣΗΣ ΜΝΗΜΗΣ 2040Η] STA 2020H MOV A,B STA 2040H ;αποθήκευση των περιεχομένων του Α στην θέση μνήμης 2020H ;αντιγραφή των περιεχομένων του καταχωρητή Β στον καταχωρητή A ;αποθήκευση των περιεχομένων του Α στην θέση μνήμης 2040H HLT 39

40 ΑΣΚΗΣΗ 3 Αριθμητικές πράξεις (Πρόσθεση δεκαεξαδικών 8 bit (διψήφιων) 16 bit (τετραψήφιων) αριθμών) και λογικές πράξεις ΟΝΟΜΑΣΙΑ AND A B ΣΥΜΒΟΛΟ ΠΥΛΗΣ Z ΣΧΕΣΗ ΑΛΓΕΒΡΑΣ BOOLE Z=A B ΠΙΝΑΚΑΣ ΑΛΗΘΕΙΑΣ A B Z OR A B Z Z=A+B A B Z XOR A B Z Z=A + B A B Z NOT A Z Z=A = A A 0 1 Z 1 0 Η σημασία των bits του καταχωρητή F (FLAGS) είναι η εξής: 40

41 Παράδειγμα Παράδειγμα 1 Πρόσθεση 8bit αριθμών και λογικές πράξεις Γράψτε ένα πρόγραμμα για να προσθέσετε άμεσα τους αριθμούς 3AH & 08H. Τοποθετήστε το άθροισμά τους στην θέση μνήμης 2030H. Στην συνέχεια, πραγματοποιήστε λογική πράξη XOR του αποτελέσματος της πρόσθεσης με τον αριθμό 4FΗ και αποθηκευστε το αποτέλεσμα στον C. Τέλος, η τιμή του C να γίνει λογική πράξη OR με το περιεχόμενο της θέσης μνήμης 2031Η. Το τελικό αποτέλεσμα να είναι αποθηκευμένο στον καταχωρητή Α. Θεωρήστε ότι τα περιεχόμενα της 2031Η δίνονται από το χρήστη μέσω του μικροκιτ και είναι γνωστά. Υπολογίστε το άθροισμα μόνοι σας και επιβεβαιώστε την σωστή λειτουργία του προγράμματος. ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ Στην συνέχεια δίνεται το διάγραμμα ροής του παραδείγματος 41

42 Ο κώδικας στο ΜΙΚΡΟΚΙΤ ;******************************************************************************* ;LABORATORY EXERCISE 3Α ;FILE LAB3Α.ASM ;******************************************************************************* ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) START: MVI A,03AH MVI B,08H ADD B STA 2030H LDA 2030H ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) ;μεταφορά του 3AH στον καταχωρητή Α ;μεταφορά του 08H στον καταχωρητή B ;A = A + B ;αποθήκευση του αποτελέσματος στην θέση μνήμης 2030H ;μεταφορά στον καταχωρητή Α του περιεχομένου της θέσης μνήμης 2030H ;[H παραπάνω εντολή δεν είναι απαραίτητη. Γιατι;] XRI 4FH ;Λογική πράξη XOR του περιεχομένου του Α ;με τον αριθμό 4F και αποθήκευση στον Α MOV C,A LDA 2031H ORA C ;αντιγραφή των περιεχομένων του Α στον C ;μεταφορά στον καταχωρητή Α του περιεχομένου της θέσης μνήμης 2031H ;πράξη OR του περιεχομένου του Α με τα περιεχόμενα ;του καταχωρητή C και αποθήκευση στον Α RST 1 END ;δήλωση τέλους εντολών προγράμματος (ψευδοεντολή) ;******************************************************************************* Ο κώδικας στο gnusim8085 ;******************************************************************************* ;LABORATORY EXERCISE 3Α 42

43 ;FILE LAB3Α.ASM ;******************************************************************************* MVI A,3AH MVI B,08H ADD B STA 2030H LDA 2030H ;μεταφορά του 3AH στον καταχωρητή Α ;μεταφορά του 08H στον καταχωρητή B ;A = A + B ;αποθήκευση του αποτελέσματος στην θέση μνήμης 2030H ;μεταφορά στον καταχωρητή Α του περιεχομένου της θέσης μνήμης 2030H ;[H παραπάνω εντολή δεν είναι απαραίτητη. Γιατι;] XRI 4FH ;Λογική πράξη XOR του περιεχομένου του Α ;με τον αριθμό 4F και αποθήκευση στον Α MOV C,A LDA 2031H ORA C ;αντιγραφή των περιεχομένων του Α στον C ;μεταφορά στον καταχωρητή Α του περιεχομένου της θέσης μνήμης 2031H ;πράξη OR του περιεχομένου του Α με τα περιεχόμενα του καταχωρητή C και αποθήκευση στον Α HLT Παράδειγμα 2 Πρόσθεση 16bit αριθμών και αφαίρεση Γράψτε ένα πρόγραμμα για να αποθηκεύσετε τον 16 bit αριθμό F1Α2H στις θέσεις μνήμης 2030H, 2031H. Στη συνέχεια να προσθέσετε στον αριθμό που αποθηκεύσετε τον 16 bit αριθμό 1284H και τοποθετήστε το αποτέλεσμα στις θέσεις μνήμης 2040H, 2041H. Τέλος, από το περιεχόμενο της θέσης μνήμης 2040Η να αφαιρέσετε τον αριθμό 01Η και να αποθηκευσετε το αποτέλεσμα στη θέση μνήμης 2042Η. Υπολογίστε τα αποτελέσματα μόνοι σας και δείτε στον flag register αν δημιουργήθηκε κρατούμενο δανεικό. Αιτιολογείστε την απάντηση σας. 43

44 ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ Στην συνέχεια δίνεται το διάγραμμα ροής του παραδείγματος 44

45 Ο κώδικας στο ΜΙΚΡΟΚΙΤ ;******************************************************************************* ;LABORATORY EXERCISE 3Β ;FILE LAB3Β.ASM ;******************************************************************************* ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) START: LXI H,2030H MVI A,0A2H MOV M,A LXI H,2031H MVI A,0F1H MOV M, A ADI 00H ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) ;ορισμός του M (HL) ως δείκτης στην 2030H ;μεταφορά του A2H στον καταχωρητή Α ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H L ;ορισμός του M (HL) ως δείκτης στην 2031H ;μεταφορά του F1H στον καταχωρητή Α ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H L ;μηδενισμός του flag carry (η άμεση πρόσθεση με το 00Η ;μηδενίζει το Carry), Γιατί δεν είναι απαραίτητη να μπει????? LDA 2030H MVI B,84H ADD B ;μεταφορά στον καταχωρητή Α του περιεχομένου της θέσης μνήμης 2030H ;μεταφορά του 84H στον καταχωρητή B ;προσθεση των περιεχομένων του Α και του Β και ;αποθήκευση του αποτελέσματος στο Α ; (A = A + B) STA 2040H LDA 2031H MVI B,12H ADC B STA 2041H LDA 2040H SUI 01H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2040H ;μεταφορά στον καταχωρητή Α του περιεχομένου της θέσης μνήμης 2031H ;μεταφορά του 12H στον καταχωρητή B ;A = A + B + Carry ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2041H ;μεταφορά στον καταχωρητή Α του περιεχομένου της θέσης μνήμης 2040 Η ;αφαιρεση από τον Α του αριθμού 3ΑΗ και αποθήκευση του ;αποτελέσματος στον Α (Α=Α 01Η) STA 2042H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2042H 45

46 RST 1 END ;δήλωση τέλους εντολών προγράμματος (ψευδοεντολή) ;******************************************************************************* Ο κώδικας στο gnusim8085 ;******************************************************************************* ;LABORATORY EXERCISE 3Β ;FILE LAB3Β.ASM ;******************************************************************************* LXI H,2030H MVI A,0A2H MOV M,A LXI H,2031H MVI A,0F1H MOV M,A ADI 00H ;ορισμός του M (HL) ως δείκτης στην 2030H ;μεταφορά του A2H στον καταχωρητή Α ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H L ;ορισμός του M (HL) ως δείκτης στην 2031H ;μεταφορά του F1H στον καταχωρητή Α ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H L ;μηδενισμός του flag carry (η άμεση πρόσθεση με το 00Η ;μηδενίζει το Carry), Γιατί δεν είναι απαραίτητη να μπει????? LDA 2030H MVI B,84H ADD B ;μεταφορά στον καταχωρητή Α του περιεχομένου της θέσης μνήμης 2030H ;μεταφορά του 84H στον καταχωρητή B ;προσθεση των περιεχομένων του Α και του Β και ;αποθήκευση του αποτελέσματος στο Α (A = A + B) STA 2040H LDA 2031H MVI B,12H ADC B STA 2041H LDA 2040H SUI 01H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2040H ;μεταφορά στον καταχωρητή Α του περιεχομένου της θέσης μνήμης 2031H ;μεταφορά του 12H στον καταχωρητή B ;A = A + B + C ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2041H ;μεταφορά στον καταχωρητή Α του περιεχομένου της θέσης μνήμης 2040Η ;αφαιρεση από τον Α του αριθμού 3ΑΗ και αποθήκευση του 46

47 ;αποτελέσματος στον Α (Α=Α 3ΑΗ) STA 2042H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2042H HLT 47

48 ΑΣΚΗΣΗ 4 Βρόχοι Εντολές INC/DEC & CMP/CPI, JMP/JNZ/JZ/JNC/JC Διαγράμματα Ροής Οι τρόποι σύγκρισης δύο αριθμητικών ποσοτήτων και οι διακλαδώσεις ή βρόγχοι που, συνήθως, εκτελούνται ανάλογα με το αποτέλεσμα της σύγκρισης αποτελούν σημαντικό κομμάτι των υποστηριζόμενων προγραμματιστικών τεχνικών και πολλές φορές προκαλούν σύγχυση μέχρι να κατανοηθούν πλήρως. Δύο βασικά χαρακτηριστικά που διέπουν όλες τις εντολές συγκρίσεις είναι ότι 1) το πρώτο όρισμα είναι πάντα ο accumulator και 2) η σύγκριση είναι ουσιαστικά μια αφαίρεση του δεύτερου ορίσματος από το πρώτο (που πάντα είναι ο accumulator) το αποτέλεσμα της οποίας ΔΕΝ αποθηκεύεται πουθενά. Αυτές οι εντολές συνοπτικά είναι (για περισσότερες λεπτομέρειες μπορείτε να ανατρέξετε στο Instruction Set παρατίθεται στο τέλος του φυλλαδίου): που CMP R: Το περιεχόμενο του καταχωρητή R συγκρίνεται με αυτό του A με το να αφαιρείται από τον A. CMP M: Το περιεχόμενο της θέσης μνήμης M συγκρίνεται με αυτό του A με το να αφαιρείται από τον A. CPI byte: Η απόλυτη αριθμητική ποσότητα byte συγκρίνεται με το περιεχόμενο του A με το να αφαιρείται από τον A. Έστω ότι συγκρίνουμε το περιεχόμενο του A με αυτού του B μέσω της εντολής CMP B, ισχύουν τα εξής. Αποτέλεσμα Σύγκρισης Τιμή του bit ZERO Τιμή του bit CARRY A=B Z=1 CY=0 A<B Z=0 CY=1 A>B Z=0 CY=0 48

49 ,ΠΑΡΑΔΕΙΓΜΑ Γράψτε ένα πρόγραμμα στο οποίο θα γίνεται μεταφορά των περιεχομένου των θέσεων μνήμης από 2370Η εώς και 237CΗ στις θέσεις από 2470Η έως και 247CΗ. Επιβεβαιώστε την εγγραφή στις συγκεκριμένες θέσεις μνήμης. Υπόδειξη: Αρχικά να γίνει διάγραμμα ροής. Να χρησιμοποιήστε ως μετρητή τον καταχωρητή A. Διάγραμμα Ροής 49

50 Ο κώδικας στο ΜΙΚΡΟΚΙΤ ;******************************************************************************* ;LABORATORY EXERCISE 4 ;FILE LAB4.ASM ;******************************************************************************* ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) START: LXI H,2370H LXI D,2470H MVI A,00H TEST1: MOV B,M ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) ;οι ΗL δείχνουν στην διεύθυνση μνήμης 2370Η ;οι DE δείχνουν στην διεύθυνση μνήμης 2470Η ;Αρχικοποίηση του A στο 0 για χρήση του ως μετρητή. ;ετικέτα αρχής βρόχου ;μεταφορά του περιεχομένου μνήμης που δείχνουν οι HL στον B XCHG MOV M,B XCHG INX H INX D INR A CPI 0DH JNZ TEST1 ;μεταφορά περιεχομένου B στη διεύθυνση μνήμης που δείχνουν οι HL. ;ανταλλαγή των H και L με D και E ;αύξηση του ζεύγους καταχωρητών HL. ;αύξηση του ζεύγους καταχωρητών DE. ;αύξηση του μετρητή ;σύγκριση μετρητή (Α) με το πλήθος των επαναλήψεων ;τέλος βρόχου RST 1 END ;δήλωση τέλους εντολών προγράμματος (ψευδοεντολή) ;******************************************************************************* Ο κώδικας στο gnusim8085 ;******************************************************************************* ;LABORATORY EXERCISE 4 50

51 ;FILE LAB4.ASM ;******************************************************************************* LXI H,2370H LXI D,2470H MVI A,00H ;οι ΗL δείχνουν στην διεύθυνση μνήμης 2370Η ;οι DE δείχνουν στην διεύθυνση μνήμης 2470Η ;Αρχικοποίηση του A στο 0 για χρήση του ως μετρητή. TEST1: MOV B,M ;μεταφορά του περιεχομένου μνήμης που δείχνουν οι HL στον B XCHG MOV M,B XCHG INX H INX D INR A CPI 0DH JNZ TEST1 ;μεταφορά περιεχομένου B στη διεύθυνση μνήμης που δείχνουν οι HL. ;ανταλλαγή των H και L με D και E ;αύξηση του ζεύγους καταχωρητών HL. ;αύξηση του ζεύγους καταχωρητών DE. ;αύξηση του μετρητή ;σύγκριση μετρητή (Α) με το πλήθος των επαναλήψεων ;τέλος βρόχου HLT 51

52 ΑΣΚΗΣΗ 5 Συγκρίσεις, Διακλαδώσεις & Βρόχοι Διαγράμματα Ροής Οι τρόποι σύγκρισης δύο αριθμητικών ποσοτήτων και οι διακλαδώσεις ή βρόγχοι που, συνήθως, εκτελούνται ανάλογα με το αποτέλεσμα της σύγκρισης αποτελούν σημαντικό κομμάτι των υποστηριζόμενων προγραμματιστικών τεχνικών και πολλές φορές προκαλούν σύγχυση μέχρι να κατανοηθούν πλήρως. Έτσι λοιπόν το πρώτο βήμα είναι να κατανοήσουμε τους τρόπους (εντολές με άλλα λόγια) με τους οποίους μπορούμε να συγκρίνουμε δύο ποσότητες. Δύο βασικά χαρακτηριστικά που διέπουν όλες τις εντολές συγκρίσεις είναι ότι 1) το πρώτο όρισμα είναι πάντα ο accumulator και 2) η σύγκριση είναι ουσιαστικά μια αφαίρεση του δεύτερου ορίσματος από το πρώτο (που πάντα είναι ο accumulator) το αποτέλεσμα της οποίας ΔΕΝ αποθηκεύεται πουθενά. Αυτές οι εντολές συνοπτικά είναι (για περισσότερες λεπτομέρειες μπορείτε να ανατρέξετε στο Instruction Set παρατίθεται στο τέλος του φυλλαδίου): που CMP r: Το περιεχόμενο του καταχωρητή r συγκρίνεται με αυτό του A με το να αφαιρείται από τον A. CMP M: Το περιεχόμενο της θέσης μνήμης M συγκρίνεται με αυτό του A με το να αφαιρείται από τον A. CPI byte: Η απόλυτη αριθμητική ποσότητα byte συγκρίνεται με το περιεχόμενο του A με το να αφαιρείται από τον A. Το δεύτερο βήμα είναι να κατανοήσουμε πως ή που αποτυπώνεται το αποτέλεσμα της σύγκρισης (ουσιαστικά της αφαίρεσης) αφού το αποτέλεσμα αυτό καθαυτό δεν φυλάσσεται πουθενά. Η απάντηση είναι ότι κάθε πιθανό αποτέλεσμα αποτυπώνεται και μπορεί να εξαχθεί από συνδυαστική εξέταση των σημαιών Z και CY σύμφωνα με της εξής λογική. Έστω ότι συγκρίνουμε το περιεχόμενο του A με αυτού του B μέσω της εντολής CMP B, ισχύουν τα εξής. Αποτέλεσμα Σύγκρισης Τιμή του bit ZERO Τιμή του bit CARRY A=B Z=1 CY=0 A<B Z=0 CY=1 A>B Z=0 CY=0 52

53 Το τρίτο βήμα είναι πως μπορούμε να χρησιμοποιήσουμε τα ZERO και CARRY bit για να διακλαδωθεί η εκτέλεση του προγράμματος ανάλογα με το αποτέλεσμα της σύγκρισης. Η απάντηση είναι μέσω των εντολών JMP που λαμβάνουν υπόψη τη τιμή των Z και CY bit. Αυτές είναι: JNZ: θα εκτελέσει την εντολή JMP αν από την προηγούμενη σύγκριση το Z=0 JZ: θα εκτελέσει την εντολή JMP αν από την προηγούμενη σύγκριση το Z=1 JNC: θα εκτελέσει την εντολή JMP αν από την προηγούμενη σύγκριση το CY=0 JC: θα εκτελέσει την εντολή JMP αν από την προηγούμενη σύγκριση το CY=1 Έχοντας κατανοήσει τα παραπάνω βήματα μπορούμε να αντιμετωπίσουμε κάθε πρόβλημα που απαιτεί τη χρήση σύγκρισης και διακλάδωσης. Ένα τέτοιο παράδειγμα ακολουθεί παρακάτω. Παράδειγμα Να γραφεί πρόγραμμα το οποίο αρχικά να αποθηκεύει δύο τυχαίους αριθμούς στις θέσεις μνήμης 2320Η και 2321Η. Στην συνέχεια να τοποθετεί τον μεγαλύτερο στην θέση μνήμης 2322Η και τον μικρότερο στην 2323Η. Στην περίπτωση όμως που είναι ίσοι οι δύο αριθμοί, να το τοποθετεί το 33Η στην θέση μνήμης 2322Η και στη θέση μνήμης 2323Η τον αριθμό. Τρέξτε το πρόγραμμα δύο φορές, μια με άνισους αριθμούς για να επιβεβαιώσετε την εύρεση του μέγιστου / ελάχιστου και μια με ίσους για να επιβεβαιώσετε την λειτουργία του στην ισότητα. Υπόδειξη: Να γράψετε το διάγραμμα ροής. 53

54 Διάγραμμα Ροής Ο κώδικας στο ΜΙΚΡΟΚΙΤ ;******************************************************************************* ;LABORATORY EXERCISE 5 ;FILE LAB5.ASM ;******************************************************************************* ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) START: LDA 2320H ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) ;μεταφορά του περιεχομένου της μνήμης 2320Η στον Α 54

55 LXI H,2321H CMP M JZ LABEL1 JC LABEL2 STA 2322H MOV A,M STA 2323Η ;άμεση φόρτωση του 2321Η στον Η,L ;Σύγκρισή του Α με ότι περιέχει η μνήμη που δείχνει ο Η,L ;σε ισότητα το Zero flag γίνετε 1. Μεταφορά στην LABEL1 ;διακλάδωση στην LABEL2 όταν ο αριθμός στην 2321H είναι μεγαλύτερος ;αποθήκευση του Α στην διεύθυνση μνήμης 2322Η ;μεταφορά δεδομένου από την [Η,L] μνήμη στον Α ;αποθήκευση του Α στην διεύθυνση μνήμης 2323Η JMP LABEL_END ;διακλάδωση στο LABELEND LABEL1: STA 2323H MVI A,33H STA 2322H JMP LABELEND LABEL2: STA 2323H MOV A,M STA 2322H ;εκτελείται όταν οι δύο αριθμοί είναι ίσοι ;αποθήκευση του Α στην διεύθυνση μνήμης 2323Η ;Φόρτωμα του Α με 33Η τιμή ;αποθήκευση του Α στην διεύθυνση μνήμης 2322Η ;διακλάδωση στο LABEL_END ;εκτελείται όταν ο αριθμός στην 2321Η είναι μεγαλύτερος ;αποθήκευση του Α στην διεύθυνση μνήμης 2323Η ;μεταφορά δεδομένου από την [Η,L] μνήμη στον Α ;αποθήκευση του Α στην διεύθυνση μνήμης 2322Η LABELEND: ; RST 1 END ;δήλωση τέλους εντολών προγράμματος (ψευδοεντολή) ;******************************************************************************* Ο κώδικας στο gnusim8085 ;******************************************************************************* ;LABORATORY EXERCISE 5 ;FILE LAB5.ASM ;******************************************************************************* LDA 2320H LXI H,2321H ;άμεση φόρτωση του 2321Η στον Η,L 55

56 CMP M JZ LABEL1 JC LABEL2 STA 2322H MOV A,M STA 2323H JMP LABELEND LABEL1: STA 2323H MVI A,33H STA 2322H JMP LABELEND LABEL2: STA 2323H MOV A,M STA 2322H ;Σύγκρισή του Α με ότι περιέχει η μνήμη που δείχνει ο Η,L ;σε ισότητα το Zero flag γίνετε 1. Μεταφορά στην LABEL1 ;διακλάδωση στην LABEL2 όταν ο αριθμός στην 2321H είναι μεγαλύτερος ;αποθήκευση του Α στην διεύθυνση μνήμης 2322Η ;μεταφορά δεδομένου από την [Η,L] μνήμη στον Α ;αποθήκευση του Α στην διεύθυνση μνήμης 2323Η ;διακλάδωση στο LABEL_END ;αποθήκευση του Α στην διεύθυνση μνήμης 2323Η ;Φόρτωμα του Α με 33Η τιμή ;αποθήκευση του Α στην διεύθυνση μνήμης 2322Η ;διακλάδωση στο LABELEND ;αποθήκευση του Α στην διεύθυνση μνήμης 2323Η ;μεταφορά δεδομένου από την [Η,L] μνήμη στον Α ;αποθήκευση του Α στην διεύθυνση μνήμης 2322Η LABELEND: HLT 56

57 ΑΣΚΗΣΗ 6 Αριθμητικές Πράξεις Πολλαπλασιασμός Πολλοί 8 bit ή RISC μικροεπεξεργαστές και μικροελεγκτές, όπως και ο 8085, δεν περιλαμβάνουν στο σετ εντολών τους πολύπλοκές αριθμητικές πράξεις, όπως ο πολλαπλασιασμός και η διαίρεση. Σε αυτήν την άσκηση θα δείξουμε έναν από τους τρόπους με τους οποίους μπορούμε να εκτελέσουμε αυτές τις πράξεις μεταξύ 8 bit δυαδικών αριθμών. Η Πράξη του Πολλαπλασιασμού μέσω Διαδοχικών Προσθέσεων Η πράξη του πολλαπλασιασμού δεν είναι τίποτα άλλο από την διαδοχική πρόσθεση του πολλαπλασιαστέου τόσες φορές όσες είναι η τιμή του πολλαπλασιαστή. Για χάριν απλότητας θα θεωρήσουμε ότι πρόκειται για θετικούς (απρόσημους) αριθμούς και θα θεωρήσουμε ότι το αποτέλεσμα του πολλαπλασιασμού (γινόμενο) μπορεί να αποθηκευτεί σε πεδίο 8 bits. Διάγραμμα Ροής Το παρακάτω διάγραμμα ροής δείχνει την διαδικασία της πράξης του πολλαπλασιασμού δύο 8 bits αριθμών. Οι αριθμοί που θέλουμε να πολλαπλασιάσουμε είναι οι 23H και 06H, ενώ το αποτέλεσμα του πολλαπλασιασμού αποθηκεύεται στην θέση μνήμης 2300H. 57

58 Στην συνέχεια δίνεται ο κώδικας που υλοποιεί την πράξη του πολλαπλασιασμού. Ο κώδικας στο ΜΙΚΡΟΚΙΤ ;**************************************************************** ;LABORATORY EXERCISE 6 ;FILE LAB6.ASM ;**************************************************************** ORG 2000H ;διεύθυνση της πρώτης εντολής START: ;δήλωση αρχής εντολών προγράμματος MVI A,23H MOV B,A MVI C,06H DCR C LABEL: ADD B DCR C JNZ LABEL STA 2300H RST 1 END ;Φόρτωσε στον Α τον πολλαπλασιαστέο ;Μετέφερε τον στον Β ;Φόρτωσε στον C τον πολλαπλασιαστή ;μείωση του μετρητή ;ετικέτα αρχής βρόχου ;εκτέλεση της διαδοχικής πρόσθεσης ;μείωση του μετρητή ;τέλος βρόχου ;Μετέφερε το αποτέλεσμα την θέση μνήμης 2300H ;Επιστροφή στον monitor πρόγραμμα ;δήλωση τέλους εντολών προγράμματος ;**************************************************************** Ο κώδικας στο gnusim8085 ;**************************************************************** ;LABORATORY EXERCISE 6 ;FILE LAB6.ASM ;**************************************************************** 58

59 MVI A,23H MOV B,A MVI C,06H DCR C LABEL: ADD B DCR C JNZ LABEL STA 2300H ;Φόρτωσε στον Α τον πολλαπλασιαστέο ;Μετέφερε τον στον Β ;Φόρτωσε στον C τον πολλαπλασιαστή ;μείωση του μετρητή ;εκτέλεση της διαδοχικής πρόσθεσης ;μείωση του μετρητή ;τέλος βρόχου ;Μετέφερε το αποτέλεσμα την θέση μνήμης 2300H HLT Άλλος τρόπος επίλυσης της άσκησης MVI A,23H MOV B,A ;Φόρτωσε στον Α τον πολλαπλασιαστέο ;Μετέφερε τον στον Β MVI C,00H LABEL: ADD B ;εκτέλεση της διαδοχικής πρόσθεσης MOV D, A INR C ;αύξηση του μετρητή MOV A,C CPI 05H MOV A,D JNZ LABEL STA 2300H ;τέλος βρόχου ;Μετέφερε το αποτέλεσμα την θέση μνήμης 2300H HLT 59

60 ΑΣΚΗΣΗ 7 Στοίβα και Εύρεση Μέγιστου Στοίβα Στην εικόνα που ακολουθεί βλέπετε το λογικό διάγραμμα της οργάνωσης της μνήμης σχεδόν όλων των υπολογιστικών συστημάτων. Εκτός από τα τμήματα του κώδικα και των δεδομένων υπάρχει και το τμήμα της στοίβας (stack). Η στοίβα επομένως δεν είναι τίποτα άλλο από ένα κομμάτι στην κύρια μνήμη (τύπου RAM) το οποίο όμως λειτουργεί με ένα ξεχωριστό τρόπο. Η στοίβα λειτουργεί με την αρχή LIFO (Last In First Out) και είναι ένα κομμάτι μνήμης που έχει μόνο ένα σημείο εισόδου/εξόδου. Οργάνωση της μνήμης ενός υπολογιστικού συστήματος Στο επεξεργαστή 8085 ο stack λειτουργεί με ζευγάρια καταχωρητών (με άλλα λόγια ο stack στον 8085 είναι 16 bits). Οι δύο βασικές εντολές χειρισμού του stack στον 8085 είναι: PUSH rp: το περιεχόμενο του ζεύγους καταχωρητών rp μεταφέρεται στην στοίβα. POP rp: το περιεχόμενο των κορυφαίων θέσεων της στοίβας αποθηκεύεται στο ζεύγος καταχωρητών rp. Σημείωση: rp (register pair ή ζευγάρι καταχωρητών) είναι ένα από τα ζευγάρια των καταχωρητών BC, DE, HL (τα ζευγάρια καταχωρητών σηματοδοτούνται πάντα από το όνομα του πρώτου καταχωρητή του ζευγαριού, δηλαδή B, D και H αντίστοιχα). Επίσης, αν το όρισμα της εντολής είναι το PSW (Processor Status Word) αναφερόμαστε στον καταχωρητή Α (accumulator) μαζί με καταχωρητή F (flag register). 60

61 Σχεδιάζουμε το διάγραμμα ροής του προγράμματος: 61

62 ΑΡΧΗ M(H,L) 2100Η M M+1 B 00Η A B A {2100Η} A {2150Η} A>=M A?M Α<Μ A,F stack B,C stack A M H,L stack A { 2150Η} Δείξε το στο Dipslay A,F stack H,L stack B,C stack Β,C stack A,F stack H,L stack M M+1 A B Δείξε το στο Dipslay B=0F? ΝΑΙ ΤΕΛΟΣ H,L stack ΟΧΙ B B+1 B,C stack A>=M A {2150Η} A?M A,F stack 62

63 Ο κώδικας στο ΜΙΚΡΟΚΙΤ ;******************************************************************************* ;LABORATORY EXERCISE 7 ;FILE LAB7.ASM ;******************************************************************************* ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) UPDDT EQU 039DH START: LXI H,2100H MVI B,00H LDA 2100H STA 2150H ;υπορουτίνα εμφάνισης στο Data Field ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) ;φόρτωσε την 2100Η σαν διεύθυνση στην Μ ;φόρτωσε στον Β το 00Η ;φόρτωσε στον Α το περιεχόμενο της 2100Η ;αποθήκευσε στην 2150Η το περιεχόμενο του Α PUSH PSW PUSH B PUSH H CALL UPDDT ;Εμφάνισε τον στο D.F. POP H POP B POP PSW LOOP1: INX H MOV A,B CPI 0FH JZ LOOP3 ;Αύξησε το ζεύγος καταχωρητών H,L (M) ;μετέφερε το περιεχόμενο του Β στον Α ;σύγκρινε το περιεχόμενο του Α με το FFH ;εάν το περιεχόμενο του Α είναι ίσο με το 0FH, πήγαινε στο LOOP3 INR B ;αλλιώς αύξησε το περιεχόμενο του καταχωρητή Β κατά 1 LDA 2150H CMP M JC LOOP2 ;φόρτωσε στον Α το περιεχόμενο της 2150Η ;σύγκρινε το περιεχόμενο του Μ με το περιεχόμενο του Α ;εάν το Μ > Α πήγαινε στο LOOP2, να τον βάλεις στην 2150Η 63

64 JMP LOOP1 ;αλλιώς πήγαινε στο LOOP1 LOOP2: MOV A,M STA 2150H ;μετέφερε το περιεχόμενο της μνήμης Μ στον Α ;αποθήκευσε στην 2150Η το περιεχόμενο του Α PUSH PSW PUSH B PUSH H CALL UPDDT ;Εμφάνισε τον στο D.F. POP H POP B POP PSW JMP LOOP1 ;πήγαινε στο LOOP1 LOOP3: RST 1 END ;Τέλος προγράμματος ;******************************************************************************* Ο κώδικας στο gnusim8085 Η υπορουτίνα DISPLAY εμφανίζει το περιεχόμενο του Καταχωρητή Α στο data field του display. Προσοχή, η συγκεκριμένη υπορουτίνα καταστρέφει όλους τους καταχωρητές, συμπεριλαμβανομένου και του καταχωρητή σημαιών. Δηλώστε την μόνο με το όνομα της και μόνο με την εντολή RET (DISPLAY: RET). ;******************************************************************************* ;LABORATORY EXERCISE 7 ;FILE LAB7.ASM ;******************************************************************************* LXI H,2100H MVI B,00H LDA 2100H STA 2150H ;φόρτωσε την 2100Η σαν διεύθυνση στην Μ ;φόρτωσε στον Β το 00Η ;φόρτωσε στον Α το περιεχόμενο της 2100Η ;αποθήκευσε στην 2150Η το περιεχόμενο του Α 64

65 PUSH PSW PUSH B PUSH H CALL DISPLAY ;εμφάνισε τον Α στο Display POP H POP B POP PSW LOOP1: INX H MOV A,B CPI 0FH JZ LOOP3 ;Αύξησε το ζεύγος καταχωρητών H,L (M) ;μετέφερε το περιεχόμενο του Β στον Α ;σύγκρινε το περιεχόμενο του Α με το 0FH ;εάν το περιεχόμενο του Α είναι ίσο με το 0FH, πήγαινε στο LOOP3 INR B ;αλλιώς αύξησε το περιεχόμενο του καταχωρητή Β κατά 1 LDA 2150H CMP M JC LOOP2 JMP LOOP1 LOOP2: MOV A,M STA 2150H ;φόρτωσε στον Α το περιεχόμενο της 2150Η ;σύγκρινε το περιεχόμενο του Μ με το περιεχόμενο του Α ;εάν το Μ > Α πήγαινε στο LOOP2, να τον βάλεις στην 2150Η ;αλλιώς πήγαινε στο LOOP1 ;μετέφερε το περιεχόμενο της μνήμης Μ στον Α ;αποθήκευσε στην 2150Η το περιεχόμενο του Α PUSH PSW PUSH B PUSH H CALL DISPLAY ;εμφάνισε τον Α στο Display POP H POP B POP PSW JMP LOOP1 ;πήγαινε στο LOOP1 DISPLAY: RET LOOP3: HLT ;Τέλος προγράμματος 65

66 ΑΣΚΗΣΗ 8 Στοίβα και Υπορουτίνες Στόχος της Άσκησης Οι στοίβα και οι υπορουτίνες αποτελούν τα δύο πρωταρχικά και βασικά στοιχεία για την συγγραφή δομημένου κώδικα. Ο δομημένος ή αλλιώς τμηματικός προγραμματισμός αναφέρεται στην τεχνική σχεδίασης και ανάπτυξης προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων. Η τεχνική του δομημένου προγραμματισμού μας εξασφαλίζει σε μεγάλο βαθμό την επιτυχή και εύκολη δημιουργία σωστών προγραμμάτων. Πιο συγκεκριμένα τα πλεονεκτήματα του δομημένου προγραμματισμού είναι: Διευκολύνει την ανάπτυξη του προγράμματος. Ένα σύνθετο πρόβλημα μπορεί να αναλυθεί στα επιμέρους απλούστερα υποπροβλήματα που το απαρτίζουν. Έτσι, η σταδιακή επίλυση των υποπροβλημάτων αυτών και η δημιουργία των αντίστοιχων υποπρογραμμάτων επιτρέπει την εξέταση και την επίλυση απλών προβλημάτων και όχι την απευθείας αντιμετώπιση του συνολικού προβλήματος. Διευκολύνει την κατανόηση και τη διόρθωση του προγράμματος. Ο χωρισμός του προγράμματος σε μικρότερα αυτοτελή τμήματα επιτρέπει τη γρήγορη διόρθωση καθενός τμήματος του χωρίς οι αλλαγές αυτές να επηρεάζουν το υπόλοιπο πρόγραμμα. Επίσης διευκολύνει τον καθένα να διαβάσει και να κατανοήσει τη λειτουργία του προγράμματος χωρίς ιδιαίτερα μεγάλο κόπο. Αυτό αποτελεί πολύ σημαντικό χαρακτηριστικό για τον σωστό προγραμματισμό, αφού ένα μεγάλο πρόγραμμα κατά τον κύκλο της ζωής του χρειάζεται να συντηρηθεί από διαφορετικούς προγραμματιστές. Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράμματος. Πολύ συχνά, μια συγκεκριμένη λειτουργία απαιτείται να επαναληφθεί σε διαφορετικά σημεία ενός προγράμματος. Από τη στιγμή που ένα υποπρόγραμμα έχει γραφεί, μπορεί να καλείται από πολλά σημεία του προγράμματος μειώνοντας με τον τρόπο αυτό το μέγεθος του προγράμματος, το χρόνο συγγραφής του και την πιθανότητα προγραμματιστικού σφάλματος, ενώ ταυτόχρονα το πρόγραμμα γίνεται πιο εύληπτο και κατανοητό. Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού. Το υποπρόγραμμα από τη στιγμή που έχει φτιαχτεί μπορεί να χρησιμοποιηθεί από οποιοδήποτε πρόγραμμα της συγκεκριμένης γλώσσας, το οποίο κατ επέκταση οδηγεί στη δημιουργία των βιβλιοθηκών χρήστη. Η συγγραφή πολλών υποπρογραμμάτων και η δημιουργία βιβλιοθηκών με αυτά, υπό μία έννοια επεκτείνουν την ίδια τη γλώσσα προγραμματισμού με λειτουργίες που δεν υποστηρίζονται απευθείας από τη γλώσσα προγραμματισμού. Στοίβα Στην εικόνα που ακολουθεί βλέπετε το λογικό διάγραμμα της οργάνωσης της μνήμης σχεδόν όλων των υπολογιστικών συστημάτων. Εκτός από τα τμήματα του κώδικα και των δεδομένων υπάρχει και το τμήμα της στοίβας (stack). Η στοίβα επομένως δεν είναι τίποτα άλλο από ένα κομμάτι στην κύρια μνήμη (τύπου RAM) το οποίο όμως λειτουργεί με ένα ξεχωριστό τρόπο. Η στοίβα λειτουργεί με την αρχή LIFO (Last In First Out) και είναι ένα κομμάτι μνήμης που έχει μόνο ένα σημείο εισόδου/εξόδου. 66

67 Οργάνωση της μνήμης ενός υπολογιστικού συστήματος Στο επεξεργαστή 8085 ο stack λειτουργεί με ζευγάρια καταχωρητών (με άλλα λόγια ο stack στον 8085 είναι 16 bits). Οι δύο βασικές εντολές χειρισμού του stack στον 8085 είναι: PUSH rp: το περιεχόμενο του ζεύγους καταχωρητών rp μεταφέρεται στην στοίβα. POP rp: το περιεχόμενο των κορυφαίων θέσεων της στοίβας αποθηκεύεται στο ζεύγος καταχωρητών rp. Σημείωση: rp (register pair ή ζευγάρι καταχωρητών) είναι ένα από τα ζευγάρια των καταχωρητών BC, DE, HL (τα ζευγάρια καταχωρητών σηματοδοτούνται πάντα από το όνομα του πρώτου καταχωρητή του ζευγαριού, δηλαδή B, D και H αντίστοιχα). Επίσης, αν το όρισμα της εντολής είναι το PSW (Processor Status Word) αναφερόμαστε στον καταχωρητή Α (accumulator) μαζί με καταχωρητή F (flag register). Υπορουτίνες Οι υπορουτίνες είναι αυτοτελή κομμάτια κώδικα τα οποία καλούνται με την εντολή call, ενώ στο τέλος μια υπορουτίνας πρέπει να υπάρχει η εντολή RET (Return), η οποία και δηλώνει το τέλος της υπορουτίνας και την επιστροφή στο σημείο κλήσης της υπορουτίνας. Υπορούτινες μπορεί να φτιάξει ο χρήστης αλλά συνήθως υπάρχουν και έτοιμες υπορουτίνες που παρέχονται είτε από τον κατασκευαστή της γλώσσας προγραμματισμού είτε από το λειτουργικό σύστημα (π.χ. windows). Το Microkit πρόγραμμα (το mini λειτουργικό σύστημα του αναπτυξιακού που χρησιμοποιούμε στο εργαστήριο) παρέχει πολλές έτοιμες υπορουτίνες. Ένα χαρακτηριστικό παράδειγμα έτοιμης υπορουτίνας είναι η υπορουτίνα UPDDT, η οποία βρίσκεται στην θέση μνήμης 039DH (τύπου ROM) και εμφανίζει το περιεχόμενο του καταχωρητή Α στο Data Field του Mikrokit. Προσοχή: η υπορουτίνα UPDDT κατά την κλήση της καταστρέφει όλους τους καταχωρητές του 8085 (και τον flag register). Λυμένο Παράδειγμα Να γραφεί πρόγραμμα το οποίο να εμφανίζει στο Data Field του Mikrokit τους αριθμούς 00Η έως 05Η. Μεταξύ των διαδοχικών εμφανίσεων να υπάρχει καθυστέρηση ίση με 2 seconds. DELAY: για την Delay: 1 διπλό Loop με τους μετρητές στο FFH, 0,5 διπλό Loop με τον ένα μετρητή στο FFH και τον άλλο στο 7FH, 0,25 διπλό Loop με τον ένα μετρητή στο FFH και τον άλλο στο 3FH ή διπλό Loop με τον ένα μετρητή στο 7FH και τον άλλο στο 7FH, 0,125 διπλό Loop με τον ένα μετρητή στο FFH και τον άλλο στο 1FH, 67

68 DISPLAY: Η υπορουτίνα DISPLAY εμφανίζει το περιεχόμενο του Καταχωρητή Α στο data field του display. Προσοχή, η συγκεκριμένη υπορουτίνα καταστρέφει όλους τους καταχωρητές, συμπεριλαμβανομένου και του καταχωρητή σημαιών. Δηλώστε την μόνο με το όνομα της και μόνο με την εντολή RET (DISPLAY: RET). Ο κώδικας στο ΜΙΚΡΟΚΙΤ ;******************************************************************************* ;LABORATORY EXERCISE 8 ;FILE LAB8.ASM ;******************************************************************************* ORG 2000H UPDDT EQU 039DH START: ;Αρχή προγράμματος στην 2000H ;Υπορουτίνα εμφάνισης στο Data Field ;ψευδοεντολή δήλωση αρχής προγράμματος MVI A,00H ;Αρχικοποίηση του A (μετρητής) στο 0 LOOP1: PUSH PSW CALL UPDDT POP PSW PUSH PSW CALL DELAY CALL DELAY POP PSW INR A CPI 06H JNZ LOOP1 ;ετικέτα αρχής βρόχου ;αποθήκευση του Α στον stack ;εμφάνισε τον Α στο Data Field ;επαναφορά του Α από τον stack (περιττή) ;αποθήκευση του Α στον stack (περιττή) ;καθυστέρηση ίση με 1 second ;καθυστέρηση ίση με 1 second ;επαναφορά του Α από τον stack ;αύξηση του μετρητή ;σύγκριση μετρητή με το πλήθος των επαναλήψεων ;τέλος βρόχου RST 1 DELAY: MVI B,0FFH LABEL1: MVI A,0FFH ;η delay ;φόρτωσε το FFH στον Β ;αρχή LABEL1 ;φόρτωσε το FFH στον Α 68

69 LABEL2: ;αρχή LABEL2 DCR A ;μείωσε τον Α κατά 1 JNZ LABEL2 ;διακλάδωση στο LABEL2 αν το Z flag είναι 0 DCR B ;μείωσε τον Β κατά 1 JNZ LABEL1 ;διακλάδωση στο LABEL1 αν το Z flag είναι 0 RET END ;επιστροφή από την υπορουτίνα ;Τέλος προγράμματος ;******************************************************************************* Ο κώδικας στο gnusim8085 Η υπορουτίνα DISPLAY εμφανίζει το περιεχόμενο του Καταχωρητή Α στο data field του display. Προσοχή, η συγκεκριμένη υπορουτίνα καταστρέφει όλους τους καταχωρητές, συμπεριλαμβανομένου και του καταχωρητή σημαιών. Δηλώστε την μόνο με το όνομα της και μόνο με την εντολή RET (DISPLAY: RET). ;******************************************************************************* ;LABORATORY EXERCISE 8 ;FILE LAB8.ASM ;******************************************************************************* MVI A,00H ;Αρχικοποίηση του A (μετρητής) στο 0 LOOP1: PUSH PSW CALL DISPLAY POP PSW PUSH PSW CALL DELAY CALL DELAY POP PSW INR A CPI 06H JNZ LOOP1 ;αποθήκευση του Α στον stack ;εμφάνισε τον Α στο Data Field (ή CALL DELAY ξανά) ;επαναφορά του Α από τον stack (περιττή) ;αποθήκευση του Α στον stack (περιττή) ;καθυστέρηση ίση με 1 second ;καθυστέρηση ίση με 1 second ;επαναφορά του Α από τον stack ;αύξηση του μετρητή ;σύγκριση μετρητή με το πλήθος των επαναλήψεων ;τέλος βρόχου JMP END 69

70 DISPLAY: RET DELAY: MVI B,0FFH LABEL1: MVI A,0FFH ;φόρτωσε το FFH στον Β ;φόρτωσε το FFH στον Α LABEL2: DCR A ;μείωσε τον Α κατά 1 JNZ LABEL2 ;διακλάδωση στο LABEL2 αν το Z flag είναι 0 DCR B ;μείωσε τον Β κατά 1 JNZ LABEL1 ;διακλάδωση στο LABEL1 αν το Z flag είναι 0 RET END: HLT 70

71 ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ Στην συνέχεια δίνεται το διάγραμμα ροής του παραδείγματος (στο διάγραμμα ροής δεν υπάρχουν οι δύο περιττές εντολές). ΑΡΧΗ DELAY Α 00Η B FFH {Α.F} STACK A FFH ΚΛΗΣΗ DISPLAY ΚΛΗΣΗ DELAY NO A A-1 NO ΚΛΗΣΗ DELAY NO A==00H? {Α,F} STACK YES B B-1 Α A+1 A==06H? B==00H? YES YES ΤΕΛΟΣ ΕΠΙΣΤΡΟΦΗ Υπολογισμός της περιόδου του 8085 Κατά την εκτέλεση διαφόρων προγραμμάτων, ορισμένες φορές απαιτείται από τον προγραμματιστή, αλλά και από τη φύση του προγράμματος, να καθυστερήσει η εκτέλεση μιας εντολής ή μια ομάδας εντολών. Αυτό στον επεξεργαστή 8085 μπορεί να γίνει εκτελώντας μια αλληλουχία εντολών, οι οποίες στο σύνολό τους δημιουργούν την επιθυμητή καθυστέρηση. Τα προγράμματα τα οποία δημιουργούν την επιθυμητή καθυστέρηση ονομάζονται προγράμματα καθυστέρησης και συχνά εμφανίζονται ως υπορουτίνες στο πρόγραμμα. 71

72 Ο χρόνος εκτέλεσης μια εντολής εξαρτάται από: Τους κύκλους μηχανής (cycle time) που χρειάζεται κάθε εντολή για την εκτέλεση της. Αυτή η πληροφορία είναι διαθέσιμη από τον κατασκευαστή του επεξεργαστή και υπάρχει στο εγχειρίδιο (manual) του κάθε επεξεργαστή. Από την συχνότητα του ρολογιού/κρυστάλλου του επεξεργαστή. Στη περίπτωση που χρησιμοποιείται η Mikrokit αναπτυξιακή πλακέτα, ο εξωτερικός κρύσταλλος έχει συχνότητα MHz, και το ρολόι που λειτουργεί ο μικροϋπολογιστής είναι το μισό της συχνότητας του κρυστάλλου, δηλαδή MHz. Επομένως η περίοδος του ρολογιού (cycle time) είναι μsec. 72

73 ΑΣΚΗΣΗ 9 Λειτουργίες Ι/Ο Θύρες Εισόδου / Εξόδου Αρχικά προγραμματίστε το KIT, ώστε να έχει ΘΥΡΑ A ΣΑΝ ΕΙΣΟΔΟ, ΘΥΡΑ B ΣΑΝ ΕΞΟΔΟ. Να γραφεί πρόγραμμα το οποίο ανάλογα με το ποιος διακόπτης είναι στη θέση ON, να κάνει τις παρακάτω λειτουργίες. Λειτουργίες: Διαδικασία 1: Όταν ο διακόπτης Δ2 είναι στη θέση ON τότε όλα τα LED είναι σβηστά. Κατόπιν να ελέγχει πάλι τη θύρα A. Διαδικασία 2: Όταν ο διακόπτης Δ3 είναι στη θέση ON τότε να εξάγει στην θύρα B (έξοδο) την κατάλληλη λέξη ώστε να ανάψουν τα leds L0, L1 & L2 και την κατάλληλη λέξη ώστε να ανάψουν τα leds L3 & L4 με καθυστέρηση 1 sec μεταξύ τους. Κατόπιν να ελέγχει πάλι τη θύρα A. Διαδικασία 3: Όταν οι διακόπτες Δ5 & Δ7 είναι στη θέση ON τότε να αφαιρεί τον αριθμό 2ΑΗ από τον 6FΗ και το αποτέλεσμα να τοποθετείται στην 2450Η, ύστερα να κάνει την λογική πράξη OR μεταξύ του περιεχομένου της θέσης μνήμης 2450Η και του αριθμού 1FΗ και το αποτέλεσμα να τοποθετηθεί στην 245FΗ. Στην συνέχεια να τυπώνει το αποτέλεσμα στο LCD Display του Mikrokit. Κατόπιν να ελέγχει πάλι τη θύρα A. DELAY: για την Delay: 1 διπλό Loop με τους μετρητές στο FFH, 0,5 διπλό Loop με τον ένα μετρητή στο FFH και τον άλλο στο 7FH, 0,25 διπλό Loop με τον ένα μετρητή στο FFH και τον άλλο στο 3FH ή διπλό Loop με τον ένα μετρητή στο 7FH και τον άλλο στο 7FH, 0,125 διπλό Loop με τον ένα μετρητή στο FFH και τον άλλο στο 1FH, DISPLAY: Η υπορουτίνα DISPLAY εμφανίζει το περιεχόμενο του Καταχωρητή Α στο data field του display. Προσοχή, η συγκεκριμένη υπορουτίνα καταστρέφει όλους τους καταχωρητές, συμπεριλαμβανομένου και του καταχωρητή σημαιών. Δηλώστε την μόνο με το όνομα της και μόνο με την εντολή RET (DISPLAY: RET). 73

74 Λύση Παραδείγματος: Σχεδιάζουμε αρχικά το διάγραμμα ροής ΑΡΧΗ ΑΡΧΙΚΟΠΟΙΗΣΗ ΘΥΡΩΝ START ΔΙΑΒΑΣΕ ΤΗΝ ΚΑΤΑΣΤΑΣΗ ΤΩΝ ΔΙΑΚΟΠΤΩΝ ΔΙΑΚΟΠΤΗΣ Δ2 ON? ΝΑΙ ΔΙΑΔΙΚΑΣΙΑ 1 ΟΧΙ ΔΙΑΚΟΠΤΗΣ Δ3 ON? ΝΑΙ ΔΙΑΔΙΚΑΣΙΑ 2 ΟΧΙ ΔΙΑΚΟΠΤΗΣ Δ5 & Δ7 ON? ΝΑΙ ΔΙΑΔΙΚΑΣΙΑ 3 ΟΧΙ START ΔΙΑΔΙΚ. 1 Α 00Η Α 42Η START 74

75 75

76 Ο κώδικας στο ΜΙΚΡΟΚΙΤ ;******************************************************************************* ;LABORATORY EXERCISE 9 ;FILE LAB9.ASM ;******************************************************************************* ORG 2000H ; διεύθυνση της πρώτης εντολής (ψευδοεντολή) UPDDT EQU 039DH START: MVI A,02H OUT 40H ; Δήλωση ονόματος υπορουτίνας εμφάνισης δεδομένων στο Display ; δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) ; Φόρτωσε στον Α το 02H ; Αρχικοποίηση θυρών MAIN: IN 41H CPI 04H JZ PROC_1 CPI 08H JZ PROC_2 CPI 0A0H JZ PROC_3 ; Διάβασε την κατάσταση των διακοπτών ; Δ2 διακόπτης στη θέση ON? ; Ναι. Πήγαινε στην 1η διαδικασία ; Δ3 διακόπτης στη θέση ON? ; Ναι. Πήγαινε στην 2η διαδικασία ; Δ5 Δ7 διακόπτης στη θέση ON? ; Ναι. Πήγαινε στην 3η διαδικασία JMP MAIN PROC_1: ;1η διαδικασία MVI A,00H ; Φόρτωσε στον A το 00H OUT 42H ; Σβήσε τα LEDs (42 ΔΙΕΥΘΥΝΣΗ ΘΥΡΑΣ Β) JMP MAIN ; Πήγαινε στην αρχή του προγράμματος PROC_2: ;2η διαδικασία MVI A,07H ; Φόρτωσε στον A το 07H (leds L0, L1 & L2) OUT 42H ; (42 ΔΙΕΥΘΥΝΣΗ ΘΥΡΑΣ Β) CALL DELAY ; Kάλεσε καθυστέρηση MVI A,18H ; Φόρτωσε στον A το 18H (leds L3 & L4 ) 76

77 OUT 42H ; (42 ΔΙΕΥΘΥΝΣΗ ΘΥΡΑΣ Β) CALL DELAY JMP MAIN ;Kάλεσε καθυστέρηση ; Πήγαινε στην αρχή του προγράμματος PROC_3: ;3η διαδικασία MVI A,6FH SUI 2AH STA 2450H ORI 1FH ; Φόρτωσε στον A το 6F ; Αφαίρεσε από τον Α το 2ΑΗ (6F 2A) ; Αποθήκευση του αποτελέσματος στην 2450Η ; OR μεταξύ του αποτελέσματος της αφαίρεσης ; και του 1FH ({2450H}OR 1FH) STA 245FH CALL UPDDT JMP MAIN ; Αποθήκευση του αποτελέσματος στην 245FH ; Εμφάνιση του περιεχομένου του Α στο Display ; Πήγαινε στην αρχή του προγράμματος DELAY: ; 1sec delay MVI B,0FFH ; φόρτωσε το FFH στον Β LABEL1: ; αρχή LABEL1 MVI A,0FFH ; φόρτωσε το FFH στον Α LABEL2: ; αρχή LABEL2 DCR A ; μείωσε τον Α κατά 1 JNZ LABEL2 ; διακλάδωση στην LABEL2 αν το ZERO flag είναι 0 DCR B ; μείωσε τον Β κατά 1 JNZ LABEL1 ; διακλάδωση στην LABEL1 αν το ZERO flag είναι 0 RET ; επιστροφή από την υπορουτίνα RST 1 END ; Τέλος προγράμματος ;******************************************************************************* 77

78 Ο κώδικας στο gnusim8085 Η υπορουτίνα DISPLAY εμφανίζει το περιεχόμενο του Καταχωρητή Α στο data field του display. Προσοχή, η συγκεκριμένη υπορουτίνα καταστρέφει όλους τους καταχωρητές, συμπεριλαμβανομένου και του καταχωρητή σημαιών. Δηλώστε την μόνο με το όνομα της και μόνο με την εντολή RET (DISPLAY: RET). ;******************************************************************************* ;LABORATORY EXERCISE 9 ;FILE LAB9.ASM ;******************************************************************************* MVI A,02H ; Φόρτωσε στον Α το 02H OUT 40H MAIN: IN 41H CPI 04H JZ PROC_1 CPI 08H JZ PROC_2 CPI 0A0H JZ PROC_3 ; Αρχικοποίηση θυρών ; Διάβασε την κατάσταση των διακοπτών ; Δ2 διακόπτης στη θέση ON? ; Ναι. Πήγαινε στην 1η διαδικασία ; Δ3 διακόπτης στη θέση ON? ; Ναι. Πήγαινε στην 2η διαδικασία ; Δ5 Δ7 διακόπτης στη θέση ON? ; Ναι. Πήγαινε στην 3η διαδικασία JMP MAIN PROC_1: MVI A,00H ; Φόρτωσε στον A το 00H OUT 42H ; Σβήσε τα LEDs (42 ΔΙΕΥΘΥΝΣΗ ΘΥΡΑΣ Β) JMP MAIN ; Πήγαινε στην αρχή του προγράμματος PROC_2: MVI A,07H ; Φόρτωσε στον A το 07H (leds L0, L1 & L2) OUT 42H ; (42 ΔΙΕΥΘΥΝΣΗ ΘΥΡΑΣ Β) CALL DELAY ; Kάλεσε καθυστέρηση MVI A,18H ; Φόρτωσε στον A το 18H (leds L3 & L4 ) OUT 42H ; (42 ΔΙΕΥΘΥΝΣΗ ΘΥΡΑΣ Β) CALL DELAY JMP MAIN PROC_3: MVI A,6FH SUI 2AH ;Kάλεσε καθυστέρηση ; Πήγαινε στην αρχή του προγράμματος ; Φόρτωσε στον A το 6F ; Αφαίρεσε από τον Α το 2ΑΗ (6F 2A) 78

79 STA 2450H ORI 1FH ; Αποθήκευση του αποτελέσματος στην 2450Η ; OR μεταξύ του αποτελέσματος της αφαίρεσης ; και του 1FH ({2450H}OR 1FH) STA 245FH CALL DISPLAY JMP MAIN ; Αποθήκευση του αποτελέσματος στην 245FH ;εμφάνισε τον Α στο Data Field (ή CALL DELAY ξανά) ; Πήγαινε στην αρχή του προγράμματος DISPLAY: RET DELAY: MVI B,0FFH LABEL1: MVI A,0FFH ; φόρτωσε το FFH στον Β ; φόρτωσε το FFH στον Α LABEL2: DCR A ; μείωσε τον Α κατά 1 JNZ LABEL2 ; διακλάδωση στην LABEL2 αν το ZERO flag είναι 0 DCR B ; μείωσε τον Β κατά 1 JNZ LABEL1 ; διακλάδωση στην LABEL1 αν το ZERO flag είναι 0 RET ; επιστροφή από την υπορουτίνα HLT 79

80 ΑΣΚΗΣΗ 10 Επαναληπτική Αρχικά προγραμματίστε το KIT, ώστε να έχει ΘΥΡΑ A ΣΑΝ ΕΙΣΟΔΟ, ΘΥΡΑ B ΣΑΝ ΕΞΟΔΟ. Να γραφεί πρόγραμμα το οποίο ανάλογα με το ποιος διακόπτης είναι στη θέση ON, να κάνει τις παρακάτω λειτουργίες. Λειτουργίες: Διαδικασία 1: Όταν ο διακόπτης Δ2 & Δ4 & Δ6 είναι στη θέση ON τότε εκτελείτε πολλαπλασιασμό μεταξύ των αριθμών 0DH (2500Η) και 1AH (2505Η), το αποτέλεσμα του πολλαπλασιασμού να τοποθετηθεί στην θέση μνήμης 2510H. Κατόπιν να ελέγχει πάλι τη θύρα A. Διαδικασία 2: Όταν ο διακόπτης Δ3 είναι στη θέση ON τότε να εξάγει στην θύρα B (έξοδο) την κατάλληλη λέξη ώστε να ανάψουν τα leds L0, L3, L5, & L7 και την κατάλληλη λέξη ώστε να ανάψουν τα leds L1, L2, L4 & L6 με καθυστέρηση. Μεταξύ της εναλλαγής να υπάρχει καθυστέρηση 1 sec. Ο αριθμός να εμφανίζεται και στο LCD display του microkit. Κατόπιν να ελέγχει πάλι τη θύρα A. Διαδικασία 3: Όταν ο διακόπτης Δ6 & Δ7 είναι στη θέση ON τότε να κάνει την λογική πράξη OR μεταξύ του αριθμού 0ΑH και του αριθμού Β0Η και το αποτέλεσμα να τοποθετηθεί στην 2210Η, ύστερα να αφαιρεί από το περιεχόμενο της θέσης μνήμης 2220Η το περιεχόμενο της θέσης μνήμης 2230H (αφού πριν έχετε βάλει στην 2230H τον αριθμό 1DH) και το αποτέλεσμα να τοποθετηθεί στην 2240Η. Κατόπιν να ελέγχει πάλι τη θύρα A. Σε όλες τις άλλες περιπτώσεις να ελέγχει πάλι την θύρα Α. DELAY: για την Delay: 1 διπλό Loop με τους μετρητές στο FFH, 0,5 διπλό Loop με τον ένα μετρητή στο FFH και τον άλλο στο 7FH, 0,25 διπλό Loop με τον ένα μετρητή στο FFH και τον άλλο στο 3FH ή διπλό Loop με τον ένα μετρητή στο 7FH και τον άλλο στο 7FH, 0,125 διπλό Loop με τον ένα μετρητή στο FFH και τον άλλο στο 1FH, DISPLAY: Η υπορουτίνα DISPLAY εμφανίζει το περιεχόμενο του Καταχωρητή Α στο data field του display. Προσοχή, η συγκεκριμένη υπορουτίνα καταστρέφει όλους τους καταχωρητές, συμπεριλαμβανομένου και του καταχωρητή σημαιών. Δηλώστε την μόνο με το όνομα της και μόνο με την εντολή RET (DISPLAY: RET). Λύση Άσκησης

81 ΔΙΑΔΙΚ. 2 Α A9Η Α 42Η CALL DISPLAY ΚΑΘΥΣΤΕΡΗΣΗ Α 56 Η Α 42Η CALL DISPLAY ΚΑΘΥΣΤΕΡΗΣΗ START 81

82 Ο κώδικας στο ΜΙΚΡΟΚΙΤ ;******************************************** *********************** ;LABORATORY EXERCISE 10 ;FILE LAB10.ASM ;******************************************************************* ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) UPDDT EQU 039DH START: ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) 82

83 MVI A,02H OUT 40H ;Φόρτωσε στον Α το 02H ;Αρχικοποίηση θυρών MAIN: IN 41H CPI 54H JZ PROC_1 CPI 08H JZ PROC_2 CPI 0C0H JZ PROC_3 ;Διάβασε την κατάσταση των διακοπτών ;Δ2 & Δ4 & Δ6 διακόπτης στη θέση ON? ;Ναι. Πήγαινε στην 1η διαδικασία ;Δ3 διακόπτης στη θέση ON? ;Ναι. Πήγαινε στην 2η διαδικασία ;Δ6 & Δ7 διακόπτης στη θέση ON? ;Ναι. Πήγαινε στην 3η διαδικασία JMP MAIN PROC_1: LDA 2500H ;Φόρτωσε στον Α τον πολλαπλασιαστέο MOV B,A PUSH PSW ;Μετέφερε τον στον Β ;αποθήκευση του Α στον stack LDA 2501H MOV C,A DCR C ;Φόρτωσε στον C τον πολλαπλασιαστή ; μείωση του μετρητή POP PSW LABEL: ADD B DCR C ; επαναφορά του Α από τον stack ;ετικέτα αρχής βρόχου ;εκτέλεση της διαδοχικής πρόσθεσης ;μείωση του μετρητή JNZ LABEL STA 2510H JMP MAIN ;τέλος βρόχου ;Μετέφερε το αποτέλεσμα την θέση μνήμης 2300H ;Πήγαινε στην αρχή του προγράμματος PROC_2: ;2η διαδικασία MVI A,0A9H OUT 42H CALL UPDDT 83

84 CALL DELAY MVI A,56H OUT 42H CALL UPDDT CALL DELAY JMP MAIN ;Πήγαινε στην αρχή του προγράμματος PROC_3: ;3η διαδικασία MVI A,1DH STA 2230H MVI A,0AH ORI B0H STA 2210H LDA 2220H LXI H,2230H SUB M STA 2240H JMP MAIN ;Πήγαινε στην αρχή του προγράμματος DELAY: ;η delay MVI B,0FFH ;φόρτωσε το FFH στον Β LABEL1: ;αρχή LABEL1 MVI A,0FFH ; φόρτωσε το FFH στον Α LABEL2: ;αρχή LABEL2 DCR A ;μείωσε τον Α κατά 1 JNZ LABEL2 ;διακλάδωση στην LABEL2 αν το ZERO flag είναι 0 DCR B ;μείωσε τον Β κατά 1 JNZ LABEL1 ;διακλάδωση στην LABEL1 αν το ZERO flag είναι 0 RET ;επιστροφή από την υπορουτίνα RST 1 END ; Τέλος προγράμματος 84

85 ;******************************************************************* Ο κώδικας στο gnusim8085 Η υπορουτίνα DISPLAY εμφανίζει το περιεχόμενο του Καταχωρητή Α στο data field του display. Προσοχή, η συγκεκριμένη υπορουτίνα καταστρέφει όλους τους καταχωρητές, συμπεριλαμβανομένου και του καταχωρητή σημαιών. Δηλώστε την μόνο με το όνομα της και μόνο με την εντολή RET (DISPLAY: RET). ;******************************************** *********************** ;LABORATORY EXERCISE 10 ;FILE LAB10.ASM ;******************************************************************* MVI A,02H OUT 40H MAIN: IN 41H CPI 54H JZ PROC_1 CPI 08H JZ PROC_2 CPI 0C0H JZ PROC_3 ;Φόρτωσε στον Α το 02H ;Αρχικοποίηση θυρών ;Διάβασε την κατάσταση των διακοπτών ; Δ2 & Δ4 & Δ6 διακόπτης στη θέση ON? ;Ναι. Πήγαινε στην 1η διαδικασία ;Δ3 διακόπτης στη θέση ON? ;Ναι. Πήγαινε στην 2η διαδικασία ;Δ6 & Δ7 διακόπτης στη θέση ON? ;Ναι. Πήγαινε στην 3η διαδικασία JMP MAIN PROC_1: LDA 2500H MOV B,A PUSH PSW ;Φόρτωσε στον Α τον πολλαπλασιαστέο ;Μετέφερε τον στον Β ;αποθήκευση του Α στον stack LDA 2501H MOV C,A DCR C ;Φόρτωσε στον C τον πολλαπλασιαστή ; μείωση του μετρητή POP PSW LABEL: ADD B DCR C ;επαναφορά του Α από τον stack ;εκτέλεση της διαδοχικής πρόσθεσης ;μείωση του μετρητή JNZ LABEL STA 2510H ;τέλος βρόχου ;Μετέφερε το αποτέλεσμα την θέση μνήμης 2300H 85

86 JMP MAIN ;Πήγαινε στην αρχή του προγράμματος PROC_2: MVI A,0A9H OUT 42H CALL DISPLAY ;εμφάνισε τον Α στο Data Field (ή CALL DELAY ξανά) CALL DELAY MVI A,56H OUT 42H CALL DISPLAY ;εμφάνισε τον Α στο Data Field (ή CALL DELAY ξανά) CALL DELAY JMP MAIN ;Πήγαινε στην αρχή του προγράμματος PROC_3: MVI A,1DH STA 2230H MVI A,0AH ORI 0B0H STA 2210H LDA 2220H LXI H,2230H SUB M STA 2240H JMP MAIN ;Πήγαινε στην αρχή του προγράμματος DISPLAY: RET DELAY: MVI B,0FFH LABEL1: MVI A,0FFH ;φόρτωσε το FFH στον Β ; φόρτωσε το FFH στον Α LABEL2: DCR A ;μείωσε τον Α κατά 1 JNZ LABEL2 ;διακλάδωση στην LABEL2 αν το ZERO flag είναι 0 DCR B ;μείωσε τον Β κατά 1 JNZ LABEL1 ;διακλάδωση στην LABEL1 αν το ZERO flag είναι 0 RET ;επιστροφή από την υπορουτίνα HLT 86

87 Παράρτημα 1 ΡΕΠΕΡΤΟΡΙΟ ΕΝΤΟΛΩΝ ΤΟΥ

88 88

89 89

90 90

91 91

92 92

93 93

94 94

95 95

96 96

97 97

98 98

99 99

100 100

101 101

102 102

103 103

104 104

105 105

106 106

107 107

108 108

109 109

110 110

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής 8085, Εργαστηριακές Ασκήσεις Δρ.Τοπάλης Ευάγγελος Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών καθ. Χαδέλλης Λουκάς ΤΕΙ Δυτικής Ελλάδας ΕΡΓΑΣΤΗΡΙΟ

Διαβάστε περισσότερα

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

«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ «ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ 8085 ΧΟΝΔΡΙΚΟ ΔΙΑΓΡΑΜΜΑ 8085 CPU ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΤΟΥ 8085 Ο ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗΣ ΕΝΤΟΛΩΝ Η ΑΡΙΘΜΗΤΙΚΗ ΚΑΙ ΛΟΓΙΚΗ ΜΟΝΑΔΑ ΟΙ «ΣΗΜΑΙΕΣ» FLAGS Η ΜΟΝΑΔΑ

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής 8085, Εργαστηριακές Ασκήσεις

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής 8085, Εργαστηριακές Ασκήσεις ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής 8085, Εργαστηριακές Ασκήσεις Δρ. Τοπάλης Ευάγγελος (Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών) Δρ.Κεραμίδας Γεώργιος (Δρ. Ηλεκτρολόγος Μηχανικός

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής 8085, Εργαστηριακές Ασκήσεις Δρ. Τοπάλης Ευάγγελος (Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών) Δρ.Αντωνόπουλος Χρήστος (Δρ. Ηλεκτρολόγος Μηχανικός

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής 8085, Εργαστηριακές Ασκήσεις

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής 8085, Εργαστηριακές Ασκήσεις ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ Ι Μικροεπεξεργαστής 8085, Εργαστηριακές Ασκήσεις Δρ. Τοπάλης Ευάγγελος (Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών) Δρ.Αντωνόπουλος Χρήστος (Δρ. Ηλεκτρολόγος Μηχανικός

Διαβάστε περισσότερα

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό

Διαβάστε περισσότερα

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

Συστήματα Μικροϋπολογιστών Συστήματα Μικροϋπολογιστών Παραδείγματα προγραμματισμού του με Intel 8085 Υπεύθυνος Μαθήματος: K. ΠΕΚΜΕΣΤΖΗ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

Διαβάστε περισσότερα

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

Διαβάστε περισσότερα

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

Συστήματα Μικροϋπολογιστών Συστήματα Μικροϋπολογιστών Ο Μικροεπεξεργαστής 8085 K. ΠΕΚΜΕΣΤΖΗ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

Διαβάστε περισσότερα

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Α Γενικού Λυκείου Κεφάλαιο 1 1.1 Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Ιδιαίτερη θέση έχουν οι Υπολογιστικές συσκευές. Μηχανισμός

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

Διαβάστε περισσότερα

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό. Ερωτήσεις θεωρίας MY Μέρος Α. Υλικό. 1. Η μνήμη ROM είναι συνδυαστικό ή ακολουθιακό κύκλωμα; 2. α) Να σχεδιαστεί μία μνήμη ROM που να δίνει στις εξόδους της το πλήθος των ημερών του μήνα, ο αριθμός του

Διαβάστε περισσότερα

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή 1.5.1 Ανάλυση των μερών ενός υπολογιστή Μονάδα συστήματος Είναι το κουτί του υπολογιστή το οποίο φαίνεται αρκετά συμπαγές, αλλά στην πραγματικότητα αποτελείται

Διαβάστε περισσότερα

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

Διαβάστε περισσότερα

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

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής) ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης Το εσωτερικό ενός PC 1 Το κουτί του PC (περίβλημα) περιέχει όλα τα βασικά μέρη του συστήματος Δύο κατηγορίες κουτιών: Desktop και Tower Mini tower Midi tower Full tower Κεντρική μονάδα Ο τύπος του κουτιού

Διαβάστε περισσότερα

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

Διαβάστε περισσότερα

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεματική Ενότητα Ακαδημαϊκό Έτος 2010 2011 Ημερομηνία Εξέτασης Κυριακή 26.6.2011 Ώρα Έναρξης Εξέτασης

Διαβάστε περισσότερα

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ Άριστος Πασιάς 1 ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ Η ΔΟΜΗ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Άριστος Πασιάς Σεπτέμβριος 2017 2 Στόχοι: Στο τέλος αυτού του μαθήματος ο μαθητή πρέπει: Να μπορεί να αναφέρει τα κύρια χαρακτηριστικά

Διαβάστε περισσότερα

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

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

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 201 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

Διαβάστε περισσότερα

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: Σελίδα 1 από 11 Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: την επικοινωνία, µε τα υπόλοιπα ολοκληρωµένα κυκλώµατα του υπολογιστικού συστήµατος. την παροχή τροφοδοσίας

Διαβάστε περισσότερα

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή 1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,

Διαβάστε περισσότερα

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή Στόχοι Μαθήματος: Να γνωρίσετε τις βασικές λειτουργίες ενός Η/Υ. Να γνωρίσετε τις έννοιες δεδομένα, πληροφορία, επεξεργασία,

Διαβάστε περισσότερα

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από: Σελίδα 1 από 12 Απαντήσεις στο φυλλάδιο 55 Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από: (α) Κεντρική Μονάδα Επεξεργασίας. (β) Κύρια Μνήµη. (γ) Μονάδες εισόδου. (δ) Μονάδες εξόδου. (ε) Βοηθητική

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ ΕΙΣΑΓΩΓΗ Θέµατα ❸Συστήµατα Η/Υ (αναφορά) ❸Γλώσσα υπολογιστών ❸Γλώσσες προγραµµατισµού (low-high level) ❸Low level VS high level programming ❸Βασικά µέρη Η/Υ ❸Μικροϋπολογιστές (µc µp) ❸Αρχιτεκτονική µικροελεγκτών

Διαβάστε περισσότερα

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

Συστήματα Μικροϋπολογιστών Συστήματα Μικροϋπολογιστών Είσοδος / Έξοδος Δεδομένων Υπεύθυνος Μαθήματος: K. ΠΕΚΜΕΣΤΖΗ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ 4 ο Εξάμηνο Μαδεμλής Ιωάννης ΛΟΓΙΚΕΣ ΠΡΑΞΕΙΣ Οι λογικές πράξεις που υποστηρίζει η Assembly του 8088 είναι : Πράξη AND Πράξη OR Πράξη NOT Πράξη XOR Με τις λογικές πράξεις μπορούμε

Διαβάστε περισσότερα

Βασικές Έννοιες της Πληροφορικής

Βασικές Έννοιες της Πληροφορικής Βασικές Έννοιες της Πληροφορικής Ηλεκτρονικός Υπολογιστής Αυτόματη ηλεκτρονική μηχανή που δέχεται, φυλάσσει, επαναφέρει, επεξεργάζεται και παρουσιάζει πληροφορίες σύμφωνα με προκαθορισμένες εντολές. Δεδομένα

Διαβάστε περισσότερα

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους. Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους. *Τα φυσικά μέρη που μπορούμε να δούμε και να αγγίξουμε ονομάζονται συνολικά υλικό (hardware). * * υπερυπολογιστές

Διαβάστε περισσότερα

Εφαρμογές μικροελεγκτών

Εφαρμογές μικροελεγκτών Μικροελεγκτές Έναν ορισμό που θα μπορούσαμε να δώσουμε για τους μικροελεγκτές είναι ο εξής: Μικροελεγκτής είναι ένα προγραμματιζόμενο ολοκληρωμένο κύκλωμα το οποίο διαθέτει επεξεργαστή, μνήμη, διάφορα

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014

ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014 ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014 Καθηγητής:Νικολαΐδης Νικ. ΑΠΑΝΤΗΣΕΙΣ Ημ/νία εξέτασης:30-6-2014 ΘΕΜΑ 1 α) Να σχεδιαστεί μία μνήμη ROM που να δίνει στις εξόδους της το πλήθος των ημερών του

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ 4 ο Μάθημα. Το Υλικό του Υπολογιστή

ΠΛΗΡΟΦΟΡΙΚΗ 4 ο Μάθημα. Το Υλικό του Υπολογιστή ΠΛΗΡΟΦΟΡΙΚΗ 4 ο Μάθημα Το Υλικό του Υπολογιστή Ηλεκτρονικός Υπολογιστής Πουλιέται οπουδήποτε (ακόμη και σε Super Market) Είναι παντού Ο φορητός έχει τις ίδιες δυνατότητες με τον επιτραπέζιο Γίνονται μικρότεροι

Διαβάστε περισσότερα

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΦΩΤΙΑ ΗΣ Α. ΗΜΗΤΡΗΣ M.Sc. ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ ΙΑΚΟΠΕΣ (INTERRUPTS) ΟΙ ΙΑΚΟΠΕΣ ΕΙΝΑΙ «ΣΥΜΒΑΝΤΑ», ΕΣΩΤΕΡΙΚΑ

Διαβάστε περισσότερα

; Οι HL δείχνουν την επόµενη θέση µνήµης MVI A, 38H CMP H JNZ DO_FLMEM ; POP B. ; Ανάκτηση καταχωρητών απο το σωρό.

; Οι HL δείχνουν την επόµενη θέση µνήµης MVI A, 38H CMP H JNZ DO_FLMEM ; POP B. ; Ανάκτηση καταχωρητών απο το σωρό. ΑΣΚΗΣΗ 1 η 1. Να γραφεί πρόγραµµα σε µνηµονική γλώσσα assembly 8085, υπό µορφή υπορουτίνας, (µε τις απαραίτητες αρχικοποιήσεις), που να γεµίζει τις θέσεις µνήµης RAM από 3400-37FF Hex, µε περιεχόµενα αυξηµένα

Διαβάστε περισσότερα

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

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1.1 ΕΙΣΑΓΩΓΙΚΗ ΑΝΑΦΟΡΑ ΣΤΑ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ 1 1.1.1 Σήματα ψηφιακών συστημάτων 1 1.1.2 Παράλληλη και σειριακή μεταφορά πληροφορίας 2 1.1.3 Λογική τριών

Διαβάστε περισσότερα

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

Διαβάστε περισσότερα

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

Συστήματα Μικροϋπολογιστών Συστήματα Μικροϋπολογιστών Συστήματα Διακοπών Υπεύθυνος Μαθήματος: K. ΠΕΚΜΕΣΤΖΗ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

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

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας, Μικροεπεξεργαστές Σημειώσεις Μαθήματος 2013-14 Υπεύθυνος: Δρ Άρης Παπακώστας, Η γλώσσα assembly είναι μια γλώσσα προγραμματισμού χαμηλού επιπέδου για συγκεκριμένους υπολογιστές ή άλλη προγραμματιζόμενη

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών Άσκηση 1 (σύνοψη της εκφώνησης) [Εκτέλεση λογικών πράξεων]

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

Διαβάστε περισσότερα

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4 Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφάλαιο 7.4 Ε/Ε Οδηγούμενη από Διακοπές Το πρόβλημα με την προγραμματιζόμενη Ε/Ε είναι ότι ο επεξεργαστής πρέπει να περιμένει ώστε η μονάδα Ε/Ε που τον ενδιαφέρει

Διαβάστε περισσότερα

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας

Κεντρική Μονάδα Επεξεργασίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί

Διαβάστε περισσότερα

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχιτεκτονική Eckert-von Neumann εισόδου μεταφορά δεδομένων από έξω προς τον Η/Υ εξόδου μεταφορά δεδομένων από τον Η/Υ προς τα έξω ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Κύκλος Μηχανής κεντρικός έλεγχος/πράξεις

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 5: Εξωτερικές διακοπές του 8051

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 5: Εξωτερικές διακοπές του 8051 Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών Βοήθημα εκτέλεσης εργαστηριακής άσκησης 5: Εξωτερικές διακοπές του 8051 Ο κώδικας για την παρούσα εργαστηριακή άσκηση σας δίδεται κατά το μεγαλύτερο μέρος

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

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

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης Υπολογιστές Ι Εισαγωγή Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία Το 1944 με την κατασκευή του υπολογιστή Mark I από τον Howard Aiken και την εταιρεία κατασκευής ηλεκτρονικών υπολογιστών IBM και από το 1950 μπήκανε

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 3: Καταχωρητές, Τμήματα, Διευθυνσιοδότηση Μνήμης, SEGMENT, MOV, ADD, SUB, INT, TITLE, LEA

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 5: Εντολές αλλαγής ροής. Διακλάδωση χωρίς συνθήκη. Διακλάδωση με συνθήκη. Δρ. Μηνάς Δασυγένης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Συστήματα Μικροϋπολογιστών. Παραδείγματα χρήσης διαδικασιών Εισόδου Εξόδου δεδομένων στον με 8085

Συστήματα Μικροϋπολογιστών. Παραδείγματα χρήσης διαδικασιών Εισόδου Εξόδου δεδομένων στον με 8085 Συστήματα Μικροϋπολογιστών Παραδείγματα χρήσης διαδικασιών Εισόδου Εξόδου δεδομένων στον με 8085 Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

Διαβάστε περισσότερα

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο AEN ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΠΛΟΙΑΡΧΩΝ Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο ΘΕΩΡΙΑ 3 η Διάλεξη ΧΑΣΑΝΗΣ ΒΑΣΙΛΕΙΟΣ ΥΠΟΛΟΓΙΣΤΙΚΟ ΣΥΣΤΗΜΑ Υπολογιστικό σύστημα: Ένα δυναμικό σύστημα που: Χρησιμοποιείται για επίλυση προβλημάτων

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΠΛΗ-21

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΠΛΗ-21 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΠΛΗ-21 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΑΣΚΗΣΕΙΙΣ ΓΡΑΠΤΩΝ ΕΡΓΑΣΙΙΩΝ & ΘΕΜΑΤΩΝ ΕΞΕΤΑΣΕΩΝ ΣΥΝΤΕΛΕΣΤΕΣ

Διαβάστε περισσότερα

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών Θ. Ζαχαριάδης Αν. Καθηγητής Λ. Σαράκης Καθ. Εφαρμογών CMP REG, memory memory, REG REG, REG memory, immediate REG, immediate Compare. operand1 - operand2 result is not stored anywhere, flags are set (OF,

Διαβάστε περισσότερα

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου Οργάνωση Η/Υ Ο Επεξεργαστής TRN Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου ΚMΕ Κυριότεροι Καταχωρητές της ΚΜΕ του υπολογιστή TRN IR (20 bits) X (20 bits) I

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 121 ΕΡΓΑΣΤΗΡΙΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΝΗΜΗ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΗ ΛΟΓΙΚΗ ΥΠΕΥΘΥΝΟΣ ΕΡΓΑΣΤΗΡΙΩΝ: ΧΡΥΣΟΣΤΟΜΟΣ ΧΡΥΣΟΣΤΟΜΟΥ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2001 ΕΠΛ 121 ΕΡΓΑΣΤΗΡΙΑ ΨΗΦΙΑΚΩΝ

Διαβάστε περισσότερα

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

Συστήματα Μικροεπεξεργαστών Εργαστήριο 1 ο Εισαγωγή στον AVR Περίγραμμα Εργαστηριακής Άσκησης Εισαγωγή... 2 Κατηγορίες μικροελεγκτών AVR... 2 Εξοικείωση με το περιβάλλον AVR Studio 4... 3 Βήμα 1ο: Δημιουργία νέου έργου (project)...

Διαβάστε περισσότερα

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου ΚΕΦΑΛΑΙΟ 1 Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου Υπολογιστικά συστήματα σχεδιάστηκαν για να καλύψουν συγκεκριμένες ανάγκες σε συγκεκριμένη χρονική στιγμή και βοηθούν στη συνολική πρόοδο της τεχνολογίας Φουκαράκη

Διαβάστε περισσότερα

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

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 2: Βασικές αρχές λειτουργίας και χρήσης του υπολογιστή Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Διαβάστε περισσότερα

Ψηφιακή Λογική Σχεδίαση

Ψηφιακή Λογική Σχεδίαση Ψηφιακή Λογική Σχεδίαση Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το παρόν

Διαβάστε περισσότερα

ΠΑΡΑ ΕΙΓΜΑ 8 ΓΕΝΝΗΤΡΙΑ ΨΕΥ ΟΤΥΧΑΙΩΝ ΑΡΙΘΜΩΝ (PSEUDORANDOM GENERATOR) 8.0 ΓΕΝΙΚΑ

ΠΑΡΑ ΕΙΓΜΑ 8 ΓΕΝΝΗΤΡΙΑ ΨΕΥ ΟΤΥΧΑΙΩΝ ΑΡΙΘΜΩΝ (PSEUDORANDOM GENERATOR) 8.0 ΓΕΝΙΚΑ ΠΑΡΑ ΕΙΓΜΑ 8 ΓΕΝΝΗΤΡΙΑ ΨΕΥ ΟΤΥΧΑΙΩΝ ΑΡΙΘΜΩΝ (PSEUDORANDOM GENERATOR) 8. ΓΕΝΙΚΑ Στο παράδειγµα αυτό θα εξοµοιώσουµε ένα Hardware µοντέλο µιας ψευδοτυχαίας γεννήτριας αριθµών χρησιµοποιώντας τις εντολές

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α' ΛΥΚΕΙΟΥ ΕΝΟΤΗΤΑ 1η ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ 1. Τι ονομάζουμε υλικό και τι λογισμικό ενός υπολογιστικού συστήματος; 2. Τι είναι α) η μητρική πλακέτα ( motherboard), β) η κεντρική μονάδα

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 2: Καταχωρητές, HelloWorld σε 8086, emu8086 emulator Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να Κεεφάάλλααι ιοο:: 3Β ο Τίττλλοοςς Κεεφααλλααί ίοουυ: : Αρχιτεκτονική Ηλ/κου Τµήµατος των Υπολ. Συστηµάτων (Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να αναφέρετε τις τιµές των

Διαβάστε περισσότερα

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών Θ. Ζαχαριάδης Αν. Καθηγητής Λ. Σαράκης Καθ. Εφαρμογών Στον debugger που χρησιμοποιούμε στο εργαστήριο, όταν γράφουμε δεκαεξαδικούς αριθμούς που το πιο σημαντικό ψηφίο τους είναι Α-F βάζουμε μπροστά από

Διαβάστε περισσότερα

Περιεχόµενα. I Βασικές Γνώσεις 1

Περιεχόµενα. I Βασικές Γνώσεις 1 Περιεχόµενα I Βασικές Γνώσεις 1 1 Μοντελοποίηση Προγραµµάτων 3 1.1 Ψευδογλώσσα....................... 6 1.2 Διαγράµµατα Ροής..................... 6 1.3 Παραδείγµατα σε Ψευδογλώσσα και Διαγράµµατα Ροής.

Διαβάστε περισσότερα

Ελίνα Μακρή

Ελίνα Μακρή Ελίνα Μακρή elmak@unipi.gr Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D,

Διαβάστε περισσότερα

Το υλικό του υπολογιστή

Το υλικό του υπολογιστή Το υλικό του υπολογιστή Ερωτήσεις 1. Τι αντιλαμβάνεστε με τον όρο υλικό; Το υλικό(hardware) αποτελείται από το σύνολο των ηλεκτρονικών τμημάτων που συνθέτουν το υπολογιστικό σύστημα, δηλαδή από τα ηλεκτρονικά

Διαβάστε περισσότερα

Συμβολική Γλώσσα στον ΑΒΑΚΑ

Συμβολική Γλώσσα στον ΑΒΑΚΑ Συμβολική Γλώσσα στον ΑΒΑΚΑ Τα προγράμματα που είναι γραμμένα σε γλώσσα μηχανής (machine language) περιέχουν τόσο τις εντολές όσο και τις διευθύνσεις μνήμης γραμμένες σε αριθμητική μορφή και μάλιστα στο

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Λογικά σύμβολα των CPU, RAM, ROM και I/O module

Λογικά σύμβολα των CPU, RAM, ROM και I/O module Μικροϋπολογιστές Λογικά σύμβολα των CPU, RAM, ROM και I/O module Data CPU Data Data Address RAM Control Address Control External Data Data Address Control I/O module External Data External Control ROM

Διαβάστε περισσότερα

Μάθημα 7: Μικροϋπολογιστικό Σύστημα και Μνήμες

Μάθημα 7: Μικροϋπολογιστικό Σύστημα και Μνήμες Μάθημα 7: Μικροϋπολογιστικό Σύστημα και Μνήμες 7.1 Αρχιτεκτονική μνημών σε υπολογιστικό σύστημα Σε ένα υπολογιστικό σύστημα υπάρχουν συνήθως περισσότερες από μία μνήμες. Επειδή η χωρητικότητα ενός μόνο

Διαβάστε περισσότερα

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

ΜΑΘΗΜΑ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ ΜΑΘΗΜΑ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΕΞΕΤΑΣΕΩΝ ΙΑΝΟΥΑΡΙΟΥ 2011 Καθηγητής: Νικολαΐδης Νικ. Ημ/νία εξέτασης: 28-1-2011 ΘΕΜΑ 1 Να σχεδιαστεί μία μνήμη ROM που να περιέχει το κείμενο "MICRO". Ο ASCII κωδικός

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

8051 Interrupt Ports. Name Alternate Function

8051 Interrupt Ports. Name Alternate Function Σκοπόςτης Διάλεξης Εισαγωγήστις πηγές διακοπών (interrupts) και στον τρόπο που αυτές είναι διαχειρίσιμες από την αρχιτεκτονική 8051 Πώς συνδέονται οι διακόπτες και τα πληκτρολόγια σε ένα μικροϋπολογιστή

Διαβάστε περισσότερα

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μελετώντας το μάθημα θα μπορείς να ξέρεις τη λειτουργία του Polling να ξέρεις

Διαβάστε περισσότερα

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Πρόγραμμα σε γλώσσα μηχανής του ΕΚΥ Θέση μνήμης Περιεχόμενα μνήμης Εντολή (assembly) 0 0001 000000000011 lda 3 1 0011 000000000100 ada

Διαβάστε περισσότερα

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual MILE Simulator Version 1.0 User's Manual Νοέμβριος, 2011 Περιεχόμενα 1. Εισαγωγή στον προσομοιωτή...2 1.1 Εγκατάσταση...2 1.2 Βοήθεια Διευκρινήσεις...2 2. Ξεκινώντας με τον προσομοιωτή...3 2.1 Το memory

Διαβάστε περισσότερα

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή 8.1 Τακτική σάρωση (Polling) Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο συνδεδεμένο σε ένα υπολογιστικό σύστημα. Το πληκτρολόγιο είναι μια μονάδα εισόδου.

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ 4 ο Εξάμηνο Μαδεμλής Ιωάννης MSc Ηλεκτρονικός Φυσικός Αντικείμενο: ΠΡΟΦΙΛ ΜΑΘΗΜΑΤΟΣ Προγραμματισμός σε γλώσσα Assembly Σκοπός: Γνώση της assembly από τους απόφοιτους του τμήματος

Διαβάστε περισσότερα

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

Διαβάστε περισσότερα

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) Δείγμα Τελικής Εξέτασης στο ΗΜΥ213 Διδάσκοντας: Γιώργος Ζάγγουλος Οδηγίες Διαβάστε Προσεκτικά! Αυτή η εξέταση γίνεται με

Διαβάστε περισσότερα