Εκπαιδευτικές ασκήσεις στη συμβολική γλώσσα του ARM Cortex M4 για Μικροελεγκτές Kinetis K70

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

Download "Εκπαιδευτικές ασκήσεις στη συμβολική γλώσσα του ARM Cortex M4 για Μικροελεγκτές Kinetis K70"

Transcript

1 ΑΤΕΙ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΜΟΦΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Εκπαιδευτικές ασκήσεις στη συμβολική γλώσσα του ARM Cortex M4 για Μικροελεγκτές Kinetis K7 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Καραπλής Ιωάννης (ΑΜ: Τ-1272) Επιβλέπων καθηγητής: Πετρέλλης Νικόλαος, Επίκουρος Καθηγητής Λάρισα 214 1

2 2

3 «Εγώ ο Καραπλής Ιωάννης, δηλώνω υπεύθυνα ότι η παρούσα Πτυχιακή Εργασία με τίτλο [Εκπαιδευτικές ασκήσεις στη συμβολική γλώσσα του ARM Cortex M4 για Μικροελεγκτές Kinetis K7] είναι δική μου και βεβαιώνω ότι: Σε όσες περιπτώσεις έχω συμβουλευτεί δημοσιευμένη εργασία τρίτων, αυτό επισημαίνεται με σχετική αναφορά στα επίμαχα σημεία. Σε όσες περιπτώσεις μεταφέρω λόγια τρίτων, αυτό επισημαίνεται με σχετική αναφορά στα επίμαχα σημεία. Με εξαίρεση τέτοιες περιπτώσεις, το υπόλοιπο κείμενο της πτυχιακής αποτελεί δική μου δουλειά. Αναφέρω ρητά όλες τις πηγές βοήθειας που χρησιμοποίησα. Σε περιπτώσεις που τμήματα της παρούσας πτυχιακής έγιναν από κοινού με τρίτους, αναφέρω ρητά ποια είναι η δική μου συνεισφορά και ποια των τρίτων. Γνωρίζω πως η λογοκλοπή αποτελεί σοβαρότατο παράπτωμα και είμαι ενήμερος για την επέλευση των νομίμων συνεπειών» -ο- ΔΗΛΩΝ Καραπλής Ιωάννης 3

4 4

5 Εγκρίθηκε από την τριμελή εξεταστική επιτροπή Τόπος: Ημερομηνία: ΕΠΙΤΡΟΠΗ ΑΞΙΟΛΟΓΗΣΗΣ

6 6

7 Περίληψη Στα πλαίσια της πτυχιακής αυτής εργασίας αναπτύσσονται εκπαιδευτικές ασκήσεις αυξανόμενης δυσκολίας για επεξεργαστές ARM Cortex M4. Οι ασκήσεις αυτές αναπτύσσονται σε γλώσσα Assembly για επεξεργαστές τύπου ARM και επαληθεύονται στο αναπτυξιακό σύστημα της Freescale Kinetis K7. Σε κάθε εργαστήριο δίνονται παραδείγματα έτοιμου κώδικα, ο οποίος μπορεί να φορτωθεί στο αναπτυξιακό σύστημα. Σκοπός είναι η ομαλή εξοικείωση του φοιτητή με το αναπτυξιακό σύστημα καθώς και με την Assembly. Κάθε κεφάλαιο περιέχει θεωρία, επεξήγηση των εντολών που χρησιμοποιούνται στον κώδικα, κώδικα για εκπαίδευση και εξάσκηση μέσα στο εργαστήριο, καθώς και άλυτες ασκήσεις για να γίνει πρακτική εφαρμογή και περεταίρω κατανόηση του κεφαλαίου. 7

8 8

9 Ευχαριστίες Θα ήθελα να ευχαριστήσω τον κύριο Πετρέλλη για την καθοδήγηση του καθώς και την οικογένεια μου για την υποστήριξη τους όλο αυτό το διάστημα. Καραπλής Ιωάννης [Ημερομηνία --/--/214] 9

10 1

11 Πίνακας περιεχομένων ΠΕΡΙΛΗΨΗ... 7 ΕΥΧΑΡΙΣΤΙΕΣ ΕΙΣΑΓΩΓΗ Ο Μικροελεγκτής TWR-K7F12M Περιεχόμενα Χαρακτηριστικά του TWR-K7F12M Περιγραφή Hardware Σετ Εντολών (Instruction Set) Το περιβάλλον ανάπτυξης CodeWarrior ΕΡΓΑΣΤΗΡΙΟ 1: ΕΙΣΑΓΩΓΗ ΣΤΟ K7 BAREBOARD & CODEWARRIOR Στόχοι του εργαστηρίου Κριτήρια Επιτυχούς Ολοκλήρωσης του εργαστηρίου Προϋποθέσεις Το σύστημα tower Συναρμολόγηση του Tower System Χειρισμός του Tower System CodeWarrior 1.5 IDE Δημιουργία Project Εισαγωγή κώδικα, μετάφραση και μεταφόρτωση Επεξήγηση εντολών Εργασίες: Εργασία Εργασία ΕΡΓΑΣΤΗΡΙΟ 2: ΚΑΤΑΧΩΡΗΤΕΣ ΤΟΥ TWR-K7F12M Στόχοι του εργαστηρίου Κριτήρια Επιτυχούς Ολοκλήρωσης του εργαστηρίου Προϋποθέσεις

12 3.4 Θεωρία πάνω στους καταχωρητές κατάστασης Οι καταχωρητές Special Registers (R14 & PC) Χρήση του CodeWarrior για να δούμε τους καταχωρητές Μελέτη καταχωρητή κατάστασης Επεξήγηση εντολών Εργασίες: Εργασία Εργασία ΕΡΓΑΣΤΗΡΙΟ 3: ΕΠΕΞΕΡΓΑΣΙΑ ΔΕΔΟΜΕΝΩΝ Στόχοι του εργαστηρίου Κριτήρια Επιτυχούς Ολοκλήρωσης του εργαστηρίου Προϋποθέσεις Condition Codes Εντολές διακλάδωσης Πράξεις Σύγκρισης Υπό όρους εκτέλεση Λογικές Πράξεις Κώδικας Εργασίες: Εργασία 1: Εργασία 2: ΕΡΓΑΣΤΗΡΙΟ 4: ΑΛΓΟΡΙΘΜΟΣ ΤΑΞΙΝΟΜΗΣΗΣ (BUBBLESORT) Στόχοι του εργαστηρίου Κριτήρια Επιτυχούς Ολοκλήρωσης του εργαστηρίου Προϋποθέσεις Αλγόριθμος ταξινόμησης φυσαλίδας Αποθήκευση μεταβλητών στην μνήμη Εργασίες: Εργασία 1: Εργασία 2:

13 6. ΠΑΡΑΡΤΗΜΑ: ΛΥΣΕΙΣ ΑΣΚΗΣΕΩΝ Εργαστήριο Άσκηση Άσκηση Εργαστήριο Άσκηση Άσκηση Εργαστήριο Άσκηση Άσκηση Εργαστήριο Άσκηση Άσκηση ΠΗΓΕΣ

14 1. Εισαγωγή 1.1 Ο Μικροελεγκτής TWR-K7F12M To TWR-K7F12M είναι μια πλακέτα ανάπτυξης για τους Μικροελεγκτές (MCU s) Κ7. Ο μικροελεγκτής TWR-K7F12M περιέχει 32-bit επεξεργαστή ARM Cortex-M4. To TWR- K7F12M λειτουργεί στα 12MHz σε θερμοκρασίες -4C έως 85C. Σε θερμοκρασία δωματίου μπορεί να γίνει over-clocked στα 15 MHZ. Το TWR-K7F12M είναι ένα Tower Controller Module συμβατό με το Tower System της Freescale. Μπορεί να χρησιμοποιηθεί σαν αυτόνομη, μικρού κόστους πλακέτα για την αξιολόγηση των K7 μικροελεγκτικών συσκευών. Μπορεί όμως να χρησιμοποιηθεί και σαν μέρος KIT (TWR-K7F12M-KIT) με τα Tower Elevator Modules (TWR-ELEV) και το Tower Serial Module (TWR-SER). Μπορεί επίσης να συνδυαστεί με άλλα περιφερειακά modules του Tower System ώστε να μπορούμε να δημιουργήσουμε αναπτυξιακές πλατφόρμες για ένα μεγάλο εύρος εφαρμογών. Εικόνα 1: Freescale Tower System 1.2 Περιεχόμενα To TWR-K7F12M περιέχει τα ακόλουθα: TWR-K7F12M board assembly Καλώδιο USB 3 ποδιών (1 μέτρο) DVD με οδηγούς εγκατάστασης και εγχειρίδια χρήσης Οδηγό γρήγορης εκκίνησης 14

15 To TWR-K7F12M-KIT περιέχει τα ακόλουθα: Μονάδα TWR-K7F12M MCU TWR-ELEV Πρωτεύον και Δευτερεύον μονάδα «Elevator» TWR Σειριακό module που περιέχει υποδοχή USB/συσκευή/OTG, Ethernet, Can, RS232 and RS Χαρακτηριστικά του TWR-K7F12M Παρακάτω φαίνονται κάποια από τα χαρακτηριστικά του TWR-K7F12M: Μικροελεγκτής, συμβατός με την μονάδα πύργου MK7FN1MVMJ12: K7FN1M σε ένα 256 MAPBGA με λειτουργία στα12 MHz Υποδοχή για Tower Plug-in αφής Γενικού σκοπού υποδοχή Tower Plug-in (TWRPI) On-board κύκλωμα εντοπισμού σφαλμάτων JTAG (OSJTAG) με οπτική σειριακή θύρα 1Gb DDR2 SDRAM μνήμη 2Gb SLC NAND flash μνήμη Επιταχυνσιόμετρο τριών αξόνων (MMA8451Q) Τέσσερα (4) ελεγχόμενα από τον χρήστη LEDs Τέσσερα (4) capacitive pads αφής Δύο (2) διακόπτες χρήστη (pushbuttons) Ποτενσιόμετρο Θέση μπαταρίας για μπαταρία λιθίου 2mm (e.g. 232, 225) Θήρα Micro-SD Εικόνα 2: Επεξήγηση μπροστινής πλευράς του TWR-K7F12M 15

16 Εικόνα 3: Επεξήγηση της πίσω πλευράς του TWR-K7F12M 1.3 Περιγραφή Hardware To TWR-K7F12M είναι ένα Tower Controller module. Περιέχει τον ΜΚ7FN1MOVMJ12, έναν ARM Cortex-M4 μικροελεγκτή με Γραφικό ελεγκτή LCD, ανιχνευτή προστασίας από παραβίαση, USB 2. ελεγκτή HS, USB 2. πλήρους ταχύτητας OTG ελεγκτή και 1/1 Mbps Ethernet MAC σε ένα 256 MAPBGA πακέτο με μέγιστη συχνότητα λειτουργίας τα 12 MHz. Ένα on-board κύκλωμα εντοπισμού σφαλμάτων, OSJTAG, παρέχει μια JTAG διασύνδεση εντοπισμού σφαλμάτων, μια είσοδο τροφοδοσίας μέσω USB cable. Η εικόνα 4 δείχνει ένα σχηματικό διάγραμμα του TWR-K7F12M. 16

17 Εικόνα 4: Block διάγραμμα του TWR-K7F12M. 1.4 Σετ Εντολών (Instruction Set) Ο επεξεργαστής δέχεται το σετ εντολών του ARMv7. Στον πίνακα (1) φαίνονται οι εντολές που δέχεται ένας Cortex M4, ο τρόπος που γράφονται στην assembly, οι σημαίες που επηρεάζει η κάθε εντολή καθώς και μια γρήγορη εξήγηση του τι κάνουν. 17

18 18

19 1.5 Το περιβάλλον ανάπτυξης CodeWarrior Για την δημιουργία κώδικα θα χρησιμοποιήσουμε το CodeWarrior version 1.5. Διατίθεται από την Freescale και είναι δωρεάν για download από το site της εταιρίας. To CodeWarrior είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE Intergraded Development Environment) για τη δημιουργία του λογισμικού που τρέχει σε μια σειρά ενσωματωμένων συστημάτων. Αυτή τη στιγμή το CodeWarrior επικεντρώνεται στις γλώσσες C, C++ και Assembly. Παλαιότερα οι εκδόσεις του υποστήριζαν μεταγλωττιστές (Compilers) Pascal, Object Pascal, Objective Pascal καθώς και Java. Εμείς στο βιβλίο αυτό θα ασχοληθούμε με την Assembly. 19

20 2. Εργαστήριο 1: Εισαγωγή στο K7 Bareboard & CodeWarrior Στόχοι του εργαστηρίου Εισαγωγή στην χρήση του Kinetis K7 και του CodeWarrior Κριτήρια Επιτυχούς Ολοκλήρωσης του εργαστηρίου Στο τέλος τους εργαστηρίου θα μπορείτε να συνδέσετε το TWR-K7F12M σε Η/Υ, να το συναρμολογήσετε, να ξεκινήσετε ένα project στο CodeWarrior καθώς και να μπορείτε να βρείτε τι τιμές παίρνει ο κάθε καταχωρητής σε μια δεδομένη στιγμή στο CodeWarrior. 2.3 Προϋποθέσεις Να έχετε διαθέσιμο ένα TWR-K7F12M, εγκατεστημένο το CodeWarrior 1.5, βασικές γνώσεις πάνω στην Assembly. 2.4 Το σύστημα tower Το σύστημα Freescale Tower αποτελείται από 2 κάθετες πλακέτες στήριξης (και διασύνδεσης) που ονομάζονται elevators (τον primary και τον secondary). Ανάμεσα σε αυτές τις πλακέτες στήριξης τοποθετούνται η κύρια πλακέτα με τον ελεγκτή (MCU/MPU board) και η πλακέτα με τις σειριακές διασυνδέσεις και τη διασύνδεση δικτύου. Οι δύο πλακέτες στήριξης (elevators) έχουν 4 PCI-E connectors για διασύνδεση μέχρι 4 πλακετών που μπορεί να περιλαμβάνουν κάρτες με οθόνη LCD, κάρτες ήχου κλπ. Κάθε υποδοχή διασυνδέεται με τις υπόλοιπες και για το λόγο αυτό δεν παίζει ρόλο η θέση τοποθέτησης της κάθε κάρτας. Ο πρωτεύον elevator διαθέτει ένα μικρό κύκλωμα που επιτρέπει την τροφοδοσία του Tower system από USB. 2

21 Εικόνα 1: To TWR K7F12M συναρμολογημένο Η κάρτα επεξεργαστή που χρησιμοποιείται σε αυτό το σετ εργαστηριακών ασκήσεων είναι το TWR-K7F12M. Στην κάρτα αυτή διατίθενται ο επεξεργαστής Kinetis PK7FN1M, επιταχυνσιόμετρο, 2 διακόπτες (pushbuttons), 4 διακόπτες αφής, 4 LEDs, και onboard προγραμματιστή που επιτρέπει τον γρήγορο προγραμματισμό μέσω του USB port. Εκτός από τους elevators και την κάρτα επεξεργαστή, το TWR-K7F12M - KIT περιλαμβάνει και την κάρτα TWR-SER. Αυτή η κάρτα παρέχει διασύνδεση USB, Ethernet, CAN, και RS232/485 στο Tower system. 2.5 Συναρμολόγηση του Tower System Το σύστημα μπορεί να συναρμολογηθεί τοποθετώντας την κάρτα επεξεργαστή στην πρωτεύουσα υποδοχή του (πρωτεύον σύνδεσμος που σηματοδοτείται από μια άσπρη γραμμή ή τη λέξη Primary) του TWR-K7F12M στην κορυφαία υποδοχή του πρωτεύον elevator (προτεινόμενη θέση). Εισαγωγή του TWR-SER στην κάτω υποδοχή του πρωτεύον elevator. Στο τέλος τοποθετείται ο δευτερεύον elevator ολοκληρώνοντας τη στήριξη των 2 καρτών. 2.6 Χειρισμός του Tower System Επειδή το σύστημα είναι ελαφρύ μπορεί να μετακινηθεί κατά λάθος εύκολα με κυριότερο κίνδυνο την αποκόλληση του συνδέσμου mini-usβ. 21

22 2.7 CodeWarrior 1.5 IDE Το CodeWarrior 1.3 είναι διαθέσιμο σε πολλές εκδόσεις και σουίτες (suites). Professional, Standard, Basic, Special Edition (free), και evaluation version 3-ημερών. Η Special έκδοση που χρησιμοποιούμε έχει περιορισμό στο μέγιστο επιτρεπτό μέγεθος κώδικα και δεδομένων. Για την οικογένεια Kinetis, ο περιορισμός είναι 128KB. Η Special έκδοση μπορεί να ληφθεί από τη σελίδα της Freescale. 2.8 Δημιουργία Project Ξεκινάμε ανοίγοντας το CodeWarrior IDE (Start > Programs > Freescale CodeWarrior > CW for MCU v1.x > CodeWarrior). Μόλις ξεκινήσει πρέπει να δημιουργήσουμε ένα project πριν κάνουμε οτιδήποτε άλλο. Το project περιέχει όλες τις ρυθμίσεις καθώς και τον κώδικα μαζί με τις βιβλιοθήκες που χρειάζονται για να φτιαχτεί με επιτυχία το πρόγραμμα μας. Στον επόμενο διάλογο διαλέγουμε που θέλουμε να δημιουργηθεί το project μας. Το αποθηκεύουμε στην τοποθεσία C:\Users\[User_Name]\workspace\[Txxxxx] όπου Txxxxx είναι ο αριθμός της φοιτητικής σας ταυτότητας. Εικόνα 1: Workspace Launcher window Διαλέγουμε New MCU Project από το Commander View όπως φαίνεται παρακάτω. 22

23 Εικόνα 2: Αρχική οθόνη του CodeWarrior Εδώ θα δημιουργήσουμε το καινούργιο Project. Βάζουμε το όνομα του Project (πχ. Project_1) στο πεδίο Project name και επιλέγουμε ΟΚ. Εικόνα 3: New Bareboard Project Window Το πεδίο location δείχνει στην προεπιλεγμένη θέση του Project. Αν θέλουμε μπορούμε να μην επιλέξουμε το Use default location και να ορίσουμε εμείς που θέλουμε να το αποθηκεύσουμε. 23

24 Επιλέγουμε Next και εμφανίζεται η σελίδα Συσκευών. Εδώ μπορούμε να επιλέξουμε ποια συσκευή θα συνδέσουμε για να κάνουμε το debugging. Θα επιλέξουμε το MK7FN1M που βρίσκεται κάτω από την οικογένεια Κ7 στην 12MHz οικογένεια. Εικόνα 4: Devices Window Πατώντας το Next εμφανίζεται η σελίδα συνδέσεων όπου επιλέγουμε τον τρόπο σύνδεσης που θα διαλέξουμε. Επιλέγουμε το P&E USB Multilink Universal [FX] / USB Multilink εφόσον η σύνδεση θα γίνει με USB. 24

25 Εικόνα 5: Connections Window Στην συνέχεια το Language and Build Tools Options menu. Εδώ επιλέγουμε την γλώσσα που θα χρησιμοποιήσουμε που θα είναι η Assembly (ASM). Στην συνέχεια το floating point* όπου θα επιλέξουμε το Hardware και τέλος το Freescale για ARM 25

26 Build Tool. Εικόνα 6: Languages and Build Options Window * Floating Point: Δηλώνει έναν τρόπο αντιπροσώπευσης την αριθμών ως δύο ακολουθίες δυαδικών ψηφίων, το ένα αντιπροσωπεύει τα ψηφία του αριθμού και το άλλο έναν εκθέτη που καθορίζει την θέση του σημείου Radix [, ]. 26

27 Τέλος επιλέγουμε Rapid Application Development & Use current Perspective και πατάμε Finish. Εικόνα 7: Rapid Application Development Window Τώρα στο πεδίο Projects μπορείτε να δείτε το Project που δημιουργήσατε. Για να γράψουμε τον κώδικα μας, επεκτείνουμε το Sources (expand) και στην συνέχεια κάνουμε click στο αρχείο main.s. 27

28 Εικόνα 8: CodeWarrior Projects Pane 28

29 2.9 Εισαγωγή κώδικα, μετάφραση και μεταφόρτωση Παρακάτω δίνεται έτοιμος κώδικας για να δούμε πως γίνεται η μεταφόρτωση στον επεξεργαστή, πως εκτελείται βηματικά το πρόγραμμα και πως παίρνουν τιμές οι καταχωρητές κάνοντας χρήση απλών εντολών της Assembly. Στο αρχείο main.s επιλέξτε όλο τον κώδικα και αντικαταστήστε τον με τον παρακάτω: main: MOV r, #15 ;E Δίνουμε την τιμή 15 στον Register MOV r1, #2 ;E1 ADD r,r,r1 ;E2 Προσθέτουμε στον R την τιμή του R1 MOV r3, #3 ;E3 SUB r4, r3, #1 ;E4 Αφαιρούμε από την τιμή του R3 1 και το ;αποτέλεσμα το αποθηκεύουμε στον R4 MOV R5, R4 ;E5 LDR R6, [R2, R4] ;E6 LDR: Load a word or bite BL firstfunction SWI x11 ; Call subroutine with name firstfunction ; Terminate firstfunction: ;Subroutine ADD R, R, R1 ;E7 MOV PC, LR ;E8 Returns from the subroutine.end.align 2.L3:.word.LC.end 29

30 Αφού εισάγετε τον κώδικα πάμε στο μενού και επιλέγουμε RUN > Debug ή αλλιώς πατάμε F11. Τώρα ο κώδικας μας περνιέται και στην πλακέτα. Κάτω δεξιά βλέπουμε την Progress Bar. Στην συνέχεια πατήστε το κουμπί Step Into (F5) και ο κώδικας θα εκτελεστεί βηματικά. Στο πεδίο Registers μπορούμε να δούμε τι τιμές θα πάρει ο κάθε καταχωρητής μετά από την εκτέλεση κάθε εντολής. Για παράδειγμα μετά την εκτέλεση της πρώτης εντολής θα δείτε το παρακάτω αποτέλεσμα: Και στο πεδίο Disassembly μπορούμε να παρατηρήσουμε τον κώδικα πως διαβάζεται σε γλώσσα assembly: 3

31 2.1 Επεξήγηση εντολών Στο παραπάνω παράδειγμα είδαμε κάποιες εντολές σε γλώσσα Assembly. Εδώ θα δούμε τι ακριβώς κάνουν και πως συντάσσονται. MOV ADD SUB LDR BL SWI MOV [dest], [rhs] H εντολή MOV μεταφέρει την τιμή του [rhs] στον καταχωρητή [dest]. MOV R, R1 ;Put R1 in R MOV R1, #&8 ;Set R1 to 128 ADD(condition)(s) [dest], [lhs], [rhs] H εντολή ADD αποθηκεύει στον [dest] καταχωρητή την τιμή της πρόσθεσης του [lhs] με τον [rhs]. To S, εάν υπάρχει, προκαλεί την αλλαγή του result flag. Εάν δεν υπάρχει τότε δεν υπάρχει καμία αλλαγή. Conditions δεν είναι υποχρεωτικό να υπάρχουν, αν δεν υπάρχουν πάντως θεωρούμε πάντα ότι είναι AL που σημαίνει Always. ADD R, R1, R2 ;R = R1 + R2 ADD R, R, #&8 ;R = R SUB [dest], [lhs], [rhs] Η εντολή SUB αφαιρεί από την τιμή του [lhs] την τιμή του [rhs] και αποθηκεύει το αποτέλεσμα στον καταχωρητή [dest] SUB R, R1, R2 ;R = R1 R2 SUB R, R1, #&8 ;R = R1 128 LDR <register>, [<expression label expression] H εντολή LDR φορτώνει (load) στον register τις τιμές δύο άλλων καταχωρητών στη σειρά. BL(cond) label Branch with link, H εντολή αυτή αντιγράφει την διεύθυνση της επόμενης εντολής στο LR (R14, the link register). To label είναι μια PC- Relative έκφραση όπως μια συνάρτηση. Στην περίπτωση του παραδείγματος κάνει ακριβώς αυτό. Καλεί την συνάρτηση firstfunc. BL(condition) (.W) (label) SWI <function number> H εντολή SWI ή αλλιώς Software Interrupt Instruction χρησιμοποιείται για μπει σε Supervisor Mode, συνήθως για να ζητήσει κάποια συνάρτηση. SWI x11 31

32 Εργασίες: Εργασία 1 Εκτελέστε βηματικά το παραπάνω πρόγραμμα και καταγράψτε το περιεχόμενο των καταχωρητών R1 R6, PC μετά την εκτέλεση κάθε εντολής Ε1 Εn (εντολή 1 έως n). E E1 E2 E3 E4 E5 E6 E7 E8 R R1 R2 R3 R4 R5 R6 PC Εργασία 2 Φτιάξτε κώδικα μέσα στην main που να δίνει τις παρακάτω τιμές στους 4 καταχωρητές R- R3, και να κάνει τις παρακάτω πράξεις: (R = 1, R1 = 2, R2 = 4, R3 = 3) ADD R1, R2 ;E1 SUB R2, R3, R2 ;E2 MOV R1, R3 ;E3 MOV R2, #21 ;E4 ADD R3, R ;E5 Τρέξτε τις παραπάνω πράξεις και συμπληρώστε τον παρακάτω πίνακα: E E1 E2 E3 E4 E5 R R1 R2 R3 32

33 3. Εργαστήριο 2: Καταχωρητές του TWR-K7F12M 3.1 Στόχοι του εργαστηρίου Γνωριμία με τους καταχωρητές και παραδείγματα για την εύρεση τους στο CodeWarrior Κριτήρια Επιτυχούς Ολοκλήρωσης του εργαστηρίου Στο τέλος τους εργαστηρίου θα γνωρίζετε ποιοι είναι οι καταχωρητές, πως δουλεύουν, τι ιδιαιτερότητες υπάρχουν, τι πληροφορίες περιέχουν καθώς και πώς να βρείτε αυτές τις πληροφορίες στο CodeWarrior. 3.3 Προϋποθέσεις Γνώση δημιουργίας project, μεταφόρτωσης στον επεξεργαστή για debugging, καθώς και των εντολών του πρώτου εργαστηρίου (mov, add και sub). 3.4 Θεωρία πάνω στους καταχωρητές κατάστασης Το διάγραμμα παρακάτω δείχνει πως o επεξεργαστής (CPU) μπαίνει στο όλο σύστημα. Παρότι είναι ένα πολύ απλό διάγραμμα δείχνει τα τρία βασικά εξαρτήματα και πως αυτά συνδέονται. Από τον επεξεργαστή απορρέουν δύο δίαυλοι. Το πρώτο είναι το Data Bus που μεταφέρει πληροφορίες (data) από και προς τον επεξεργαστή. Το δεύτερο είναι το Address Bus. Το Address Bus δημιουργείται από τον επεξεργαστή για να πει στις υπόλοιπες συσκευές (memory & input/output) ποια συγκεκριμένη πληροφορία χρειάζεται. Οι δίαυλοι αυτοί ουσιαστικά είναι ένα σετ καλωδίων που μεταφέρουν σήματα. Οι δίαυλοι λέμε ότι έχουν συγκεκριμένο πλάτος (width). Για έναν δεδομένο επεξεργαστή το πλάτος αυτό είναι συνήθως σταθερό. Οι πιο συνηθισμένες τιμές πλάτους είναι 8,16 και 32 bits. Στον ΑΡΜ το Data Bus έχει πλάτος 32 bits (δηλαδή υπάρχουν 32 ξεχωριστά σήματα για μεταφορά δεδομένων) και γι αυτό ονομάζεται 32-bit μηχάνημα. Όσο πιο μεγάλο είναι το Data Bus τόσο μεγαλύτερο είναι το πλήθος των εντολών που μπορεί να επεξεργαστεί σε ένα πέρασμα ο επεξεργαστής. 33

34 Το Address Bus του ARM μπορεί να μεταφέρει 26 σήματα. Όσο πιο μεγάλο είναι το πλάτος του, τόσο περισσότερη μνήμη μπορεί να χρησιμοποιήσει ο υπολογιστής. Όταν οι πληροφορίες μεταφέρονται στον επεξεργαστή μέσω του διαύλου δεδομένων από την μνήμη πάνε στο λεγόμενο Register Bank (Τράπεζα Καταχωρητών). Ένας καταχωρητής είναι μια θέση αποθήκευσης παρόμοια με μια θέση μνήμης. Στον ARM όλοι οι καταχωρητές είναι μήκους 32bits. Υπάρχουν αρκετές διαφορές όμως μεταξύ ενός καταχωρητή και μιας θέσης μνήμης. Θα αναφέρουμε τρείς βασικές: Πρώτον οι καταχωρητές δεν είναι Memory Mapped που σημαίνει ότι δεν έχουν 26-bit διευθύνσεις όπως οι υπόλοιπες θέσεις αποθήκευσης οι input/output συσκευές στον ARM. Δεύτερον βρίσκονται μέσα στο CPU Chip και η προσπέλαση των περιεχομένων τους μπορεί να γίνει πολύ γρήγορα από τον επεξεργαστή. Σχεδόν όλες οι λειτουργίες στον ARM περιέχουν την χρήση καταχωρητών. Για παράδειγμα εντολή ADD προσθέτει δύο 32-bit αριθμούς και παράγει ένα 32-bit αποτέλεσμα. Και οι δύο αριθμοί που προστίθενται καθώς και το αποτέλεσμα ορίζονται ως ARM καταχωρητές. Τρίτον οι καταχωρητές είναι πολύ λιγότεροι από τις θέσεις μνήμης. 3.5 Οι καταχωρητές Ο ARM έχει 16 καταχωρητές μήκους 32-bit που μπορούν να χρησιμοποιηθούν σε κάθε εντολή χωρίς κανένα περιορισμό. Οι Πρώτοι 14 καταχωρητές είναι Undedicated που σημαίνει ότι δεν υπάρχει κάποια συγκεκριμένη χρήση. Ο 16 ος είναι Dedicated που σημαίνει ότι ο ARM χρησιμοποιεί τον συγκεκριμένο καταχωρητή για συγκεκριμένη λειτουργία και το 15 ος είναι μερικώς-δεσμευμένος. Register R R1 R2 R3 R4 R5 R6 R7 R8 R9 R1 R11 R12 R13 R14 R15 Dedication / Purpose Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Undedicated, Γενικού σκοπού Semi-Dedicated, Γενικού σκοπού (Link) Dedicated, Γενικού σκοπού (PC) 34

35 3.5.1 Special Registers (R14 & PC) Οι καταχωρητές R14 και R15 είναι ελαφρός διαφορετικοί από τους υπόλοιπους. Ο R14 τις περισσότερες φορές είναι ελεύθερος για να τον χρησιμοποιήσει ο χρήστης όπως επιθυμεί. Υπάρχει όμως μια εντολή (Branch with link) που χρησιμοποιεί τον R14 για να κρατήσει ένα αντίγραφο του PC. Εκείνη τη στιγμή ο R14 είναι dedicated. Ο R15 χρησιμοποιείται από τον ARM για να αποθηκεύει το Program Counter και το Status Register όπως φαίνεται παρακάτω: Result Status System ProgramCounter Status N Z C V I F PC S1 S Τα bit 2 έως 25 είναι το Program Counter (PC). Εκεί αποθηκεύεται η διεύθυνση της επόμενης εντολής που θα πρέπει να κληθεί. N Negative result flag Z Zero result flag C Carry flag V Overflowed flag I Interrupt disable flag (IRQ) F Fast interrupt disable flag S1 Processor Mode 1 S Processor Mode S1 S Mode User 1 FIQ or Fast Interrupt 1 IRQ or Interrupt 1 1 SVC or Supervisor Εμάς θα μας απασχολήσει κυρίως το User Mode. Τα υπόλοιπα modes είναι του συστήματος και χρησιμοποιούνται από προγράμματα που είναι ήδη γραμμένα στο σύστημα. Program Counter: Holds the word address of the next instruction to be fetched Result status: Outcome of previous operations System status: Operating modes the ARM may be set (only care about user mode) Όπως βλέπουμε η κάθε σημαία αποθηκεύεται σε ένα bit, επομένως μπορεί να πάρει δύο τιμές. Αν η τιμή της σημαίας είναι 1 τότε λέμε ότι ισχύει αλλιώς (αν είναι ) λέμε ότι δεν ισχύει. Για παράδειγμα αν τα bits 31 μέχρι 28 του καταχωρητή R15 είναι 11 τότε οι σημαίες N και Ζ ισχύουν ενώ οι σημαίες V και C δεν ισχύουν. Στο επόμενο κομμάτι θα δούμε που μπορούμε να τα δούμε αυτά. 35

36 3.6 Χρήση του CodeWarrior για να δούμε τους καταχωρητές Στο Registers Pane αν κάνουμε expand το User/System Mode Registers μπορούμε να δούμε τους καταχωρητές, τι τιμή έχουν καθώς και σε ποια θέση βρίσκονται. Πιο χαμηλά βλέπουμε δύο καταχωρητές, τον PC και τον XPSR. O PC μας δείχνει την τιμή του Program Counter. Ο XPSR μας δείχνει τις τιμές που είδαμε πιο πάνω του R15. Για παράδειγμα ο XPSR με τιμή 111 αναλύεται ως: Ν Ζ C V Q ICI / IT T N Bit 31 = Result is positive or zero Z Bit 3 = 1 Result is zero C Bit 29 = 1 Operation produced a carry V Bit 28 = No overflow Q Bit 27 = No interrupt ICI/IT Bit 26 = No repeatable instruction T Bit 25 = 1 Thumb instruction 36

37 3.7 Μελέτη καταχωρητή κατάστασης Παρακάτω δίνεται έτοιμος κώδικας για να δούμε μέσω του CodeWarrior τι τιμές παίρνουν οι καταχωρητές και την χρήση των εντολών που κολουθούν. Εισάγετε τον παρακάτω κώδικα /* This assembly file uses GNU syntax */.text.section.rodata.align 2.LC:.text.align 2.global main main: MOV R, # ;Μηδενισμός Καταχωρητών MOV R1, # ; MOV R2, # MOV R3, # MOV R4, # MOV R, #94 MOV R1, R, LSR #1 ;E Δίνουμε τιμή στον R ;E1 Logical Shift right immediate ADDS R2, R, R ;E2 Add Command & alter the result flags ADDS R2, R1, R1 ;E3 ADDS R2, R, R1 ;E4 MOV R, #xffffffffffffff9c ;E5 ADD R1, R, R1 ;E6 MOV R2, #1 ;E7 SUBS R3, R, R2 ;E8 Sub Command & alter flags SUBS R3, R, R1 ;E9 RSBS R3, R, R1 ;E1 Reverse Subtract MOVS R1, # ;E11 MVNS R1, R1 ;E12 STR R1, [R, #] ;E13.L3:.word.LC.end 37

38 3.8 Επεξήγηση εντολών SUBS ADDS RSBS MVNS STR SUBS [dest], [lhs], [rhs] Η εντολή SUBS είναι η ίδια με την SUB συν το ότι παίρνει σαν condition το S που προκαλεί την αλλαγή των result flags. ADDS [dest], [lhs], [rhs] H εντολή ADD αποθηκεύει στον [dest] καταχωρητή την τιμή της πρόσθεσης του [lhs] με τον [rhs]. To S προκαλεί την αλλαγή του result flag. RSBS <dest>, <lhs>, <rhs> H εντολή RSBS εκτελεί μια αφαίρεση χωρίς carry, αλλά αντιστρέφει την σειρά στην οποία οι τελεστές αφαιρούνται. Το S προκαλεί την αλλαγή του result flag. RSB R, R1, #1 ;R = 1 R MVNS <dest>, <rhs> H εντολή MVNS μεταφέρει το λογικό NOT του <rhs> στον καταχωρητή του dest. Δηλαδή αντιστρέφει όλα τα bits και με την εντολή S ρυθμίζει τις σημαίες. MVNS R, R ;Αντιστροφή όλων των bit του R και ρύθμιση των σημαιών MVN R, # ;Δίνει στο R την τιμή &FFFFFFFF, δηλαδή -1 STR (cond) <srce>, [<base>], <offset> <srce> είναι ο καταχωρητής από τον οποίο τα δεδομένα θα μεταφερθούν στην μνήμη. <base> είναι ο καταχωρητής που περιέχει την διεύθυνση της μνήμης που απαιτείται. <offset> είναι ένας προαιρετικός αριθμός που προστίθεται στην διεύθυνση πριν αποθηκευτούν τα δεδομένα. Επομένως η διεύθυνση που χρησιμοποιείται για να αποθηκευτούν τα <srce> δεδομένα είναι <base> + <offset> STR R, [R1, #2] 38

39 Εργασίες: Εργασία 1 Μεταγλωττίστε το παραπάνω πρόγραμμα και εκτελέστε το βηματικά. Συμπληρώστε τον παρακάτω πίνακα με το περιεχόμενο του καταχωρητή κατάστασης μετά από κάθε εντολή. E E1 E2 E3 E4 E5 E6 E7 E8 E9 E1 E11 E12 E13 Τιμές Καταχωρητών PC xpsr R R1 R2 R3 R4 R5 R15 N C Z V Σχόλια Εργασία 2 Φτιάξτε κώδικα μέσα στην main που να δίνει τιμές σε 4 καταχωρητές, και να κάνει τις παρακάτω πράξεις: ADDS R, R3, R1 MOV R1, #2 SUBS R2, R, R1 RSBS R2, R1, R2 SUBS R3, R1, R2 MOVS R1, #1 STR R1, [R, R1] ADD R1, R, #x8 ADD R, R1, R3 Στο τέλος του κώδικα δώστε την τιμή των καταχωρητών R, R1, R2, R3 PC και XPSR (N, C, Z, V). E Τιμές Καταχωρητών PC xpsr R R1 R2 R3 R15 N C Z V 39

40 4. Εργαστήριο 3: Επεξεργασία δεδομένων 4.1 Στόχοι του εργαστηρίου Να κατανοήσει ο φοιτητής τις έννοιες Condition Codes, Branch Instructions, πράξεις σύγκρισης και λογικές πράξεις. 4.2 Κριτήρια Επιτυχούς Ολοκλήρωσης του εργαστηρίου Στο τέλος του εργαστηρίου ο φοιτητής θα είναι ικανός να κατανοήσει προηγμένες έννοιες, εντολές και πράξεις. Επίσης θα μπορεί να βρει τις τιμές των καταχωρητών και των σημαιών μετά από την εκτέλεση αυτών των εντολών. 4.3 Προϋποθέσεις Ευκολία χειρισμού του CodeWarrior, γνώση των καταχωρητών και των εντολών της Assembly που έχουμε μάθει στα προηγούμενα εργαστήρια (όπως mov, sub κλπ). 4.4 Condition Codes Οι σημαίες κατάστασης δείχνουν τις διάφορες συνθήκες που συμβαίνουν κατά την εκτέλεση αριθμητικών και λογικών πράξεων. Οι διάφορες σημαίες κατάστασης και η σημασία τους δίνονται στον ακόλουθο πίνακα: Σημαία Συντομία Τι κάνει? Carry C Operation causes a carry Overflow O Operation causes an overflow Zero Z Operation resulted in Negative N Operation resulted in a negative value Εξ ορισμού οι εντολές επεξεργασίας δεδομένων (data processing instructions), όπως πχ. MOV/ADD/SUB, δεν ενημερώνουν τις σημαίες κατάστασης (Condition Flags). Οι εντολές θα ενημερώσουν τις σημαίες κατάστασης εάν συνοδεύονται από το επίθεμα S (Condition Code). Για παράδειγμα, η παρακάτω εντολή προσθέτει δύο καταχωρητές και ενημερώνει της σημαίες κατάστασης. Σε αντίθεση με την που απλά προσθέτει δύο καταχωρητές. ADDS R, R1, R2 ADD R, R1, R2 Μια διαφορά στον κανόνα είναι η εντολή CMP, αφού ο μόνος λόγος ύπαρξης της εντολής είναι να ενημερώνει τις σημαίες κατάστασης. 4

41 4.5 Εντολές διακλάδωσης Οι εντολές διακλάδωσης (Branch instructions) προκαλούν τον επεξεργαστή να εκτελεί τις οδηγίες από μια διαφορετική διεύθυνση. Δύο εντολές διακλάδωσης είναι διαθέσιμες, η B και η BL. Η εντολή BL εκτός από την παραπάνω λειτουργεία, αποθηκεύει και τη διεύθυνση επιστροφής στον LR καταχωρητή και έτσι μπορεί να χρησιμοποιηθεί για την κλήση μιας συνάρτησης, όπως είχαμε κάνει στο πρώτο εργαστήριο με την κλήση της συνάρτησης firstfunc. BL firstfunction firstfunction: ADD R, R, R1 MOV PC, LR ; Call subroutine with name firstfunction ; Subroutine ; Πράξη ; Επιστροφή Η σύνταξη των εντολών διακλάδωσης φαίνεται παρακάτω: b label bl label ; pc = label ; pc = label, lr = addr of next instruction Και για επιστροφή χρησιμοποιούμε την εντολή MOV: mov pc, lr 4.6 Πράξεις Σύγκρισης Υπό όρους εκτέλεση Τα περισσότερα σύνολα εντολών επιτρέπουν την εκτέλεση των εντολών διακλάδωσης υπό όρους, με βάση την κατάσταση των σημαιών κατάστασης. Στον ARM, σχεδόν όλες οι οδηγίες μπορούν να εκτελεστούν υπό όρους. Εάν η αντίστοιχη συνθήκη είναι αληθής, η εντολή εκτελείται. Η συνθήκη καθορίζεται βάζοντας στην εντολή ένα επίθεμα σύγκρισης. Mnemonic EQ NE CS CC VC VS PL MI HI HS LO LS GT GE LT LE Condition Equal Not Equal Carry Set Carry Clear Overflow Clear Overflow Set Positive Minus Higher Than Higher or Same Lower Than Lower or Same Greater Than Greater Than or Equal Less Than Less Than or Equal Για παράδειγμα η παρακάτω εντολή μεταφέρει το R1 στο R2 εάν και μόνο η σημαία Carry είναι 1: MOVCS r, r1 41

42 4.7 Λογικές Πράξεις Τα προηγούμενα ισχύουν για όλες τις ομάδες εντολών. Τώρα θα εξηγήσουμε τις ατομικές εργασίες της κάθε ομάδας. Μπορούν να διαιρεθούν σε δύο υπο-κατηγορίες: λογικές και αριθμητικές. Αυτές διαφέρουν στον τρόπο με τον οποίο επηρεάζονται οι σημαίες αποτελέσματος (Result flags), υποθέτοντας ότι η συνθήκη S είναι παρούσα. Οι αριθμητικές εντολές μεταβάλλουν τις σημαίες N, Z, V και C σύμφωνα με το αποτέλεσμα της πρόσθεσης, αφαίρεσης κλπ. Οι λογικές εντολές επηρεάζουν τις σημαίες N και Ζ ανάλογα με το αποτέλεσμα της πράξης, και C εάν υπάρχουν Shifts ή rotates. Οι πιο σημαντικές λογικές εντολές είναι οι ακόλουθες: AND H εντολή AND παράγει ένα bit-wise AND των τελεστών. Το AND δύο bit είναι 1 όταν και τα δύο bits είναι 1. BIC <lhs> <rhs> <lhs> AND <rhs> H BIC εντολή παράγει ένα bit-wise AND του <lhs> και NOT <rhs> TST <lhs> <rhs> NOT <rhs> <lhs> AND NOT <rhs> Η TST εντολή παράγει μια AND λειτουργία στους <lhs> και <rhs> τελεστές. Το αποτέλεσμα δεν αποθηκεύεται πουθενά, αλλά οι result flags αλλάζουν ανάλογα με το αποτέλεσμα. TST <lhs>,<rhs> Επίσης ο μόνος λόγος για να εκτελέσουμε την εντολή TST είναι για να θέσουμε τις σημαίες ανάλογα με το αποτέλεσμα, o assembler υποθέτει ότι το S είναι παρόν είτε το διευκρινίσουμε είτε όχι. 42

43 ORR H ORR παράγει ένα bit-wise OR των τελεστών. Το αποτέλεσμα είναι 1 εάν έστω και ένα από τα δύο είναι 1. EOR <lhs> <rhs> <lhs> AND <rhs> H EOR παράγει ένα bit-wise exclusive-or των τελεστών. Το αποτέλεσμα είναι 1 εάν και οι δύο είναι διαφορετικοί. <lhs> <rhs> <lhs> AND <rhs> TEQ H TEQ παράγει μια EOR στους <lhs> και <rhs> τελεστές. Το αποτέλεσμα δεν αποθηκεύεται πουθενά αλλά οι result flags αλλάζουν ανάλογα με το αποτέλεσμα. TEQ <lhs>,<rhs> Όπως και η TST, η TEQ επηρεάζει πάντα τις σημαίες. CMP H εντολή CMP χρησιμοποιείται για να συγκρίνει δύο αριθμούς. Όπως η TEQ και η TST, έτσι και η CMP δεν αποθηκεύει το αποτέλεσμα πουθενά. CMP <lhs>, <rhs> 43

44 4.8 Κώδικας Παρακάτω δίνεται έτοιμος κώδικας στον οποίο μπορούμε θα δούμε, με βηματική εκτέλεση, πως λειτουργούν τα Condition Codes, τα Flags, οι εντολές διακλάδωσης, οι εντολές σύγκρισης και οι λογικές πράξεις. Αντιγράψτε στην main τον παρακάτω κώδικα: main: MOV R1, #1 ;E1 MOV R2, #5 ;E2 loop: CMP R1, R2 ;set condition "NE" if (R1!= R2) ; "GT" if (R1 > R2) ; "LT" if (R1 < R2) SUBGT R1, R1, R2 ;if "GT", R1 = R1 - R2 SUBLT R2, R2, R1 BNE loop ;if "LT", R2 = R2 - R1 ;if "NE", then loop ;E3 MOV R, #12 ; MOV R3, #8 ; MOV R4, #6 ;Ε4 ANDS R,R,R5 ;Ε5 TST R,R4 ;Ε6 MOV R,R, LSL #2 ;Multiply R by four BIC R1, R2 ;Ε7 loop1: CMP R2, R4 ; SUBGT R2, R2, R4 ;if "GT", R1 = R1 - R2 SUBLT R4, R4, R2 ;if "LT", R2 = R2 - R1 BNE loop1 ;if "NE", then loop ;Έ8 MOVS R4, R4, LSL #1 ;E9 44

45 Εργασίες: Εργασία 1: Μεταγλωττίστε το παραπάνω πρόγραμμα και εκτελέστε το βηματικά. Συμπληρώστε τον παρακάτω πίνακα με το περιεχόμενο του καταχωρητή κατάστασης μετά από κάθε εντολή. E E1 E2 E3 E4 E5 E6 E7 E8 Τιμές Καταχωρητών PC xpsr R R1 R2 R3 R4 R15 N C Z V Εργασία 2: Φτιάξτε κώδικα μέσα στην main που να δίνει τιμές σε 4 καταχωρητές (R R3), και να κάνει τις παρακάτω πράξεις: loop: CMP R1, R2 ;set condition "NE" if (R1!= R2) ; "GT" if (R1 > R2) ; "LT" if (R1 < R2) SUBGT R1, R1, R2 ;if "GT", R1 = R1 - R2 SUBLT R2, R2, R1 ;if "LT", R2 = R2 - R1 BNE loop ADDS R, R3, R1 MOV R1, #2 SUBS R2, R, R1 RSBS R2, R1, R2 SUBS R3, R1, R2 MOVS R1, #1 ANDS R,R,R5 TST R,R4 Δώστε την τιμή των καταχωρητών R έως R3 που δώσατε στην αρχή. Στο τέλος του κώδικα δώστε την τιμή των καταχωρητών R, R1, R2, R3, PC και XPSR (N, C, Z, V). E E1 Τιμές Καταχωρητών PC xpsr R R1 R2 R3 R15 N C Z V 45

46 5. Εργαστήριο 4: Αλγόριθμος Ταξινόμησης (Bubblesort) 5.1 Στόχοι του εργαστηρίου Στόχος του εργαστηρίου είναι να δούμε έναν αλγόριθμο ταξινόμησης Φυσαλίδας και να παρακολουθήσουμε την βηματική εξομοίωση του, τόσο μέσω των καταχωρητών όσο και μέσω της μνήμης που αποθηκεύονται οι μεταβλητές (όπως η MyNumbers). 5.2 Κριτήρια Επιτυχούς Ολοκλήρωσης του εργαστηρίου Στο τέλος του εργαστηρίου θα μπορείτε να κατανοήσετε τι κάνει ένας αλγόριθμος ταξινόμησης Φυσαλίδας, να ελέγχετε τις τιμές των μεταβλητών καθώς και την σειρά που έχουν σε κάθε χρονική στιγμή μέσω των καταχωρητών και της μνήμης. 5.3 Προϋποθέσεις Ο φοιτητής θα πρέπει να έχει κατανοήσει πολύ καλά τις εντολές της Assembly που έχουμε δει ως τώρα (όπως mov ldr κλπ), τις λογικές πράξεις, τις εντολές διακλάδωσης, τις σημαίες κατάστασης καθώς και να είναι πλήρως εξοικειωμένος με τον τρόπο λειτουργείας του CodeWarrior. 5.4 Αλγόριθμος ταξινόμησης φυσαλίδας Παρακάτω θα δούμε έναν Αλγόριθμο φυσαλίδας. Είναι ο πιο απλός από τους αλγόριθμους ταξινόμησης μιας συλλογής τιμών. Ο τρόπος που λειτουργεί είναι πολύ απλός. Περνάει όλες τις τιμές του πίνακα που έχουμε δώσει με τη σειρά και συγκρίνει κάθε τιμή με την επόμενη της, αλλάζοντας τους θέσεις όπου είναι απαραίτητο. Στη συνέχεια επαναλαμβάνει την διαδικασία έως ότου ο πίνακας έχει ταξινομηθεί και δεν απαιτούνται επιπλέον αλλαγές θέσης. Ο αλγόριθμος ταξινόμησης Φυσαλίδας παίρνει την ονομασία αυτή γιατί οι τιμές του πίνακα τείνουν να πηγαίνουν στο τέλος της λίστας στη σωστή σειρά, όπως οι φυσαλίδες ανεβαίνουν στην επιφάνεια. Γενικά δεν είναι ο πιο αποτελεσματικός τρόπος να ταξινομούμε τις τιμές που περιέχει ένας πίνακας, σχεδόν σε καμία περίπτωση. Ακόμα και αν ο πίνακας είναι ταξινομημένος, θα κάνει Ν-1 περάσματα στον πίνακα (όπου Ν ο αριθμός τον τιμών του πίνακα). Λόγω της απλότητας του όμως θα τον χρησιμοποιήσουμε για να κάνουμε βηματική εξομοίωση και έλεγχο του προγράμματος μέσω των καταχωρητών και της μνήμης όπου αποθηκεύονται οι μεταβλητές. 46

47 Αντιγράψτε στην main τον παρακάτω κώδικα:.global main.section.data mynumbers:.byte 1, 4, -3, 2, -7, 6 mynumbersend:.section.text main: loop: mov r4, # ldr r, =mynumbers ldr r3, =mynumbersend inner_loop: ldrsb r1, [r], #1 ldrsb r2, [r] cmp r1, r2 strgtb r1, [r] strgtb r2, [r, #-1] movgt r4, #1 ; r4 = swapped = true cmp r, r3 bne inner_loop cmp r4, #1 beq loop exit: b exit.end ; keep going 47

48 Ας το αναλύσουμε τώρα για να δούμε τι ακριβώς έκανε το παραπάνω πρόγραμμα. Για αρχή ορίσαμε τους αριθμούς μας στο mynumbers. 1. Ο καταχωρητής R4 περιέχει την ερώτηση «Αντικαταστήσαμε κάτι;» 2. Οι καταχωρητές R και R3 περιέχουν την αρχική και την τελική τιμή των τιμών που έχουμε εισάγει στο mynumbers. loop: mov r4, # ldr r, =mynumbers ldr r3, =mynumbersend 3. Φορτώνει και κάνει signextend τον r1 με τα byte που επισημαίνονται στο r, ενημερώνει το r σε r+1 4. Επίσης φορτώνει και κάνει signextend r2 από τον ενημερωμένο r 5. Συγκρίνουμε τις δύο τιμές, αυτό ουσιαστικά είναι ένα r1-r2, ανάλογα με το αποτέλεσμα οι σημαίες ενημερώνονται. inner_loop: ldrsb r1, [r], #1 ldrsb r2, [r] cmp r1, r2 6. Εάν το r1 είναι μεγαλύτερο από το r2, θα αποθηκευτούν οι τιμές με αντίστροφη σειρά 7. Στη συνέχεια θέτουμε την σημαία αντιστροφής (r4) strgtb r1, [r] strgtb r2, [r, #-1] movgt r4, #1 ;r4 = swapped = true 8. Συγκρίνουμε τον τρέχον δείκτη του r με τον τρέχον δείκτη στο r3 9. Εκτός αν είναι ίσα, προχωράμε στο επόμενο byte cmp r, r3 bne inner_loop 1. Ελέγχουμε αν αντιστρέψαμε τίποτα και αν ναι, ξεκινάμε από την αρχή. cmp r4, #1 beq loop από την αρχή το loop ;Ξεκινάμε Το βασικό σημείο εδώ είναι η σύγκριση. Όπως έχει ήδη αναφερθεί, η εντολή CMP κάνει την πράξη op1-op2 και πετάει το αποτέλεσμα αλλά ενημερώνει τις σημαίες ανάλογα με το αποτέλεσμα. Οι σημαίες αυτές είναι N = tempresult[31] (Δηλώνει ότι το MSB έχει τεθεί, για τιμές με πρόσημο αυτό σημαίνει ότι το αποτέλεσμα έχει πρόσημο. Z = tempresult == (Θα είναι 1 όταν και οι δύο τιμές είναι ίσες) C = tempresult[31]!= op1[31] (Χρησιμοποιείται για χωρίς πρόσημο συγκρίσεις και σημαίνει op1 < op2) V = op1[31]!= op2[31] && op1[31]!= tempresult[31] (Είναι κάτι σαν το carry για τιμές με πρόσημο) Signed numbers: Στην επιστήμη των υπολογιστών, η χρήση των αριθμών με πρόσημο είναι απαραίτητη για την κωδικοποίηση αρνητικών αριθμών σε δυαδικό σύστημα αρίθμησης. 48

49 Στην συνέχεια η εντολή STRGTB χρησιμοποιεί τις σημαίες για να δει αν χρειάζεται να εκτελεστεί. Η συνθήκη είναι gt που μεταφράζεται σε Z == && N == V Εάν η συνθήκη είναι σωστή, η εντολή θα εκτελεστεί, όπως και οι δύο επόμενες εντολές. 5.5 Αποθήκευση μεταβλητών στην μνήμη Έχουμε δει πώς μπορούμε να ελέγξουμε αν εκτελείται το πρόγραμμα σωστά με παρατήρηση των τιμών των καταχωρητών κατά τη βηματική εξομοίωση. Παρακάτω θα δείξουμε, πού αποθηκεύονται στην μνήμη οι μεταβλητές, όπως η MyNumbers για να δούμε αν εκτελείται σωστά το πρόγραμμα. Στο Register Pane πάμε στο πεδίο Value της μεταβλητής R και κάνουμε δεξί κλίκ. Επιλέγουμε Format και μετατρέπουμε την τιμή σε HEX. Η Τιμή που έχουμε είναι η διεύθυνση μνήμης που ξεκινάει το MyNumbers Array. Στο Memory Pane κάνουμε Add ( ) και στο παράθυρο που μας ανοίγει βάζουμε την HEX διεύθυνση του R. Για να μπορέσουμε να δούμε καλύτερα τις τιμές της μνήμης κάνουμε δεξί κλίκ, επιλέγουμε Format και στο Column Size βάζουμε 1 Column per Row. 49

50 Οι τιμές που βλέπουμε τώρα είναι σε HEX. Για να τις διαβάσουμε καλύτερα πατάμε Add Rendering και επιλέγουμε Signed Integer ώστε να δούμε τις τιμές σε δεκαδικό σύστημα. Εκτελώντας βηματικά το πρόγραμμα, μπορούμε να δούμε την εκτέλεση του αλγόριθμου φυσαλίδας και να επαληθεύσουμε την σωστή λειτουργεία του. 5

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

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

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

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

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

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Ευάγγελος Καρβούνης Παρασκευή, 15/01/2016 Τι είναι ομάδα εντολών;

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Τρίτη (3 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο

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

Αρχιτεκτονικη υπολογιστων

Αρχιτεκτονικη υπολογιστων ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονικη υπολογιστων Τζαγκαράκης Χαράλαμπος hatzagarak@cs.teicrete.gr Εισαγωγη: ο επεξεργαστης και η γλωσσα του Eπεξεργαστής: MIPS Microprocessor Without Interlocked

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το

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

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

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

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

Μαθαίνοντας το hardware του αναπτυξιακού

Μαθαίνοντας το hardware του αναπτυξιακού 1. ΑΣΚΗΣΗ 1 Μαθαίνοντας το hardware του αναπτυξιακού Προϋποθέσεις Το εργαστήριο αυτό προϋποθέτει το διάβασμα και χρήση των εξής: Αρχείο mcbstr9.chm HTML, που δίδεται με τα υπόλοιπα αρχεία του εργαστηρίου.

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

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

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

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

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

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

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

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη. Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης,

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Μαθηµα 2 ηµήτρης Λιούπης 1 Intel SA-1110 µc StrongARM core. System-on-Chip. Εξέλιξη των SA-110 και SA-1100. 2 ARM cores ARM: IP (intellectual

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

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

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

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

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

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

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly Αρης Ευθυμίου Το σημερινό μάθημα! Σύνταξη εντολών! Θέματα σχετικά με τη προσπέλαση, οργάνωση μνήμης διευθύνση για κάθε byte διευθύνσεις λέξεων

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

Εντολές του MIPS (2)

Εντολές του MIPS (2) ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3

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

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 7: Αποκωδικοποίηση Εντολής x86 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

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

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

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

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

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

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

Τέτοιες λειτουργίες γίνονται διαμέσου του Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: Προσκόμιση της εντολής (fetch) από τη θέση που δείχνει ο PC Ανάγνωση των περιεχομένων ενός ή δύο καταχωρητών Τέτοιες λειτουργίες γίνονται διαμέσου

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 Αρης Ευθυμίου Το σημερινό μάθημα! Λυση του lab02! Αρχιτεκτονική ARM σε τι μοιάζει και σε τι διαφέρει από τον MIPS! Αρχιτεκτονική x86 μια γρήγορη ματιά στη

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βασικές Έννοιες Προγραμματισμού Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Αριθμητικά συστήματα Υπάρχουν 10 τύποι ανθρώπων: Αυτοί

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

Τελική Εξέταση, Απαντήσεις/Λύσεις

Τελική Εξέταση, Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 Τελική Εξέταση, Απαντήσεις/Λύσεις Άσκηση 1: Assembly για

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

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

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

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

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

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

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

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I

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

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

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

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

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

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

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

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

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

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

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

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

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

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

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

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Y Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3 = &A[0] = 0x0001080 &A[8]

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

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

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

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

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 11

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 11 ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 11 1. ΑΣΚΗΣΗ 1... 13 Προϋποθέσεις... 13 Εισαγωγή... 13 1.1 Το Υλικό του Αναπτυξιακού (Hardware)... 14 1.1.1 Διαβάζοντας το σχηματικό... 16 1.1.2 STR912FAW44XB... 16 1.1.3 Χάρτης

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter 3 Kuo [2005]: Chapters 1 & 4-5 Lapsley [2002]: Chapter 4 Hayes [2000]: Κεφάλαιo 8

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

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Φώτης Βαρζιώτης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα Τμήμα Μηχανικών

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

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Χριστόφορος Χριστοφόρου Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Υλικό (Hardware)/Δομή του υπολογιστή Υπολογιστικά συστήματα: Στρώματα 1 Επικοινωνία

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

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

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΡΟΜΠΟΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΜΠΑΝΤΗΣ ΑΝΤΩΝΙΟΣ 533 ΤΣΙΚΤΣΙΡΗΣ ΔΗΜΗΤΡΙΟΣ 551 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΡΟΜΠΟΤ LEGO NXT Το ρομπότ

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

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 3 : Μια άποψη του κορυφαίου επιπέδου λειτουργίας και διασύνδεσης του υπολογιστή Καρβούνης Ευάγγελος Η έννοια

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering Οργάνωση και Σχεδίαση Η/Y (HY232) Εργαστήριο 1 Χειμερινό Εξάμηνο 2016-2017 Στόχοι του εργαστηρίου Εντολές

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

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

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

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

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

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

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

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

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 2 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Καθυστερήσεις και Εκκενώσεις Εντολών

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

Οδηγίες για την Διαδικασία αποθήκευσης στοιχείων ελέγχου πινάκων για επίλυση θέματος Οριοθέτησης.

Οδηγίες για την Διαδικασία αποθήκευσης στοιχείων ελέγχου πινάκων για επίλυση θέματος Οριοθέτησης. Οδηγίες για την Διαδικασία αποθήκευσης στοιχείων ελέγχου πινάκων για επίλυση θέματος Οριοθέτησης. 1. SMART BOARD SERIAL NUMBER: Ο σειριακός αριθμός του Διαδραστικού πίνακα βρίσκεται στην δεξιά πλαϊνή μεριά

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

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

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

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

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος Ε.1 Σας δίνεται ο πιο κάτω κώδικας. Ξαναγράψτε τον ώστε να μειωθεί ο αριθμός των εντολών του αλλά διατηρώντας την ίδια λειτουργιά

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ. Ασκήσεις 1-2 Εισαγωγή

Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ. Ασκήσεις 1-2 Εισαγωγή Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΒΙΟΜΗΧΑΝΙΚΟΙ ΑΥΤΟΜΑΤΙΣΜΟΙ Εφαρµογές Προγραµµατιζόµενων Λογικών Ελεγκτών-Εργαστήριο Εργαστηριακός Συνεργάτης: Βέλλος Κων/νος Ασκήσεις 1-2 Εισαγωγή

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

Chapter 3 Αριθμητική Υπολογιστών

Chapter 3 Αριθμητική Υπολογιστών Chapter 3 Αριθμητική Υπολογιστών Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία

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

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται Τομέας: Ηλεκτρονικός Εκπαιδευτικός: Μπουλταδάκης Στέλιος Μάθημα: Συλλογή και μεταφορά δεδομένων μέσω Η/Υ, Αισθητήρες-Ενεργοποιητές Αντικείμενο: α) Μέτρηση θερμοκρασίας με το αισθητήριο LM335 και μεταφορά

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

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται Τομέας: Ηλεκτρονικός Εκπαιδευτικός: Μπουλταδάκης Στέλιος Μάθημα: Συλλογή και μεταφορά δεδομένων μέσω Η/Υ, Αισθητήρες-Ενεργοποιητές Αντικείμενο: α) Μέτρηση θερμοκρασίας με το αισθητήριο LM335 και μεταφορά

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

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

ΑΣΚΗΣΗ 8 Tutorial by TeSLa Συνδεσμολογία κυκλώματος Διαδικασία Προγραμματισμού

ΑΣΚΗΣΗ 8 Tutorial by TeSLa Συνδεσμολογία κυκλώματος Διαδικασία Προγραμματισμού Α.Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ 8 Tutorial by TeSLa Συνδεσμολογία κυκλώματος Διαδικασία Προγραμματισμού Θεσσαλονίκη, Ιανουάριος 2007 Η Άσκηση 8 του εργαστηρίου

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

Παραδείγματα Assembly (Μέρος

Παραδείγματα Assembly (Μέρος Παραδείγματα Assembly (Μέρος Β) 1 Άσκηση 1 Γράψτε ένα πρόγραμμα (4 εντολών) με το οποίο μπορείτε να προσθέσετε το περιεχόμενο των θέσεων μνήμης 0Χ30000000 και 0Χ30000001. Το αποτέλεσμα να αποθηκευτεί ως

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

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

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ 4 ο Εξάμηνο Μαδεμλής Ιωάννης ΥΠΟΡΟΥΤΙΝΕΣ ΕΡΓΑΣΤΗΡΙΟ 6 Οι υπορουτίνες αποτελούν αυτόνομα τμήματα κώδικα που διεκπεραιώνουν μία συγκεκριμένη εργασία και μπορούμε να τα καλούμε

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

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

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

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

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

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1.

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1. (α) Παραδείγματα Assembly Εαρινό Εξάμηνο 2012 Γράψτε ένα μικρό πρόγραμμα (1-3 εντολές) με το οποίο μπορείτε να ανιχνεύσετε την τιμή του δυαδικού ψηφίου στη θέση 7 της θέσης μνήμης 0Χ23450009 εάν το λιγότερο

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

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

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2 ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Εργαστήριο Αρ. 2 Εισαγωγή στην Αρχιτεκτονική ARMv8-A Arithmetic and Logic Instr..data, Branch and Loops, PhD Σελ. 1 Memory Allocation LEGv8 0000

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

Καταχωρητές γενικής χρήσης και δεδοµένων (Data Registers)

Καταχωρητές γενικής χρήσης και δεδοµένων (Data Registers) Καταχωρητές γενικής χρήσης και δεδοµένων (Data Registers) ΑΧ Εργασίες εισόδου / εξόδου, διορθώσεις δεκαδικών, πολλαπλασιασµοί, διαιρέσεις. BX είκτης για έµµεσο τρόπο προσδιορισµού διευθύνσεων µνήµης (indirect

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

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB Εαρινό εξάμηνο 2018-2019 Τμήμα Μαθηματικών ΑΠΘ Διδάσκουσα: Αγγελική Παπάνα Μεταδιδακτορική Ερευνήτρια Πολυτεχνική σχολή, Α.Π.Θ. & Οικονομικό Τμήμα, Πανεπιστήμιο

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών Διδάσκοντες: Νικόλας Στυλιανίδης Γιώργος Ζάγγουλος Email: nstylianides@gmail.com zaggoulos.george@ucy.ac.cy Εισαγωγή στους Μικροεπεξεργαστές

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

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

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

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

SIMATIC MANAGER SIMATIC MANAGER

SIMATIC MANAGER SIMATIC MANAGER 1 Προγραμματισμός του PLC. 1. Γενικά Μια προσεκτική ματιά σε μια εγκατάσταση που θέλουμε να αυτοματοποιήσουμε, μας δείχνει ότι αυτή αποτελείται από επιμέρους τμήματα τα οποία είναι συνδεδεμένα μεταξύ τους

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

2. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΘΥΡΩΝ ΕΙΣΟ ΟΥ/ΕΞΟ ΟΥ ΤΟΥ PIC16F877-ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΤΟΛΕΣ

2. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΘΥΡΩΝ ΕΙΣΟ ΟΥ/ΕΞΟ ΟΥ ΤΟΥ PIC16F877-ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΤΟΛΕΣ 1 2. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΘΥΡΩΝ ΕΙΣΟ ΟΥ/ΕΞΟ ΟΥ ΤΟΥ PIC16F877-ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΤΟΛΕΣ Σκοπός της άσκησης: εξοικείωση µε τις θύρες εισόδου/εξόδου ενός µικροελεγκτή 2. Θεωρητικό Μέρος 2.1.1 Θύρες εισόδου / εξόδου

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις Άσκηση 1: Σωστό/Λάθος

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