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

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

Download "ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΛΕΙΤΟΥΡΓΙΑ Η/Υ"

Transcript

1 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε., ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ, ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΛΕΙΤΟΥΡΓΙΑ Η/Υ Οικογένεια Μικροεπεξεργαστών Intel 8086, Εργαστηριακές Ασκήσεις Δρ. Τοπάλης Ευάγγελος (Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών) Εργαστήριο Μικροϋπολογιστικών Συστημάτων v Εργαστήριο Μικροϋπολογιστικών Συστημάτων

2 Εργαστήριο Μικροϋπολογιστικών Συστημάτων 3

3 ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ & ΛΕΙΤΟΥΡΓΙΑΣ Η/Υ Διδάσκων: Ευάγγελος Τοπάλης Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών ΑΣΚΗΣΗ 1 Εισαγωγικό για το εργαστήριο: MASM MASM Είναι ο µακροσυµβολοµεταφραστής της Microsoft για τους επεξεργαστές της οικογένειας 80x86 της Intel. Ο MASM συναρµολογεί προγράµµατα σε συµβολική γλώσσα και δηµιουργεί µεταθέσιµα αντικειµενικά αρχεία που µπορούν να συνδεθούν και να εκτελεστούν κάτω από το λειτουργικό σύστηµα MS-DOS. Εργαστήριο Μικροϋπολογιστικών Συστημάτων 4

4 Κατάληξη αρχείων asm Φάκελος αποθήκευσης c:/masm/bin/ Project/Compile Project/Build (συγχρόνως κάνει και compile) Run/Execute Run/Debug Στην επιλογή Windows εµφανίζω ή αποκρύβω παράθυρα πληροφοριών (registers, memory, watch ) Με F8 (trace) µπαίνω και µέσα στις συναρτήσεις Με F10 (step by step) εντολή εντολή Με F9(Breakpoint)βάζω breakpoints, µε το ίδιο βγαίνει Run / Restart Watch-Data/add watch Breakpoint Data/add breakpoint/edit breakpoint Εικόνα 1 Περιβάλλον Masm Εργαστήριο Μικροϋπολογιστικών Συστημάτων 5

5 Εικόνα 2 Περιβάλλον Masm Εικόνα 3 Περιβάλλον Masm Εργαστήριο Μικροϋπολογιστικών Συστημάτων 6

6 Εικόνα 4 Περιβάλλον Masm Εικόνα 5 Περιβάλλον Masm Εργαστήριο Μικροϋπολογιστικών Συστημάτων 7

7 Εικόνα 6 Περιβάλλον Masm Εργαστήριο Μικροϋπολογιστικών Συστημάτων 8

8 ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ & ΛΕΙΤΟΥΡΓΙΑΣ Η/Υ Διδάσκων: Ευάγγελος Τοπάλης Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών ΑΣΚΗΣΗ 2 ΕΝΤΟΛΕΣ ΜΕΤΑΦΟΡΑΣ, ΤΟΠΟΘΕΤΗΣΗΣ ΔΕΔΟΜΕΝΩΝ, ΑΡΙΘΜΗΤΙΚΩΝ ΠΡΑΞΕΩΝ ΠΑΡΑ ΕΙΓΜΑ 1 Παράδειγµα προγράµµατος μεταφοράς δεδομένων. Εργαστήριο Μικροϋπολογιστικών Συστημάτων 9

9 ;**************************************************************** ; παράδειγμα προγράμματος μεταφοράς δεδομένων ;****************************************************************.386 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για STACK_SEG segment para STACK ;ορισμός τµήµατος στοίβας µε όνοµα stack_seg db 256 dup (0) ;ορισµός χώρου στοίβας (256 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) STACK_SEG ends ;τέλος του τµήµατος της στοίβας µε όνοµα stack_seg code SEGMENT USE16 PARA PUBLIC 'CODE' ;έναρξη του τµήµατος κώδικα µε όνοµα code ASSUME CS: code ;ορίζει ποιοι καταχωρητές σχετίζονται µε ποια τµήµατα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος MOV BH, 09h ;φόρτωσε τη σταθερά 09h στο high byte (BH) του καταχωρητή BX MOV BL, 0FFh ;φόρτωσε τη σταθερά 0FFh στο low byte (BL) του καταχωρητή BX MOV CX, BX ;φόρτωσε τα περιεχόµενα του καταχωρητή BX στο καταχωρητή CX MOV AH, 4Ch ;ρουτίνα τερµατισµού εργασίας (4Ch:process termination) INT 21h ;τερµατισµός code ENDS ;τέλος του τµήµατος κώδικα με όνομα code END start ;τέλος του assembly προγράµµατος Σηµείωση1.1: Ο συµβολοµεταφραστής (assembler) δέχεται µόνο 8086/8088 εντολές. Η ντιρεκτίβα.386 (για real mode) και.386p (για protected mode) ενηµερώνει τον assembler να χρησιµοποιήσει το σύνολο των εντολών για επεξεργαστή (80386 instruction set). Σηµείωση1.2: Για τους μέχρι και τους Pentium υπάρχει ακόμα η ντιρεκτίβα USE16 ή USE32 που µπορεί να χρησιµοποιηθεί µε το τµήµα του κώδικα, η οποία ενηµερώνει τον assembler να χρησιµοποιήσει αντίστοιχα 16-bit ή 32-bit τύπους εντολών (instruction modes) για τον επεξεργαστή. Σηµείωση1.3 : Για να χρησιμοποιήσετε κλήσεις συναρτήσεων του DOS, θα πρέπει να τοποθετήσετε τον αριθμό κλήσης της συνάρτησης στον καταχωρητή AH και να τοποθετήσετε όλες τις σχετικές πληροφορίες ως δεδομένα εισόδου σε καταχωρητές όπως αυτό περιγράφεται στον πίνακα. Όταν επιτευχθεί αυτό, καλέστε το INT 21H για να εκτελέσετε την συνάρτηση του DOS. Η εντολή INT 21H είναι ένα παράθυρο επικοινωνίας µε το DOS, και όταν τελειώσει η υπορουτίνα που καλέσαµε ο έλεγχος του συστήµατος επιστρέφει κανονικά στην εντολή που ακολουθεί µετά την INT 21H. Αυτή η γενική ρουτίνα που καλούµε µε την INT 21H σε πρώτη φάση ελέγχει τον καταχωρητή AH για να δει ποιον κωδικό έχουµε τοποθετήσει προ του καλέσµατος. Αυτός ο κωδικός θα µας οδηγήσει στην κατάλληλη I/O ρουτίνα (π.χ. 02H display character routine). Μπορούµε λοιπόν για διάφορες διεργασίες I/O να καλούµε µια έτοιµη ρουτίνα του συστήµατος µε την εντολή INT n. Εργαστήριο Μικροϋπολογιστικών Συστημάτων 10

10 4CH Entry Exit Notes TERMINATE A PROCESS AH = 4CH AL = error code Returns control to DOS This function returns control to DOS with the error code saved so it can be obtained using DOS ERROR LEVEL batch processing system. We normally use this function with an error code of 00H to return to DOS. ΠΑΡΑ ΕΙΓΜΑ 2 Παράδειγµα προγράµµατος που εµφανίζει το χαρακτήρα Α στην οθόνη. ;**************************************************************** ; Παράδειγµα προγράµµατος που εµφανίζει το χαρακτήρα Α στην οθόνη ;****************************************************************.386 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για STACK_SEG segment para STACK ;ορισμός τµήµατος στοίβας µε όνοµα stack_seg db 256 dup (0) ;ορισµός χώρου στοίβας (256 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) STACK_SEG ends code SEGMENT 'CODE' ASSUME CS: code ;τέλος του τµήµατος της στοίβας µε όνοµα stack_seg ;έναρξη του τµήµατος κώδικα µε όνοµα code ;καθορισµός του ονόµατος που συνδέεται µε το τµήµα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος MOV DL, 41h ;βάζει τον ASCII κωδικό του Α (που είναι το 41h) στον DL καταχωρητή MOV AH, 02h ;προετοιµάζει τον AH µε περιεχόµενο τον κωδικό της ρουτίνας εµφάνισης χαρακτήρα (02h: display character) INT 21h ;η εντολή που καλεί τη ρουτίνα του MS-DOS, και προβάλει το χαρακτήρα Α στην οθόνη MOV AH, 4Ch ;ρουτίνα τερµατισµού εργασίας (4Ch:process termination) INT 21h ;τερµατισµός code ENDS ;τέλος του τµήµατος κώδικα με όνομα code END start ;τέλος του assembly προγράµµατος Σηµείωση2.1: Δεδομένα κωδικοποιημένα σε ASCII (American Standard Code for Information Interchange: Αμερικανικός Πρότυπος Κώδικας Ανταλλαγής Εργαστήριο Μικροϋπολογιστικών Συστημάτων 11

11 Πληροφοριών) αντιπροσωπεύουν αλφαριθμητικούς χαρακτήρες στη μνήμη ενός συστήματος υπολογιστή. ASCII Δεδομένα Σηµείωση2.2: Για να χρησιμοποιήσετε κλήσεις συναρτήσεων του DOS, θα πρέπει να τοποθετήσετε τον αριθμό κλήσης της συνάρτησης στον καταχωρητή AH και να τοποθετήσετε όλες τις σχετικές πληροφορίες ως δεδομένα εισόδου σε καταχωρητές όπως αυτό περιγράφεται στον πίνακα. Όταν επιτευχθεί αυτό, καλέστε το INT 21H για να εκτελέσετε την συνάρτηση του DOS. Η εντολή INT 21H είναι ένα παράθυρο επικοινωνίας µε το DOS, και όταν τελειώσει η υπορουτίνα που καλέσαµε ο έλεγχος του συστήµατος επιστρέφει κανονικά στην εντολή που ακολουθεί µετά την INT 21H. Αυτή η γενική ρουτίνα που καλούµε µε την INT 21H σε πρώτη φάση ελέγχει τον καταχωρητή AH για να δει ποιον κωδικό έχουµε τοποθετήσει προ του καλέσµατος. Αυτός ο κωδικός θα µας οδηγήσει στην κατάλληλη I/O ρουτίνα (π.χ. 02H display character routine). Μπορούµε λοιπόν για διάφορες διεργασίες I/O να καλούµε µια έτοιµη ρουτίνα του συστήµατος µε την εντολή INT n. 02H WRITE TO STANDARD OUTPUT DEVICE Entry Notes AH = 02H DL = ASCII character to be displayed This function call normally displays data on the video display. Εργαστήριο Μικροϋπολογιστικών Συστημάτων 12

12 4CH Entry Exit Notes TERMINATE A PROCESS AH = 4CH AL = error code Returns control to DOS This function returns control to DOS with the error code saved so it can be obtained using DOS ERROR LEVEL batch processing system. We normally use this function with an error code of 00H to return to DOS. ΠΑΡΑ ΕΙΓΜΑ 3 Παράδειγµα προγράµµατος που εµφανίζει το µήνυµα Hello World στην οθόνη. ;**************************************************************** ; Παράδειγµα προγράµµατος που εµφανίζει το µήνυµα Hello World στην οθόνη ;****************************************************************.386 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για code SEGMENT USE16 PARA PUBLIC 'CODE' ;έναρξη του τµήµατος κώδικα µε όνοµα code ASSUME CS:code,DS:data,SS:stack ;ορίζει ποιοι καταχωρητές σχετίζονται µε ποια τµήµατα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος MOV AX, data ;φόρτωσε τη διεύθυνση του τµήµατος δεδοµένων MOV DS, AX ;στον καταχωρητή τµήµατος δεδοµένων DS (Data Segment Register) MOV DX, OFFSET string ;φόρτωσε τη διεύθυνση (απόσταση) της µεταβλητής string στον DX, τυπώνει από τη θέση του DX μέχρι να βρει $ MOV AH, 09h ;φόρτωσε τη σταθερά 09h (display string) στον AH INT 21h ;για να την εµφανίσει MOV AH, 4Ch ;φόρτωσε τον κωδικό τερµατισµού διεργασίας (4Ch) στον AH INT 21h code ENDS ;για τον τερµατισµό του προγράµµατος data SEGMENT para public ;τέλος του τµήµατος του κώδικα µε όνοµα code string DB "Hello World", 13, 10, "$" LF (10) ;τµήµα δεδοµένων µε όνοµα data data ENDS ;τέλος του τµήµατος δεδοµένων µε όνοµα data stack SEGMENT STACK ;τµήµα στοίβας µε όνοµα stack ;συµβολοσειρά που τελειώνει µε CR (13) ; και DW 64 DUP (0) ;ορισµός χώρου στοίβας (64 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) stack ENDS END start ;τέλος του τµήµατος της στοίβας µε όνοµα stack ;τέλος συµβολικού προγράµµατος Εργαστήριο Μικροϋπολογιστικών Συστημάτων 13

13 Σηµείωση3.1: Για να χρησιμοποιήσετε κλήσεις συναρτήσεων του DOS, θα πρέπει να τοποθετήσετε τον αριθμό κλήσης της συνάρτησης στον καταχωρητή AH και να τοποθετήσετε όλες τις σχετικές πληροφορίες ως δεδομένα εισόδου σε καταχωρητές όπως αυτό περιγράφεται στον πίνακα. Όταν επιτευχθεί αυτό, καλέστε το INT 21H για να εκτελέσετε την συνάρτηση του DOS. Η εντολή INT 21H είναι ένα παράθυρο επικοινωνίας µε το DOS, και όταν τελειώσει η υπορουτίνα που καλέσαµε ο έλεγχος του συστήµατος επιστρέφει κανονικά στην εντολή που ακολουθεί µετά την INT 21H. Αυτή η γενική ρουτίνα που καλούµε µε την INT 21H σε πρώτη φάση ελέγχει τον καταχωρητή AH για να δει ποιον κωδικό έχουµε τοποθετήσει προ του καλέσµατος. Αυτός ο κωδικός θα µας οδηγήσει στην κατάλληλη I/O ρουτίνα (π.χ. 02H display character routine). Μπορούµε λοιπόν για διάφορες διεργασίες I/O να καλούµε µια έτοιµη ρουτίνα του συστήµατος µε την εντολή INT n. 09H Entry Notes DISPLAY A CHARACTER STRING AH = 09H DS:DX = address of the character string The character string must end with an ASCII $ (24H). The character string can be of any length and may contains control characters such as carriage return (0DH) and line feed (0AH). 4CH Entry Exit Notes TERMINATE A PROCESS AH = 4CH AL = error code Returns control to DOS This function returns control to DOS with the error code saved so it can be obtained using DOS ERROR LEVEL batch processing system. We normally use this function with an error code of 00H to return to DOS. ΠΑΡΑ ΕΙΓΜΑ 4 Παράδειγµα προγράµµατος που υπολογίζει το άθροισμα δύο αριθμών ;**************************************************************** ; Παράδειγµα προγράµµατος που υπολογίζει το άθροισμα δύο αριθμών ;****************************************************************.386 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για mycode SEGMENT USE16 PARA PUBLIC CODE ;έναρξη του τµήµατος κώδικα µε όνοµα mycode ASSUME CS:mycode, DS:mydata ;ορίζει ποιοι καταχωρητές σχετίζονται µε ποια τµήµατα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος Εργαστήριο Μικροϋπολογιστικών Συστημάτων 14

14 MOV AX, mydata MOV DS, AX SUB DX, DX MOV AX, NUM1 MOV BX, NUM2 ;φόρτωσε τη διεύθυνση του τµήµατος δεδοµένων ;στον καταχωρητή τµήµατος δεδοµένων DS ;µηδένισε τον καταχωρητή υπερχείλισης DX ;τοποθέτησε ένα αριθµό στον καταχωρητή AX ;τοποθέτησε ένα αριθµό στον καταχωρητή BX ADD AX, BX ;πρόσθεσε στον ΑΧ τον ΒΧ και το αποτέλεσμα βάλτο στον ΑΧ MOV ANS, AX ;τοποθέτησε το αποτέλεσµα στο ANS MOV AH, 4Ch ;φόρτωσε τον κωδικό τερµατισµού διεργασίας INT 21h ;για τον τερµατισµό της mycode ENDS ;τέλος του τµήµατος του κώδικα µε όνοµα mycode mydata SEGMENT PARA PUBLIC DATA ;έναρξη του τµήµατος δεδομένων µε όνοµα mydata NUM1 DW 1234h ;καθορισµός δεκαεξαδικού δεδοµένου (Define Word) NUM2 DW 0001h ANS DW? ;δεσµεύει µια λέξη (word) στη µνήµη χωρίς κάποιο συγκεκριµένο περιεχόµενο, όπου θα τοποθετηθεί το αποτέλεσµα το οποίο θα προκύψει mydata ENDS ;τέλος του τµήµατος δεδοµένων µε όνοµα mydata stack SEGMENT STACK ;τµήµα στοίβας µε όνοµα stack DW 64 DUP (0) ;ορισµός χώρου στοίβας (64 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) stack ENDS ;τέλος του τµήµατος της στοίβας µε όνοµα stack END start τέλος συµβολικού προγράµµατος ΠΑΡΑ ΕΙΓΜΑ 5 Παράδειγµα προγράµµατος που υπολογίζει το γινόμενο δύο αριθμών ;**************************************************************** ; Παράδειγµα προγράµµατος που υπολογίζει το γινόμενο δύο αριθμών ;****************************************************************.386 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για mycode SEGMENT USE16 PARA PUBLIC CODE ;έναρξη του τµήµατος κώδικα µε όνοµα mycode ASSUME CS:mycode, DS:mydata ;ορίζει ποιοι καταχωρητές σχετίζονται µε ποια τµήµατα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος MOV AX, mydata ;φόρτωσε τη διεύθυνση του τµήµατος δεδοµένων στον ΑΧ MOV DS, AX SUB DX, DX MOV AX, NUM1 MUL NUM2 ;φόρτωσε τον ΑΧ στον καταχωρητή τµήµατος δεδοµένων DS ;µηδένισε τον καταχωρητή υπερχείλισης DX ;τοποθέτησε ένα αριθµό στον καταχωρητή AX ;πολλαπλασίασέ τον µε τον δεύτερο αριθµό NUM2 Εργαστήριο Μικροϋπολογιστικών Συστημάτων 15

15 MOV ANS, AX ;τοποθέτησε το αποτέλεσµα στο ANS MOV AH, 4Ch ;φόρτωσε τον κωδικό τερµατισµού διεργασίας INT 21h ;για τον τερµατισµό της mycode ENDS ;τέλος του τµήµατος του κώδικα µε όνοµα mycode mydata SEGMENT PARA PUBLIC DATA ;έναρξη του τµήµατος δεδομένων µε όνοµα mydata NUM1 DW 1234h ;καθορισµός δεκαεξαδικού δεδοµένου (Define Word) NUM2 DW 00CDh ANS DW? ;δεσµεύει µια λέξη (word) στη µνήµη χωρίς κάποιο συγκεκριµένο περιεχόµενο, όπου θα το αποτέλεσµα το οποίο θα προκύψει (E93A4) mydata ENDS ;τέλος του τµήµατος δεδοµένων µε όνοµα mydata stack SEGMENT STACK ;τµήµα στοίβας µε όνοµα stack DW 64 DUP (0) ;ορισµός χώρου στοίβας (64 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) stack ENDS ;τέλος του τµήµατος της στοίβας µε όνοµα stack END start τέλος συµβολικού προγράµµατος Σηµείωση5.1: Στο πρόγραµµα αυτό το αποτέλεσµα που προκύπτει από το γινόµενο των δύο 16-bit δεκαεξαδικών αριθµών είναι αρκετά µεγάλο για να χωρέσει στον καταχωρητή AX (στον οποίο καταχωρείτε µόνο το 93A4) και έτσι έχουµε υπερχείλιση, µε συνέπεια το τελικό αποτέλεσµα (E93A4) να δίνεται από το συνδυασµό του καταχωρητή υπερχείλισης DX (όπου έχει καταχωρηθεί το 000E) και του καταχωρητή AX (όπου έχει καταχωρηθεί το 93A4). Εργαστήριο Μικροϋπολογιστικών Συστημάτων 16

16 ΠΡΟΒΛΗΜΑΤΑ ΑΣΚΗΣΗΣ 2 ΕΝΤΟΛΕΣ ΜΕΤΑΦΟΡΑΣ, ΤΟΠΟΘΕΤΗΣΗΣ ΔΕΔΟΜΕΝΩΝ, ΑΡΙΘΜΗΤΙΚΩΝ ΠΡΑΞΕΩΝ ΠΡΟΒΛΗΜΑ 1 Να γραφεί πρόγραµµα σε assembly των επεξεργαστών της Intel το οποίο να εµφανίζει το χαρακτήρα «Ζ» στην οθόνη. ΠΡΟΒΛΗΜΑ 2 Να γραφεί πρόγραµµα σε assembly των επεξεργαστών της Intel το οποίο να εµφανίζει το ονοµατεπώνυµό σας (στην αγγλική γλώσσα) στην οθόνη. ΠΡΟΒΛΗΜΑ 3 Να γραφεί πρόγραµµα σε assembly της Intel το οποίο να υπολογίζει το αποτέλεσμα της αφαίρεσης δύο αριθμών (15 µε το 5). ΠΡΟΒΛΗΜΑ 4 Να γραφεί πρόγραµµα σε assembly της Intel το οποίο να υπολογίζει το αποτέλεσμα της διαίρεσης δύο αριθμών (15 µε το 5). Εργαστήριο Μικροϋπολογιστικών Συστημάτων 17

17 ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ & ΛΕΙΤΟΥΡΓΙΑΣ Η/Υ Διδάσκων: Ευάγγελος Τοπάλης Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών ΑΣΚΗΣΗ 3 ΛΟΓΙΚΕΣ ΠΡΑΞΕΙΣ, ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ, ΕΝΤΟΛΕΣ ΣΥΓΚΡΙΣΗΣ, ΕΝΤΟΛΕΣ ΔΙΑΚΛΑΔΩΣΗΣ, ΑΜΕΣΗ ΠΡΟΣΒΑΣΗ ΣΤΗ VGA, ΔΟΜΗΣΗ ΥΠΟΡΟΥΤΙΝΑΣ ΠΑΡΑ ΕΙΓΜΑ 1 Παράδειγµα προγράµµατος λογικών πράξεων Εργαστήριο Μικροϋπολογιστικών Συστημάτων 18

18 ;**************************************************************** ; Παράδειγµα προγράµµατος λογικών πράξεων ;****************************************************************.386 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για code SEGMENT USE16 PARA PUBLIC 'CODE' ;έναρξη του τµήµατος κώδικα µε όνοµα code ASSUME CS:code,DS:data,SS:stack ;καθορισµός του ονόµατος που συνδέεται µε το τµήµα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος PUSH DS ;αποθήκευση της θέσης του καταχωρητή DS SUB AX, AX ;µηδένισε τον καταχωρητή AX PUSH AX ;τοποθέτηση του AX στη στοίβα MOV AX, data ;τοποθέτησε στον AX τη θέση των δεδοµένων MOV DS, AX ;τοποθέτησέ την διεύθυνση αυτή στον καταχωρητή του τµήµατος των δεδοµένων DS MOV AL, IN1 ;φόρτωσε την πρώτη είσοδο στον καταχωρητή AL NOT AL ;αντιστροφή των bits στον AL (πράξη NOT) MOV AH, IN2 ;φόρτωσε την δεύτερη είσοδο στο καταχωρητή AH AND AL, AH ;εφάρµοσε τη λογική πράξη AND σε αυτές τις δύο MOV BL, IN3 ;φόρτωσε την τρίτη είσοδο στον καταχωρητή BL NOT BL ;αντιστροφή των bits στον ΒL (πράξη NOT) OR BL, IN4 ;εφάρµοσε τη λογική πράξη OR σε αυτές τις δύο XOR AL, BL ;εφάρµοσε τη λογική πράξη XOR στις εξόδους MOV ANS, AL ;αποθήκευσε το αποτέλεσµα (που προέκυψε στον AL) στο ANS MOV AH, 4Ch ;ρουτίνα τερµατισµού εργασίας (4Ch:process termination) INT 21h ;τερµατισµός CODE ENDS ;τέλος του τµήµατος κώδικα data SEGMENT para public ;καθορισµός του τµήµατος δεδοµένων IN1 DB B ;καθορισµός δεδοµένων ενός byte µε δεδοµένη τιµή, τα οποία δίνονται σε δυαδική (Binary) µορφή IN2 DB B IN3 DB B IN4 DB B Εργαστήριο Μικροϋπολογιστικών Συστημάτων 19

19 ANS DB? ;δεσµεύει ένα byte στη µνήµη χωρίς κάποιο συγκεκριµένο περιεχόµενο, όπου θα αποθηκευτεί το αποτέλεσµα το οποίο θα προκύψει από τις λογικές πράξεις data ENDS ;τέλος του τµήµατος δεδοµένων µε όνοµα data stack SEGMENT STACK ;τµήµα στοίβας µε όνοµα stack DB 64 DUP (0) ;ορισµός χώρου στοίβας (64 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) stack ENDS ;τέλος του τµήµατος της στοίβας µε όνοµα stack END START ;τέλος του assembly προγράµµατος ΠΑΡΑ ΕΙΓΜΑ 2 Παράδειγµα προγράµµατος που εµφανίζει στην οθόνη όλους τους χαρακτήρες και σύµβολα της µηχανής. ;**************************************************************** ; Παράδειγµα προγράµµατος που εµφανίζει στην οθόνη όλους τους χαρακτήρες ; και σύµβολα της µηχανής. ;****************************************************************.386 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για code SEGMENT USE16 PARA PUBLIC 'CODE' ;έναρξη του τµήµατος κώδικα µε όνοµα code ASSUME CS:code,DS:data,SS:stack ;καθορισµός του ονόµατος που συνδέεται µε το τµήµα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος MOV CX, 256 ;αρχική τιµή του πλήθους των επαναλήψεων MOV DL, 01h ;ο πρώτος κωδικός του αλφάβητου NEXT: MOV AH, 02h ;η ρουτίνα εµφάνισης χαρακτήρα που βρίσκεται στον DL INT 21h ;εµφάνιση στην οθόνη του χαρακτήρα INC DL ;προετοιµασία του καταχωρητή για τον επόµενο κωδικό LOOP NEXT ;µειώνει το µετρητή CX κατά 1 και όσο δεν είναι 0 MOV AH, 4Ch ;ρουτίνα τερµατισµού εργασίας (4Ch:process termination) INT 21h ;τερµατισµός code ENDS ;τέλος του τµήµατος κώδικα data SEGMENT para public ;καθορισµός του τµήµατος δεδοµένων data ENDS ;τέλος του τµήµατος δεδοµένων µε όνοµα data stack SEGMENT STACK ;τµήµα στοίβας µε όνοµα stack DB 64 DUP (0) ;ορισµός χώρου στοίβας (64 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) stack ENDS ;τέλος του τµήµατος της στοίβας µε όνοµα stack END START ;τέλος του assembly προγράµµατος Σηµείωση 3.1: Εργαστήριο Μικροϋπολογιστικών Συστημάτων 20

20 02H Entry Notes WRITE TO STANDARD OUTPUT DEVICE AH = 02H DL = ASCII character to be displayed This function call normally displays data on the video display. Σηµείωση 3.2: LOOP/LOOPD Loop until CX = 0 or ECX = disp LOOP label LOOP NEXT /5 LOOPD label LOOP BACK /5 LOOPD LOOPS / /6 Pentium 5/6 LOOPE/LOOPED Loop while equal disp LOOPE label LOOPE AGAIN /6 LOOPED label LOOPED UNTIL /6 LOOPZ label LOOPZ ZORRO /4 LOOPE label LOOPE AGAIN /6 Pentium 7/8 LOOPNE/LOOPNED Loop while not equal disp Εργαστήριο Μικροϋπολογιστικών Συστημάτων 21

21 LOOPNE label LOOPNE FORWARD /5 LOOPNED label LOOPNED UPS /5 LOOPNZ label LOOPNZ TRY_AGAIN /4 LOOPNZD label LOOPNZD WOO /6 Pentium 7/8 ΠΑΡΑ ΕΙΓΜΑ 3 Παράδειγµα προγράµµατος το οποίο διαβάζει ένα πλήκτρο (key) και εµφανίζει το χαρακτήρα του πλήκτρου (ενώ µε το πλήκτρο % το πρόγραµµα τερµατίζει). ;**************************************************************** ; Παράδειγµα προγράµµατος το οποίο διαβάζει ένα πλήκτρο (key) και εµφανίζει το ; χαρακτήρα του πλήκτρου (ενώ µε το πλήκτρο % το πρόγραµµα τερµατίζει). ;****************************************************************.386 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για code SEGMENT USE16 PARA PUBLIC 'CODE' ;έναρξη του τµήµατος κώδικα µε όνοµα code ASSUME CS:code,DS:data,SS:stack ;καθορισµός του ονόµατος που συνδέεται µε το τµήµα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος MAIN: MOV AH, 06h ;ρουτίνα ανάγνωσης πλήκτρου (06h: direct console I/O) MOV DL, 0FFh ;ρουτίνα ανάγνωσης πλήκτρου, εάν DL=0FFh τότε διαβάζουμε από την κονσόλα INT 21h ;διακοπή για ανάγνωση πλήκτρου από το πληκτρολόγιο JE MAIN ;εάν δεν πατηθεί κάποιο πλήκτρο (key) διάβασε ξανά CMP AL, '%' ;εάν είναι ο χαρακτήρας % τότε τερµατίζει JE MAIN1 ;εάν είναι ο χαρακτήρας % τότε τερµατίζει MOV AH, 06h ;η ρουτίνα εµφάνισης χαρακτήρα που βρίσκεται στον DL ή και με την 02h MOV DL, AL ;τοποθετεί τον χαρακτήρα στον καταχωρητή DL INT 21h ;εµφάνιση στην οθόνη του χαρακτήρα JMP MAIN ;επανάληψη όλης της διαδικασίας Εργαστήριο Μικροϋπολογιστικών Συστημάτων 22

22 MAIN1: MOV AH, 4Ch ;ρουτίνα τερµατισµού εργασίας (4Ch:process termination) INT 21h ;τερµατισµός code ENDS ;τέλος του τµήµατος κώδικα data SEGMENT para public ;καθορισµός του τµήµατος δεδοµένων data ENDS ;τέλος του τµήµατος δεδοµένων µε όνοµα data stack SEGMENT STACK ;τµήµα στοίβας µε όνοµα stack DB 64 DUP (0) ορισµός χώρου στοίβας (64 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) stack ENDS ;τέλος του τµήµατος της στοίβας µε όνοµα stack END START ;τέλος του assembly προγράµµατος Σηµείωση 3.3: 06H Entry Exit Notes DIRECT CONSOLE READ/WRITE AH = 06H DL = 0FFH or DL = ASCII character AL = ASCII character If DL = 0FFH on entry, then this function reads the console. If DL = ASCII character, then this function displays the ASCII character on the console (CON) video screen. If a character is read from the console keyboard, the zero flag (ZF) indicates whether a character was typed. A zero condition indicates no key was typed, and a not-zero condition indicates that AL contains the ASCII code of the key or a 00H. If AL = 00H, the function must again be invoked to read an extended ASCII character from the keyboard. Note that the key does not echo to the video screen. Σηµείωση 3.4: 02H Entry Notes WRITE TO STANDARD OUTPUT DEVICE AH = 02H DL = ASCII character to be displayed This function call normally displays data on the video display. Σηµείωση 3.5: Εργαστήριο Μικροϋπολογιστικών Συστημάτων 23

23 Jcondition Conditional jump 0111cccc disp Jcnd label JA ABOVE /4 (8-bit disp) JB BELOW /4 JG GREATER /3 JE EQUAL /3 JZ ZERO /1 Pentium cccc disp Jcnd label JNE NOT_MORE 8086 (16-bit disp) JLE LESS_OR_SO / /1 Pentium 1 Condition Codes Mnemonic Flag Description 0000 JO O = 1 Jump if overflow 0001 JNO O = 0 Jump if no overflow 0010 JB/NAE C = 1 Jump if below 0011 JAE/JNB C = 0 Jump if above or equal 0100 JE/JZ Z = 1 Jump if equal/zero 0101 JNE/JNZ Z = 0 Jump if not equal/zero 0110 JBE/JNA C = 1 + Z = 1 Jump if below or equal 0111 JA/JNBE C = 0 Z = 0 Jump if above 1000 JS S = 1 Jump if sign 1001 JNS S = 0 Jump if no sign 1010 JP/JPE P = 1 Jump if parity Εργαστήριο Μικροϋπολογιστικών Συστημάτων 24

24 1011 JNP/JPO P = 0 Jump if no parity 1100 JL/JNGE S O Jump if less than 1101 JGE/JNL S = 0 Jump if greater than or equal 1110 JLE/JNG Z = 1 + S O Jump if less than or equal 1111 JG/JNLE Z = 0 + S = O Jump if greater than ΠΑΡΑ ΕΙΓΜΑ 4 Παράδειγµα προγράµµατος το οποίο υπολογίζει το μέγιστο μεταξύ δύο αριθμών και τον αποθηκεύει σε μία μεταβλητή. ;**************************************************************** ; Παράδειγµα προγράµµατος το οποίο υπολογίζει το μέγιστο μεταξύ δύο αριθμών ; και τον αποθηκεύει σε μία μεταβλητή. ;****************************************************************.386 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για mycode SEGMENT USE16 PARA PUBLIC 'CODE' ;έναρξη του τµήµατος κώδικα µε όνοµα code ASSUME CS:mycode,DS:mydata,SS:stack ;καθορισµός του ονόµατος που συνδέεται µε το τµήµα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος MOV AX, mydata ;τοποθέτησε στον AX τη διεύθυνση των δεδοµένων MOV DS, AX ;τοποθέτησε αυτή τη διεύθυνση στον καταχωρητή του τµήµατος δεδοµένων DS MOV AL, NUM1 ;τοποθέτησε τον πρώτο αριθµό (NUM1) στο καταχωρητή AL CMP AL, NUM2 ;σύγκρινε τον πρώτο αριθμό (NUM1) µε τον δεύτερο (NUM2) JA ADR ;εάν ο πρώτος αριθμός (NUM1) είναι μεγαλύτερος από τον δεύτερο αριθμό (NUM2) πήγαινε στο ADR MOV AL, NUM2 ;βάλε τον δεύτερο αριθμό (NUM2) στον καταχωρητή AL MOV ANS, AL ;τοποθέτησε τον καταχωρητή AL, ο οποίος περιέχει τον NUM2, στο ANS JMP FIN ;πήγαινε στο FIN ADR: MOV ANS, AL ;τοποθέτησε τον AL, ο οποίος περιέχει τον NUM1, στο ANS MOV AH, 4Ch ;ρουτίνα τερµατισµού εργασίας (4Ch:process termination) FIN: INT 21h ;τερµατισµός mycode ENDS ;τέλος του τµήµατος κώδικα mydata SEGMENT para public 'DATA' ;καθορισµός του τµήµατος δεδοµένων NUM1 DB B ;καθορισµός δεδοµένων ενός byte µε δεδοµένη τιµή, τα οποία δίνονται σε δυαδική (Binary) µορφή Εργαστήριο Μικροϋπολογιστικών Συστημάτων 25

25 NUM2 DB B ANS DB? ;δεσµεύει ένα byte στη µνήµη χωρίς κάποιο συγκεκριµένο περιεχόµενο, όπου θα αποθηκευτεί ο μέγιστος αριθμός mydata ENDS ;τέλος του τµήµατος δεδοµένων µε όνοµα mydata stack SEGMENT STACK ;τµήµα στοίβας µε όνοµα stack DB 64 DUP (0) ;ορισµός χώρου στοίβας (64 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) stack ENDS ;τέλος του τµήµατος της στοίβας µε όνοµα stack END start ;τέλος του assembly προγράµµατος ΠΑΡΑ ΕΙΓΜΑ 5 Παράδειγµα προγράµµατος που καθαρίζει την οθόνη και τυπώνει ένα μήνυμα με άμεση πρόσβαση στην VGA text memory του υπολογιστή. Επιπλέον χρησιμοποιείται ένα σύνολο πολύ χρήσιμων εντολών και ψευδοεντολών και τέλος παρουσιάζεται ο τρόπος δόμησης μια υπορουτίνας και η κλήση αυτής από το κυρίως πρόγραμμα. ;**************************************************************** ; Παράδειγµα προγράµµατος που καθαρίζει την οθόνη και τυπώνει ένα μήνυμα ;με άμεση πρόσβαση στην VGA text memory του υπολογιστή. ;****************************************************************.486 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για vidmem equ 0b800h ;αρχή της VGA text-memory color equ 7 ;color attribute (χρώματα), background & foreground color scrw equ 80*25 ;screen words, ορισμός όλης της οθόνης, τα equ αντίστοιχα define eom equ 0 ;end of message, ορισμός του eom (end of message) STACK_SEG segment para STACK ;τµήµα στοίβας µε όνοµα stack_seg db 256 dup (0) ;ορισµός χώρου στοίβας (256 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) STACK_SEG ends ;τέλος του τµήµατος της στοίβας µε όνοµα stack_seg DATA_SEG segment para public ;καθορισµός του τµήµατος δεδοµένων line dw 160d ;που θέλουμε να ξεκινήσει η εκτύπωση (160o byte από εκεί που αρχίζει, /2 80, 2 η γραμμή) msg db 'Hello World' ;το μήνυμα που θέλουμε να τυπώσουμε, (ένας χαρακτήρας 2 Bytes, 1 byte ο χαρακτήρας και 1 byte το χρώμα) db eom ;ένα byte το end of message (eom) DATA_SEG ends ;τέλος του τµήµατος δεδοµένων CODE_SEG segment USE16 para public 'code' ;έναρξη του τµήµατος κώδικα Εργαστήριο Μικροϋπολογιστικών Συστημάτων 26

26 assume cs:code_seg,ds:data_seg ;καθορισµός του ονόµατος που συνδέεται µε το τµήµα START: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος main proc far ;κύριο μέρος του προγράμματος mov ax,data_seg ;τοποθετεί το data_seg στον ax mov ds,ax ;τοποθετεί τον ax στον ds, ορίζει δηλαδή στον ds το data segement mov ax,vidmem ;τοποθετεί την αρχή της VGA text-memory στον ax mov es,ax ;τοποθετεί τον ax στο es (extra segement), es extra segment επιπλέον τμήμα, κρατά δεδομένα προορισμού των εντολών διαχείρισης συμβολοσειρών strings call cls ;καλεί την cls (καθαρίζει την οθόνη) call printstr ;καλεί την printstr (τυπώνει το κείμενο) MOV AH, 4Ch ;ρουτίνα τερµατισµού εργασίας (4Ch:process termination) INT 21h ;τερµατισµός main endp ;τέλος του κύριου προγράµµατος ;Subroutines (υπορουτίνες) cls proc near ; Clear screen (καθαρισμός οθόνης) mov di,0 ;καθαρισμός του DI, di δείκτης προορισμού mov al,' ' ;τοποθετώ τον χαρακτήρα space, το κενό στον AL mov ah,color ;τοποθετώ τον κωδικό του χρώματος στον AH ;space character + color = 1 byte + 1 byte = 2 bytes mov cx,scrw ;φορτώνεις το νούμερο 80x25 στον counter cx rep stosw ;stosw, AX ES:DI, DI DI+2, κάνει repeat to stosw όσες φορές λέει ο CX, es extra segment επιπλέον τμήμα, κρατά δεδομένα προορισμού των εντολών διαχείρισης συμβολοσειρών strings ret ;return from procedure cls endp ;τέλος της cls printstr proc near ;εκτύπωση χαρακτήρων lea si,msg ;φόρτωσε την διεύθυνση του msg στον SI, load effective address, lea reg,mem, si δείκτης πηγής mov di,line ;ορίζουμε από που θα ξεκινήσουμε να τυπώνουμε, di δείκτης προορισμού prints_loop: cmp byte ptr[si],eom ;συγκρίνει τον χαρακτήρα που δείχνει ο SI με τον eom, cmp mem,imm, συγκρίνει τα δεδομένα της διεύθυνσης μνήμης που δείχνει ο si, μεγέθους 1 byte, με το eom je prints_exit ;εάν είναι ίσοι τότε κάνει Jmp στην prints_exit movsb ;αλλιώς πάει στον επόμενο χαρακτήρα, move string data, πέρνουμε τα δεδομένα από τον ds:si es:di, di di+2, si si+2 inc di ;αυξάνουμε τον di κατά ένα, πάμε στην επόμενη θέση jmp prints_loop ;πάει στο prints_loop, ώστε να τυπώσουμε και τους επόμενους χαρακτήρες prints_exit: ret ;return from procedure printstr endp ;τέλος της printstr Εργαστήριο Μικροϋπολογιστικών Συστημάτων 27

27 CODE_SEG ends ;τέλος του τµήµατος κώδικα end start ;τέλος του assembly προγράµµατος Σηµείωση 3.6: Ένας χαρακτήρας αποτελείται από δύο bytes, το πρώτο byte έχει τον χαρακτήρα και το δεύτερο byte έχει τον συνδυασμό του background χρώματος και του foreground χρώματος. Η οθόνη DOS έχει 80*25 χαρακτήρες. H VGA άρχιζε παλιότερα από 0b000h, στα νεότερα υπολογιστικά συστήματα αρχίζει από 0b800h. Σηµείωση 3.7: Ανάλογα με τον κωδικό που χρησιμοποιείτε για το χρώμα (color) έχετε και το ανάλογο αποτέλεσμα στην εκτύπωση. Συνδυάζοντας το foreground και το background κωδικό μπορείτε να έχετε όποιον συνδυασμό θέλετε, μεταξύ των χρωμάτων που θα εμφανιστούν στο foreground και στο background. Εργαστήριο Μικροϋπολογιστικών Συστημάτων 28

28 ΠΡΟΒΛΗΜΑΤΑ ΑΣΚΗΣΗΣ 3 ΛΟΓΙΚΕΣ ΠΡΑΞΕΙΣ, ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ, ΕΝΤΟΛΕΣ ΣΥΓΚΡΙΣΗΣ, ΕΝΤΟΛΕΣ ΔΙΑΚΛΑΔΩΣΗΣ, ΑΜΕΣΗ ΠΡΟΣΒΑΣΗ ΣΤΗ VGA, ΔΟΜΗΣΗ ΥΠΟΡΟΥΤΙΝΑΣ ΠΡΟΒΛΗΜΑ 1 Να γραφεί πρόγραµµα σε assembly των επεξεργαστών της Intel το οποίο να υλοποιεί το παρακάτω κύκλωμα. Για εισόδους βάλτε τις παρακάτω τιμές INS INS INS INS INS ΠΡΟΒΛΗΜΑ 2 Να γραφεί πρόγραµµα σε assembly της Intel το οποίο να το μέγιστο μεταξύ τεσσάρων αριθμών και τον αποθηκεύει σε μία μεταβλητή. Εργαστήριο Μικροϋπολογιστικών Συστημάτων 29

29 ΠΡΟΒΛΗΜΑ 3 Να γραφεί πρόγραµµα σε assembly της Intel το οποίο να καθαρίζει την οθόνη, να τυπώνει ένα μήνυμα (My name is) με πράσινα γράμματα σε μπλε φόντο, και μετά το μήνυμα (το όνομα σας) με κόκκινα γράμματα σε άσπρο φόντο, χρησιμοποιώντας άμεση πρόσβαση στην VGA text memory του υπολογιστή. ΠΡΟΒΛΗΜΑ 4 Να γραφεί πρόγραµµα σε assembly των επεξεργαστών της Intel το οποίο να υλοποιεί το παρακάτω κύκλωμα. Για εισόδους βάλτε τις παρακάτω τιμές INS INS INS INS INS INS Εργαστήριο Μικροϋπολογιστικών Συστημάτων 30

30 ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ & ΛΕΙΤΟΥΡΓΙΑΣ Η/Υ Διδάσκων: Ευάγγελος Τοπάλης Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών ΑΣΚΗΣΗ 4 ΡΟΥΤΙΝΕΣ ΚΑΘΥΣΤΕΡΗΣΗΣ, ΑΜΕΣΗ ΠΡΟΣΒΑΣΗ ΣΤΗ VGA text memory ΤΟΥ Η/Υ, ΥΠΟΡΟΥΤΙΝΕΣ, ΠΙΝΑΚΕΣ ΠΑΡΑ ΕΙΓΜΑ 1 Παράδειγµα προγράµµατος στο οποίο δημιουργούμε ένα απλό animation με άμεση πρόσβαση στην VGA text memory του υπολογιστή. Για το σκοπό αυτό πρέπει να δημιουργήσουμε timing delay loops. Το τελευταίο γίνεται με δύο τρόπους. Σε έναν από αυτούς Εργαστήριο Μικροϋπολογιστικών Συστημάτων 31

31 χρησιμοποιούμε τον timer του bios. ;**************************************************************** ; Παράδειγµα προγράµµατος στο οποίο δημιουργούμε ένα απλό animation με στην ; VGA text άμεση πρόσβαση memory του υπολογιστή ;****************************************************************.486 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για vidmem equ 0b800h ;αρχή της VGA text-memory nora equ 2 ;nora=color attribute (χρώματα), background & foreground color scrw equ 80*25 ;25=lines 80=chars per line, screen words, ορισμός όλης της οθόνης, τα equ αντίστοιχα define eom equ 0 ;end of message, ορισμός του eom (end of message) STAC_SEG segment USE16 para stack ;τµήµα στοίβας µε όνοµα stack_seg db 256 dup (' ') ;ορισµός χώρου στοίβας (256 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) STAC_SEG ends ;τέλος του τµήµατος της στοίβας µε όνοµα stack_seg DATA_SEG segment USE16 para public ;καθορισµός του τµήµατος δεδοµένων linb dw 320d ;που θέλουμε να ξεκινήσει η εκτύπωση (320o byte από εκεί που αρχίζει, /2 160, 2 η γραμμή) mess db '(***.***)' ;το μήνυμα που θέλουμε να τυπώσουμε, (ένας χαρακτήρας 2 Bytes, 1 byte ο χαρακτήρας και 1 byte το χρώμα) db eom ;ένα byte το end of message (eom) DATA_SEG ends ;τέλος του τµήµατος δεδοµένων CODE_SEG segment USE16 para public 'CODE' ;έναρξη του τµήµατος κώδικα assume cs:code_seg,ds:data_seg ;καθορισµός του ονόµατος που συνδέεται µε το τµήµα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος main proc far ;κύριο μέρος του προγράμματος mov ax,data_seg ;τοποθετεί το data_seg στον ax mov ds,ax ;τοποθετεί τον ax στον ds, ορίζει δηλαδή στον ds το data segement mov ax,vidmem ;τοποθετεί την αρχή της VGA text-memory στον ax mov es,ax ;τοποθετεί τον ax στο es (extra segement), es extra segment επιπλέον τμήμα, κρατά δεδομένα προορισμού των εντολών διαχείρισης συμβολοσειρών strings mov dx,1 ;πόσες φορές θα επαναληφθεί το loop aa: l0: mov cx,100 ;πόσους χαρακτήρες θα μετακινηθεί cmp dx,0 je p_exit ;εάν είναι ίσοι τότε κάνει Jmp στην p_exit call cls ;καλεί την cls (καθαρίζει την οθόνη) call prim ;καλεί την prim (τυπώνει το κείμενο) call Sleep55 Εργαστήριο Μικροϋπολογιστικών Συστημάτων 32

32 l1: inc linb ;που θα εκτυπωθεί το μήνυμα inc linb ;που θα εκτυπωθεί το μήνυμα loop l0 mov cx,100 call cls ;καλεί την cls (καθαρίζει την οθόνη) call prim ;καλεί την prim (τυπώνει το κείμενο) call Sleep55 dec linb dec linb loop l1 dec dx jmp aa p_exit: mov ah,4ch ;ρουτίνα τερµατισµού εργασίας (4Ch:process termination) int 21h ;τερµατισµός main endp ;τέλος του κύριου προγράµµατος ;Subroutines (υπορουτίνες) cls proc near ; Clear screen (καθαρισμός οθόνης) push cx mov di,0 ;καθαρισμός του DI, di δείκτης προορισμού mov al,' ' ;τοποθετώ τον χαρακτήρα space, το κενό στον AL mov ah,nora ;τοποθετώ τον κωδικό του χρώματος στον AH ;space character + color = 1 byte + 1 byte = 2 bytes mov cx,scrw ;φορτώνεις το νούμερο 80χ25 στον counter cx rep stosw ;stosw, AX ES:DI, DI DI+2, κάνει repeat to stosw όσες φορές λέει ο CX, es extra segment επιπλέον τμήμα, κρατά δεδομένα προορισμού των εντολών διαχείρισης συμβολοσειρών strings pop cx ret ;return from procedure cls endp ;τέλος της cls prim proc near ;εκτύπωση χαρακτήρων lea si,mess ;φόρτωσε την διεύθυνση του mess στον SI, load effective address, lea reg,mem, si δείκτης πηγής mov di,linb ;ορίζουμε από που θα ξεκινήσουμε να τυπώνουμε, di δείκτης προορισμού msgloo: cmp byte ptr[si],eom ;συγκρίνει τον χαρακτήρα που δείχνει ο SI με τον eom, cmp mem,imm, συγκρίνει τα δεδομένα της διεύθυνσης μνήμης που δείχνει ο si, μεγέθους 1 byte, με το eom je priex ;εάν είναι ίσοι τότε κάνει Jmp στην priex exit movsb ;αλλιώς πάει στον επόμενο χαρακτήρα, move string data, πέρνουμε τα δεδομένα από τον ds:si es:di, di di+2, si si+2 inc di ;αυξάνουμε τον di κατά ένα, πάμε στην επόμενη θέση Εργαστήριο Μικροϋπολογιστικών Συστημάτων 33

33 jmp msgloo ;πάει στο msgloop, ώστε να τυπώσουμε και τους επόμενους χαρακτήρες priex: ret ;return from procedure prim endp Delay proc near ;δεν είναι σταθερή σε κάθε υπολογιστικό σύστημα push cx mov cx,0fff0h delay_loop: loop delay_loop pop cx ret ;return from procedure Delay endp ;τέλος της delay Sleep55 PROC NEAR push es push ax push cx mov cx,1d sleep110ms: mov ax,40h mov es,ax ;waits 1 sec (19*52ms), ανεξάρτητο υπολογιστικού συστήματος mov ax,es:[6ch] ;RTC textequ <es:[6ch]>, 40h Bios data Area 6Ch Timer Counter DWORD RTC_MustChange2: cmp ax,es:[6ch] ;RTC ;loops μέχρι το RTC να αλλάξει je RTC_MustChange2 ;εάν είναι ίσοι τότε κάνει Jmp στην RTC_MustChange2 loop sleep110ms pop cx pop ax pop es ret ;return from procedure ;waits 52ms Sleep55 ENDP ;τέλος της sleep55 CODE_SEG ends ;τέλος του τµήµατος κώδικα end start ;τέλος του assembly προγράµµατος Εργαστήριο Μικροϋπολογιστικών Συστημάτων 34

34 Σημείωση: Timing Delay Loops Most of the time the computer runs too slow for most people's tastes. However, there are occasions when it actually runs too fast. One common solution is to create an empty loop to waste a small amount of time. In Pascal you will commonly see loops like: for i := 1 to do ; In assembly, you might see a comparable loop: mov cx, 8000h DelayLp: loop DelayLp By carefully choosing the number of iterations, you can obtain a relatively accurate delay interval. There is, however, one catch. That relatively accurate delay interval is only going to be accurate on your machine. If you move your program to a different machine with a different CPU, clock speed, number of wait states, different sized cache, or half a dozen other features, you will find that your delay loop takes a completely different amount of time. Since there is better than a hundred to one difference in speed between the high end and low end PCs today, it should come as no surprise that the loop above will execute 100 times faster on some machines than on others. The fact that one CPU runs 100 times faster than another does not reduce the need to have a delay loop which executes some fixed amount of time. Indeed, it makes the problem that much more important. Fortunately, the PC provides a hardware based timer which operates at the same speed regardless of the CPU speed. This timer maintains the time of day for the operating system, so it's very important that it run at the same speed whether you're on an 8088 or a Pentium. In the chapter on interrupts you will learn to actually patch into this device to perform various tasks. For now, we will simply take advantage of the fact that this timer chip forces the CPU to increment a 32 bit memory location (40:6ch) about 18.2 times per second. By looking at this variable we can determine the speed of the CPU and adjust the count value for an empty loop accordingly. The basic idea of the following code is to watch the BIOS timer variable until it changes. Once it changes, start counting the number of iterations through some sort of loop until the BIOS timer variable changes again. Having noted the number of iterations, if you execute a similar loop the same number of times it should require about 1/18.2 seconds to execute The following program demonstrates how to create such a Delay routine:.xlist include stdlib.a includelib stdlib.lib.list ; PPI_B is the I/O address of the keyboard/speaker control ; port. This program accesses it simply to introduce a ; large number of wait states on faster machines. Since the ; PPI (Programmable Peripheral Interface) chip runs at about ; the same speed on all PCs, accessing this chip slows most ; machines down to within a factor of two of the slower ; machines. PPI_B equ 61h ; RTC is the address of the BIOS timer variable (40:6ch). ; The BIOS timer interrupt code increments this 32-bit ; location about every 55 ms (1/18.2 seconds). The code ; which initializes everything for the Delay routine ; reads this location to determine when 1/18th seconds ; have passed. RTC textequ <es:[6ch]> dseg segment para public 'data' ; TimedValue contains the number of iterations the delay ; loop must repeat in order to waste 1/18.2 seconds. TimedValue word 0 ; RTC2 is a dummy variable used by the Delay routine to ; simulate accessing a BIOS variable. Εργαστήριο Μικροϋπολογιστικών Συστημάτων 35

35 RTC2 word 0 dseg ends cseg segment para public 'code' assume cs:cseg, ds:dseg ; Main program which tests out the DELAY subroutine. Main proc mov ax, dseg mov ds, ax print byte "Delay test routine",cr,lf,0 ; Okay, let's see how long it takes to count down 1/18th ; of a second. First, point ES as segment 40h in memory. ; The BIOS variables are all in segment 40h. ; ; This code begins by reading the memory timer variable ; and waiting until it changes. Once it changes we can ; begin timing until the next change occurs. That will ; give us 1/18.2 seconds. We cannot start timing right ; away because we might be in the middle of a 1/18.2 ; second period. mov ax, 40h mov es, ax mov ax, RTC RTCMustChange: cmp ax, RTC je RTCMustChange ; Okay, begin timing the number of iterations it takes ; for an 18th of a second to pass. Note that this ; code must be very similar to the code in the Delay ; routine. mov cx, 0 mov si, RTC mov dx, PPI_B TimeRTC: mov bx, 10 DelayLp: in al, dx dec bx jne DelayLp cmp si, RTC loope TimeRTC neg cx ;CX counted down! mov TimedValue, cx ;Save away mov ax, ds mov es, ax printf byte "TimedValue = %d",cr,lf byte "Press any key to continue",cr,lf byte "This will begin a delay of five " byte "seconds",cr,lf,0 dword TimedValue getc mov cx, 90 DelayIt: call Delay18 loop DelayIt Quit: ExitPgm ;DOS macro to quit program. Main endp ; Delay18-This routine delays for approximately 1/18th sec. ; Presumably, the variable "TimedValue" in DS has ; been initialized with an appropriate count down ; value before calling this code. Delay18 proc near push ds push es push ax push bx push cx push dx push si mov ax, dseg mov es, ax mov ds, ax ; The following code contains two loops. The inside ; nested loop repeats 10 times. The outside loop ; repeats the number of times determined to waste ; 1/18.2 seconds. This loop accesses the hardware Εργαστήριο Μικροϋπολογιστικών Συστημάτων 36

36 ; port "PPI_B" in order to introduce many wait states ; on the faster processors. This helps even out the ; timings on very fast machines by slowing them down. ; Note that accessing PPI_B is only done to introduce ; these wait states, the data read is of no interest ; to this code. ; ; Note the similarity of this code to the code in the ; main program which initializes the TimedValue variable. mov cx, TimedValue mov si, es:rtc2 mov dx, PPI_B TimeRTC: mov bx, 10 DelayLp: in al, dx dec bx jne DelayLp cmp si, es:rtc2 loope TimeRTC pop si pop dx pop cx pop bx pop ax pop es pop ds ret Delay18 endp cseg ends sseg segment para stack 'stack' stk word 1024 dup (0) sseg ends end Main ΠΑΡΑ ΕΙΓΜΑ 2 Παράδειγµα προγράµµατος το οποίο αθροίζει τα στοιχεία 4, 6 και 8 ενός πίνακα, και το αποτέλεσµα τοποθετείται στον AL. ;**************************************************************** ; Παράδειγµα προγράµµατος το οποίο αθροίζει τα στοιχεία 4, 6 και 8 ενός πίνακα, ; και το αποτέλεσµα τοποθετείται στον AL. ;****************************************************************.386 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για code SEGMENT USE16 PARA PUBLIC 'CODE' ;έναρξη του τµήµατος κώδικα µε όνοµα code ASSUME CS:code,DS:data,SS:stack ;καθορισµός του ονόµατος που συνδέεται µε το τµήµα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος MOV AX, data ;τα Data στον AX MOV DS, AX ;ο AX στον DS MOV AL, 0 ;µηδενισµός του αθροίσµατος MOV SI, 4 ;αναφορά στο στοιχείο 4 ADD AL, ARRAY[SI] ;πρόσθεση του 4ου στοιχείου Εργαστήριο Μικροϋπολογιστικών Συστημάτων 37

37 ADD AL, ARRAY[SI+2] ;πρόσθεση του 6ου στοιχείου ADD AL, ARRAY[SI+4] ;πρόσθεση του 8ου στοιχείου MOV AH, 4Ch ;ρουτίνα τερµατισµού εργασίας (4Ch:process termination) INT 21h ;τερµατισµός CODE ENDS ;τέλος του τµήµατος κώδικα data SEGMENT para public ;καθορισµός του τµήµατος δεδοµένων ARRAY DB 10 DUP(1) ;δέσµευση 10 θέσεων µνήµης µε περιεχόµενο 1 data ENDS ;τέλος του τµήµατος δεδοµένων µε όνοµα data stack SEGMENT STACK ;τµήµα στοίβας µε όνοµα stack DB 64 DUP (0) ;ορισµός χώρου στοίβας (64 αντίγραφα λέξεων) (Define Word DUPlicates) με συγκεκριµένο περιεχόµενο (0) stack ENDS ;τέλος του τµήµατος της στοίβας µε όνοµα stack END START ;τέλος του assembly προγράµµατος ΠΡΟΒΛΗΜΑΤΑ ΑΣΚΗΣΗΣ 4 ΡΟΥΤΙΝΕΣ ΚΑΘΥΣΤΕΡΗΣΗΣ, ΑΜΕΣΗ ΠΡΟΣΒΑΣΗ ΣΤΗ VGA text memory ΤΟΥ Η/Υ, ΥΠΟΡΟΥΤΙΝΕΣ, ΠΙΝΑΚΕΣ ΠΡΟΒΛΗΜΑ 1 Να γραφεί πρόγραµµα σε assembly των επεξεργαστών της Intel το οποίο να δημιουργείτε ένα απλό animation με άμεση πρόσβαση στην VGA text memory του υπολογιστή. Θα πρέπει να αλλάζει συνέχεια χρώματα (background και foreground) σε κάθε μετάβαση. Να ξεκινάει από την αρχή της τρίτης γραμμής. Το μήνυμα να περιέχει το όνομα σας στην μορφή (Όνομα.Επίθετο). Θα μετακινηθεί δεξιά 200 χαρακτήρες και θα ξαναγυρίσει πίσω 200 χαρακτήρες. Αυτή τη διαδικασία θα την κάνει 2 φορές. Εργαστήριο Μικροϋπολογιστικών Συστημάτων 38

38 ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ & ΛΕΙΤΟΥΡΓΙΑΣ Η/Υ Διδάσκων: Ευάγγελος Τοπάλης Δρ. Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών ΑΣΚΗΣΗ 5 ΠΙΝΑΚΕΣ, ΕΠΕΞΕΡΓΑΣΙΑ ΠΙΝΑΚΩΝ, LOOK UP TABLES, ΜΑΚΡΟΕΝΤΟΛΕΣ, ΥΠΟΡΟΥΤΙΝΕΣ ΠΑΡΑ ΕΙΓΜΑ 1 Παράδειγµα προγράµµατος στο οποίο να υλοποιηθεί πρόγραμμα το οποίο θα δέχεται από τον χρήστη τα στοιχεία ενός πίνακα 3*3. Μετά μέσω look up table να μπορεί να ξανά εισάγει στοιχεία (επιλογή 1) ή να βγαίνει από το πρόγραμμα (επιλογή 0). Εργαστήριο Μικροϋπολογιστικών Συστημάτων 39

39 .486 ;χρήση της ντιρεκτίβας για να αναγνωρίζει ο assembler εντολές για DISP MACRO X push ax ;αποθηκεύει τον ax στην στοίβα push dx ;αποθηκεύει τον ds στην στοίβα mov ah, 09h ;τυπώνει ότι έχει ο dx μέχρι να βρει $ mov dx, offset x int 21h pop dx ;καλώ από την στοίβα τον dx pop ax ;καλώ από την στοίβα τον ax ENDM vidmem equ 0b800h ;αρχή της VGA text-memory color equ 7 ;color attribute (χρώματα), background & foreground color scrw equ 80*25 ;25=lines 80=chars per line, screen words, ορισμός όλης της οθόνης, τα equ αντίστοιχα define eom equ 0 ;end of message, ορισμός του eom (end of message) STAC_SEG segment USE16 para stack ;τµήµα στοίβας µε όνοµα stack_seg db 256 dup (' ') ;ορισµός χώρου στοίβας (256 αντίγραφα λέξεων) STAC_SEG ends ;τέλος του τµήµατος στοίβας DATA_SEG segment USE16 para public ;καθορισµός του τµήµατος δεδοµένων buffer db 4 dup(0) ;4 bytes και ο επόμενος χαρακτήρας είναι $ db '$' ;ο επόμενος χαρακτήρας είναι $ mes db 10,13,13 ;αλλάζει γραμμή και ο επόμενος χαρακτήρας είναι $ db '$' me1 db ' ' ;κενός χαρακτήρας και ο επόμενος χαρακτήρας είναι $ db '$' line dw 160d ;0 contain 1'st char BUT 1 contain color line1 dw 320d mess db 'Doste ta stoixeia tou 3*3 pinaka:' db eom mes1 db ' 1) Gia na dosete kainourgia stoixeia sto pinaka.' db eom mes0 db ' 0) Gia exodo apo to programma.' db eom buf1 db 257 dup (?) ;dhmiourgei enan apithikeytiko xoro 257 theseon db eom array dw 18 dup (0) ; periexei se binary morfh ta stoixeia toy buf1 db eom DATA_SEG ends ;τέλος του τµήµατος δεδοµένων CODE_SEG segment USE16 para public 'code' ;έναρξη του τµήµατος κώδικα Εργαστήριο Μικροϋπολογιστικών Συστημάτων 40

40 assume cs:code_seg,ds:data_seg ;καθορισµός του ονόµατος που συνδέεται µε το τµήµα start: ;σηµείο (διεύθυνση) έναρξης/εισόδου του προγράµµατος main proc far ;κύριο μέρος του προγράμματος push ds ;αποθηκεύει τον ds στην στοίβα mov ax,0 ;βάζει το 0 στον ax push ax ;αποθηκεύει τον ax στην στοίβα mov ax,data_seg ;τοποθετεί το data_seg στον ax mov ds,ax ;τοποθετεί τον ax στον ds, ορίζει δηλαδή στον ds το data segement mov ax,vidmem ;τοποθετεί την αρχή της VGA text-memory στον ax mov es,ax ;τοποθετεί τον ax στο es (extra segement), es extra segment επιπλέον τμήμα, κρατά δεδομένα προορισμού των εντολών διαχείρισης συμβολοσειρών strings start1: ksana: call cls mov di,0 ;καλεί την cls (καθαρίζει την οθόνη) ;μετρητής στοιχείων, νούμερα, τοποθετεί το 0 στον di ;παίρνει τα νούμερα από το πληκτρολόγιο ;και τα βάζει στο array push di ;αποθηκεύει τον dι στην στοίβα call cls ;καλεί την cls (καθαρίζει την οθόνη) lea si,mess ;εκτυπώνει το πρώτο μήνυμα, το mess1 mov di,320d ;πηγαίνω δύο γραμμές παρακάτω dose: movsb ;( MOVSB, ES:[DI] = DS:[SI]; DI = DI ± 1; SI = SI ± 1 (byte transferred, Η εντολή MOVS μεταφέρει ένα byte, μια λέξη ή μια διπλή λέξη από μια θέση μνήμης του τμήματος δεδομένων που διευθυνσιοδοτείται από τον SI, σε μια θέση μνήμης του έξτρα τμήματος που διευθυνσιοδοτείται από τον DI.) inc di ;αυξάνει το di κατά ένα cmp byte ptr[si],eom jne dose ;jump if not equal pop di ;καλώ από την στοίβα τον di mov cx,10 ;βάζω το 10 στον cx ;αρχικοποίηση κάποιων καταχωρητών mov bx,0 ;βάζω το ο στον bx ;αρχικοποίηση κάποιων καταχωρητών readn1: mov ah,1 ;μεταφέροντας το 1 στον ah και σε συνδυασμό με το Int 21 τη συνάρτηση του dos read the keyboard, πχ πατάω συνολικά το 52, πρώτα το 5, με τη δεύτερη φορά διαβάζει το 2 int 21h mov ah,0 ;βάζω στον ah το 0 cmp al,'0' ;έλεγχος αριθμού να είναι μεταξύ 0 και 9, (σύγκριση του al με το 0) στην readn2 ;δεν κάνει έλεγχο όταν πατά το enter και βάζει μηδέν, αφού πάει ;το enter έχει κωδικό σε ascii OD ;εάν πατήσεις κάποιο χαρακτήρα εκτός 0 έως 9 τότε δεν σου βγάζει μήνυμα να το ξαναβάλεις αλλά βάζει 0 Εργαστήριο Μικροϋπολογιστικών Συστημάτων 41

41 jb readn2 ;jump if below ;για το επόμενο στοιχείο του πίνακα. cmp al,'9' ;έλεγχος αριθμού να είναι μεταξύ 0 και 9 ja readn2 ;jump if above ;για το επόμενο στοιχείο του πίνακα sub al,'0' ;σε hex μορφή το νούμερο που πατά ;π.χ. πατάω 5234 εάν έχω πατήσει το 5, ο al θα έχει το 35 (ascii κωδικοποίηση του 5), εάν αφαιρέσω το 0 (σε ascii κωδικοποίηση είναι 30), οπότε η αφαίρεση θα δώσει 5, να έχουμε δηλαδή τον δεκαδικό αριθμό που πατήθηκε, ο οποίος τελικά περιέχεται στον al, το 5 στη συγκεκριμένη περίπτωση του παραδείγματος, ;την δεύτερη φορά που θα έχω πατήσει το 2, ο al θα περιέχει το 32 (ascii κωδικοποίηση του 2), εάν αφαιρέσω το 0 (σε ascii κωδικοποίηση είναι 30), οπότε η αφαίρεση θα δώσει 2, να έχουμε δηλαδή τον δεκαδικό αριθμό που πατήθηκε, ο οποίος τελικά περιέχεται στον al, το 2 στη συγκεκριμένη περίπτωση του παραδείγματος, push ax ;αποθηκεύει τον ax στην στοίβα mov ax,bx ;βάζει τον bx στον ax, ;δηλαδή στην πρώτη περίπτωση που έχει πατηθεί μόνο το 5, το bx είναι 0, άρα ax είναι 0 ;στην δεύτερη περίπτωση που έχει πατηθεί το 2, o bx περιέχει από πριν το 5, άρα ο ax έχει το 5 mul cx ;πολλαπλασιάζει τον cx με τον ax και βάζει το αποτέλεσμα στον ax, ο cx είναι 10, άρα, ;άρα στην πρώτη περίπτωση που έχει πατηθεί το 5 ο ax έχει 0 ;άρα στην δεύτερη περίπτωση που έχει πατηθεί το 2 ο ax έχει 50 mov bx,ax ;βάζει τον ax στον bx, ;άρα στην πρώτη περίπτωση που έχει πατηθεί το 5 ο bx έχει 0 ;άρα στην δεύτερη περίπτωση που έχει πατηθεί το 2 ο bx έχει 50 pop ax ;καλώ από την στοίβα τον ax, ο οποίος περιέχει την πρώτη φορά το 5 ;καλώ από την στοίβα τον ax, ο οποίος περιέχει την δεύτερη φορά το 2 mov ah,0 ;βάζει το 0 στον ah add bx,ax ;προσθέτει τον bx με τον ax, ;άρα ο bx έχει την πρώτη φορά το 5, όταν πατήθηκε το 5 ;άρα ο bx έχει την δεύτερη φορά το 2, όταν πατήθηκε το 2...τα ίδια για τους επόμενους δύο αριθμούς του πρώτου στοιχείου, εάν έχει 4, αλλιώς με enter πάει για το επόμενο στοιχείο του πίνακα, μέσω των παραπάνω compare που έχω για above 0 και below 9. jmp readn1 ;πάω στην readn1 ξανά readn2: mov ax,bx ;ο bx περιέχει τον πραγματικό αριθμό που πατήθηκε mov array[di],ax ;di ο counter, το array είναι δομημένο σε word, ο di σε byte, τοποθετεί τελικά αυτά που έχουμε πατήσει στο array Εργαστήριο Μικροϋπολογιστικών Συστημάτων 42

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΧΡΗΣΗ ΠΛΗΚΤΡΟΛΟΓΙΟΥ, ΟΘΟΝΗΣ ΚΑΙ INTERRUPTS ΣΤΟΝ EMULATOR ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ : ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ 4 ο ΕΞΑΜΗΝΟ Μαδεµλής Ιωάννης ΧΡΗΣΗ ΠΛΗΚΤΡΟΛΟΓΙΟΥ, ΟΘΟΝΗΣ ΚΑΙ INTERRUPTS ΣΤΟΝ EMULATOR 1. ΧΡΗΣΗ

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

Writing kernels for fun and profit

Writing kernels for fun and profit Writing kernels for fun and profit Γιάννης Τσιομπίκας nuclear@memberfsforg 23 Μαρτίου 2011 Γιατί; It s FUN! Εξοικείωση με το hardware Εμβάθυνση στον θαυμαστό κόσμο των λειτουργικών συστημάτων Μια καλή

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

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

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

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

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Εισαγωγή στην Τεχνολογία της Πληροφορικής ΓΙΩΡΓΟΣ Ν. ΓΙΑΝΝΟΠΟΥΛΟΣ Λέκτορας στο Πανεπιστήμιο Αθηνών gyannop@law.uoa.gr Το «κλειστό» σύστημα ΕΙΣΟΔΟΣ ΕΠΕΞΕΡΓΑΣΙΑ

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (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

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

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

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

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

Chapter 2 * * * * * * * Introduction to Verbs * * * * * * *

Chapter 2 * * * * * * * Introduction to Verbs * * * * * * * Chapter 2 * * * * * * * Introduction to Verbs * * * * * * * In the first chapter, we practiced the skill of reading Greek words. Now we want to try to understand some parts of what we read. There are a

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

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1 Ένας υπολογιστής

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

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

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

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

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

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

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

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Το υλικό του οδηγού έχει αντικατασταθεί από το βιβλίο

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράµµατα πρέπει να πάρουµε κάποια δεδοµένα και να δώσουµε

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

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade Για να ελέγξετε το λογισμικό που έχει τώρα η συσκευή κάντε κλικ Menu > Options > Device > About Device Versions. Στο πιο κάτω παράδειγμα η συσκευή έχει έκδοση λογισμικού 6.0.0.546 με πλατφόρμα 6.6.0.207.

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

Αρχιτεκτονική-ΙΙ Μέρος 2 ο

Αρχιτεκτονική-ΙΙ Μέρος 2 ο Αρχιτεκτονική-ΙΙ Μέρος 2 ο Μικροεπεξεργαστής 8086 (Υλικό) Ι. Ν. ΕΛΛΗΝΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ-ΙΙ 2 8086 Επεξεργαστής των 16 bits/2 bytes (Ρ1) Εμφάνιση το 1978. Χαρακτηριστικά 8086 DIP-40 pins Τροφοδοσία 5V. Ρολόϊ

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

ΑΣΚΗΣΗ 5 η Η σειριακή επικοινωνία ΙΙ 1.1 ΣΚΟΠΟΣ Σκοπός της άσκησης αυτής είναι η κατανόηση σε βάθος των λειτουργιών που παρέχονται από το περιβάλλον LabView για τον χειρισµό της σειριακής επικοινωνίας

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

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

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

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

ΠΕΡΙΛΗΨΗ. Είναι γνωστό άτι καθημερινά διακινούνται δεκάδες μηνύματα (E~mail) μέσω του διαδικτύου

ΠΕΡΙΛΗΨΗ. Είναι γνωστό άτι καθημερινά διακινούνται δεκάδες μηνύματα (E~mail) μέσω του διαδικτύου GREEKLISH: ΜΙΑ ΝΕΑ ΔΙΑΛΕΚΤΟΣ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ; Α.Καράκος, Λ.Κωτούλας ΠΕΡΙΛΗΨΗ Είναι γνωστό άτι καθημερινά διακινούνται δεκάδες μηνύματα (E~mail) μέσω του διαδικτύου {INTERNEη από την μια άκρη του κόσμου

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

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

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

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Δημιουργία ενός απλού παιχνιδιού με το Gamemaker (μετάφραση από το http://www.stuffucanuse.com/downloads/gamemaker-introductionlessons/free_game_downloads_gamemaker.htm)

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

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

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

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

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

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ : ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ 4 ο ΕΞΑΜΗΝΟ Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο

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

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

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

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

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

ΣΗΜΕΙΩΣΕΙΣ ΕΡΓΑΣΤΗΡΙΟΥ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΣΗΜΕΙΩΣΕΙΣ ΕΡΓΑΣΤΗΡΙΟΥ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ Εκπαιδευτικό Σύστηµα BGC-8088 ρ. Σπύρος Α. Καζαρλής Επίκουρος Καθηγητής Σέρρες, Σεπτέµβριος 2004 1 Κεφάλαιο

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3 Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3 Κεφάλαιο 3 Οργάνωση και Λειτουργία Επεξεργαστών Σκοπός του κεφαλαίου αυτού είναι να περιγράψει την εσωτερική οργάνωση των υπολογιστών,

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

ίκτυο προστασίας για τα Ελληνικά αγροτικά και οικόσιτα ζώα on.net e-foundatio //www.save itute: http:/ toring Insti SAVE-Monit

ίκτυο προστασίας για τα Ελληνικά αγροτικά και οικόσιτα ζώα on.net e-foundatio //www.save itute: http:/ toring Insti SAVE-Monit How to run a Herdbook: Basics and Basics According to the pedigree scheme, you need to write down the ancestors of your animals. Breeders should be able easily to write down the necessary data It is better

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

Business English. Ενότητα # 9: Financial Planning. Ευαγγελία Κουτσογιάννη Τμήμα Διοίκησης Επιχειρήσεων

Business English. Ενότητα # 9: Financial Planning. Ευαγγελία Κουτσογιάννη Τμήμα Διοίκησης Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Business English Ενότητα # 9: Financial Planning Ευαγγελία Κουτσογιάννη Τμήμα Διοίκησης Επιχειρήσεων Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

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

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

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

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

Αναπαράσταση Μη Αριθμητικών Δεδομένων

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

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

Οδηγίες χρήσης υλικού D U N S Registered

Οδηγίες χρήσης υλικού D U N S Registered Οδηγίες χρήσης υλικού D U N S Registered Οδηγίες ένταξης σήματος D U N S Registered στην ιστοσελίδα σας και χρήσης του στην ηλεκτρονική σας επικοινωνία Για οποιαδήποτε ερώτηση, σας παρακαλούμε επικοινωνήστε

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

FOSSCOMM 2013 6ο Συνέδριο Κοινοτήτων Ανοιχτού Λογισμικού Σάββατο 20 Απριλίου 2013. Ομάδα Σχολής Ικάρων Εργαστήριο Arduino

FOSSCOMM 2013 6ο Συνέδριο Κοινοτήτων Ανοιχτού Λογισμικού Σάββατο 20 Απριλίου 2013. Ομάδα Σχολής Ικάρων Εργαστήριο Arduino FOSSCOMM 2013 6ο Συνέδριο Κοινοτήτων Ανοιχτού Λογισμικού Σάββατο 20 Απριλίου 2013 Ομάδα Σχολής Ικάρων Εργαστήριο Arduino Arduino Workshop LAB 1 : Παιχνίδι με έναν αισθητήρα φωτός Τι θα χρειαστούμε: 1 LED

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

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο

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

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

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

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

LESSON 9 (ΜΑΘΗΜΑ ΕΝΝΙΑ) REF : 101/011/9-BEG. 14 January 2013

LESSON 9 (ΜΑΘΗΜΑ ΕΝΝΙΑ) REF : 101/011/9-BEG. 14 January 2013 LESSON 9 (ΜΑΘΗΜΑ ΕΝΝΙΑ) REF : 101/011/9-BEG 14 January 2013 Up πάνω Down κάτω In μέσα Out/outside έξω (exo) In front μπροστά (brosta) Behind πίσω (piso) Put! Βάλε! (vale) From *** από Few λίγα (liga) Many

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Τμημα Πληροφορικης και Τηλεματικης Τσάμη Παναγιώτα ΑΜ: 20833 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Άσκηση 1 Αθήνα 13-12-2011 Αναφορά Ενότητα 1 A Δημιουργήστε στο φλοιό 3 εντολές (alias) που η

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

SOAP API. https://bulksmsn.gr. Table of Contents

SOAP API. https://bulksmsn.gr. Table of Contents SOAP API https://bulksmsn.gr Table of Contents Send SMS...2 Query SMS...3 Multiple Query SMS...4 Credits...5 Save Contact...5 Delete Contact...7 Delete Message...8 Email: sales@bulksmsn.gr, Τηλ: 211 850

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

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

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

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

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αυγερινός Αραμπατζής avi@ee.duth.gr www.aviarampatzis.com Βάσεις Δεδομένων Stored Procedures 1 Stored Routines (1/2) Τμήματα κώδικα τα

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

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω. Τι είναι το debug μαμα? Με απλά λόγια, debug (αποσφαλμάτωση αλλά που να κάθεσαι να το πεις), είναι η διαδικασία εντοπισμού και διόρθωσης σφαλμάτων που υπάρχουν σε κώδικα (ασχέτως γλώσσας προγραμματισμού).

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

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

Συστήματα Μικροϋπολογιστών ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ Συστήματα Μικροϋπολογιστών 3η Oμάδα Ασκήσεων Δημητρίου Ανδριάνα 03110684 Σκούρα Ελένη 03110721 1 η 4 η Άσκηση i) Στο πρόβλημα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης III Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz,

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

LESSON 16 (ΜΑΘΗΜΑ ΔΕΚΑΕΞΙ) REF : 102/018/16-BEG. 4 March 2014

LESSON 16 (ΜΑΘΗΜΑ ΔΕΚΑΕΞΙ) REF : 102/018/16-BEG. 4 March 2014 LESSON 16 (ΜΑΘΗΜΑ ΔΕΚΑΕΞΙ) REF : 102/018/16-BEG 4 March 2014 Family η οικογένεια a/one(fem.) μία a/one(masc.) ένας father ο πατέρας mother η μητέρα man/male/husband ο άντρας letter το γράμμα brother ο

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

Περίγραμμα. Μορφή εντολής SWI. Διακοπές Λογισμικού - SoftWare Interrupts (SWIs) Τι είναι τα SWI? Εξαιρέσεις και Διακοπές.

Περίγραμμα. Μορφή εντολής SWI. Διακοπές Λογισμικού - SoftWare Interrupts (SWIs) Τι είναι τα SWI? Εξαιρέσεις και Διακοπές. Διακοπές Λογισμικού - SoftWare Interrupts (s) Γ.Κορνάρος Σ.Μπλιώνας Περίγραμμα Τι είναι ένα SoftWare Interrupt ()? What are s useful for? What happens on an? What happens on completion? How to install

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

Δρ. Νικόλαος Σκλάβος, Διδάσκων Π.Δ. 407/80. E mail : nsklavos@ceid.upatras.gr

Δρ. Νικόλαος Σκλάβος, Διδάσκων Π.Δ. 407/80. E mail : nsklavos@ceid.upatras.gr Δρ. Νικόλαος Σκλάβος, Διδάσκων Π.Δ. 407/80 E mail : nsklavos@ceid.upatras.gr 1 Ενότητα 1 3 Πλατφόρμα ΑΤ91 Εμπορικά Διαθέσιμη Αναπτυξιακή Πλακέτα: ΑΤ91SΑΜ9261ΕΚ της εταιρείας ATMEL. Υποστηρίζει την ανάπτυξη

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

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

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

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

Ηλεκτρονικοί Υπολογιστές και Επεξεργασία Πληροφοριών

Ηλεκτρονικοί Υπολογιστές και Επεξεργασία Πληροφοριών Ενότητα 6 Ηλεκτρονικοί Υπολογιστές και Επεξεργασία Πληροφοριών Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 6-1 Στόχοι και αντικείμενο ενότητας Βασικές λειτουργίες ενός υπολογιστικού

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

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education www.xtremepapers.com UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education *6301456813* GREEK 0543/03 Paper 3 Speaking Role Play Card One 1 March 30

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

SC : Αλλαγή είδους (Sales Change)- Αριθµός Πεδίων 6.

SC : Αλλαγή είδους (Sales Change)- Αριθµός Πεδίων 6. D.P.S. 710 DRIVER Με την εγκατάσταση του οδηγού D.P.S 710 εγκαθίστανται και οι usb drivers στο φάκελο C:\DPS710_FISCAL\DRIVERS Συνδέστε την ταµειακή και στο παράθυρο που θα εµφανίσουν τα windows για την

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

Αβδέλαρου Κωνσταντίνα

Αβδέλαρου Κωνσταντίνα ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Αβδέλαρου Κωνσταντίνα 1 η Εργασία στο μάθημα Λειτουργικά Συστήματα Ταύρος, 9 Δεκεμβρίου 2014 Άσκηση 1.1 Το shell script που δημιουργήθηκε είναι:

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

STARTING STEPS IN GRAMMAR, FINAL TEST C TERM 2012 UNITS 1-18

STARTING STEPS IN GRAMMAR, FINAL TEST C TERM 2012 UNITS 1-18 STARTING STEPS IN GRAMMAR, FINAL TEST C TERM 2012 UNITS 1-18 Name.. Class. Date. EXERCISE 1 Answer the question. Use: Yes, it is or No, it isn t. Απάντηςε ςτισ ερωτήςεισ. Βάλε: Yes, it is ή No, it isn

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ στους Η/Υ. Δρ. Β Σγαρδώνη. Τμήμα Τεχνολογίας Αεροσκαφών ΤΕΙ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ. Χειμερινό Εξάμηνο 2013-14

ΕΙΣΑΓΩΓΗ στους Η/Υ. Δρ. Β Σγαρδώνη. Τμήμα Τεχνολογίας Αεροσκαφών ΤΕΙ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ. Χειμερινό Εξάμηνο 2013-14 ΕΙΣΑΓΩΓΗ στους Η/Υ Τμήμα Τεχνολογίας Αεροσκαφών ΤΕΙ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ Δρ. Β Σγαρδώνη Χειμερινό Εξάμηνο 2013-14 Εισαγωγικές Έννοιες Τι είναι ένας ηλεκτρονικός υπολογιστής ; Ιστορία των Η/Υ Αρχιτεκτονική των

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

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings). Για να λύσουμε ένα πρόβλημα στη C++ χρειαζόμαστε δυο βασικές έννοιες. Η μια είναι οι οδηγίες εντολές, ο αλγόριθμος δηλαδή, που πρέπει να ακολουθήσουμε για να λύσουμε το πρόβλημά μας και η άλλη είναι τα

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

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων Κεφάλαιο 1ο 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων http://leitourgika-systhmata-epal-b.ggia.info Creative Commons License 3.0 Share-Alike Πολυπρογραμματισμός

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

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

Ρύθμιση e-mail σε whitelist

Ρύθμιση e-mail σε whitelist Ρύθμιση e-mail σε whitelist «Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Web : www.e-base.gr E-mail : support@e-base.gr Facebook : Like Twitter : @ebasegr Πολλές φορές αντιμετωπίζετε

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

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 INTERNET PHONE

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 INTERNET PHONE INTERNET PHONE A.S. DRIGAS Applied Technologies Department NCSR DEMOKRITOS Ag. Paraskevi GREECE dr@imm.demokritos.gr http://imm.demokritos.gr Το Internet Phone θέτει καινούργια δεδοµένα για την επικοινωνία

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

Test Data Management in Practice

Test Data Management in Practice Problems, Concepts, and the Swisscom Test Data Organizer Do you have issues with your legal and compliance department because test environments contain sensitive data outsourcing partners must not see?

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

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

SPSS Statistical Package for the Social Sciences

SPSS Statistical Package for the Social Sciences SPSS Statistical Package for the Social Sciences Ξεκινώντας την εφαρμογή Εισαγωγή εδομένων Ορισμός Μεταβλητών Εισαγωγή περίπτωσης και μεταβλητής ιαγραφή περιπτώσεων ή και μεταβλητών ΣΤΑΤΙΣΤΙΚΗ Αθανάσιος

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

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

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

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

Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3. Prepared by Costantinos Costa Edited by George Nikolaides. EPL 451 - Data Mining on the Web

Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3. Prepared by Costantinos Costa Edited by George Nikolaides. EPL 451 - Data Mining on the Web EPL 451 - Data Mining on the Web Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3 Prepared by Costantinos Costa Edited by George Nikolaides Semester Project Microsoft Malware Classification Challenge (BIG 2015) More info:

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

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα Η ΓΛΩΣΣΑ C Η C είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε στις αρχές της δεκαετίας του 70 από τον Dennis Ritchie στα Bell Labs. Η σημερινή μορφή της γλώσσας ακολουθεί το πρότυπο

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

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: (Μον.2) Η ηλικία είναι μεταξύ των 15 και 18 συμπεριλαμβανομένων (β) Αν Χ= 4, Υ=2, Κ=2 να βρείτε το αποτέλεσμα

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

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

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

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

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

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

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

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

ΕΠΛ031 - Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος ΕΠΛ031 Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος Λογικές Μονάδες Μεταφορά εδομένων Μορφοποίηση εδομένων Νέαρχος Πασπαλλής Επισκέπτης Ακαδημαϊκός

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

ιαχείριση Πληροφοριών στο ιαδίκτυο

ιαχείριση Πληροφοριών στο ιαδίκτυο ιαχείριση Πληροφοριών στο ιαδίκτυο Εργαστήριο (Φυλλάδιο 8) ΤΕΙ Καβάλας - Σχολή ιοίκησης & Οικονοµίας Τµήµα ιαχείρισης Πληροφοριών ιδάσκων: Μαρδύρης Βασίλειος, ιπλ. Ηλ. Μηχανικός & Μηχ. Υπολογιστών, MSc

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

7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58

7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58 7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58 Στόχοι Μαθήματος 1. Πώς να επαναλάβετε μια δράση 2. Μάθετε πώς να χρησιμοποιείτε το Loop Blocks Προγραμματισμός EV3 Ακαδημία Ρομποτικής

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

Παιχνιδάκια με τη LOGO

Παιχνιδάκια με τη LOGO Όταν σβήνει ο υπολογιστής ξεχνάω τα πάντα. Κάτι πρέπει να γίνει Κάθε φορά που δημιουργώ ένα πρόγραμμα στη Logo αυτό αποθηκεύεται προσωρινά στη μνήμη του υπολογιστή. Αν θέλω να διατηρηθούν τα προγράμματά

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΠΟΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΠΟΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΠΟΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ Πτυχιακή εργασία Η ΕΦΑΡΜΟΓΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ HACCP ΣΕ ΜΙΚΡΕΣ ΒΙΟΤΕΧΝΙΕΣ ΓΑΛΑΚΤΟΣ ΣΤΗΝ ΕΠΑΡΧΙΑ ΛΕΜΕΣΟΥ

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

Μεταφραστής (Compiler)

Μεταφραστής (Compiler) Windows Καθαρισµος οθονης cls Unix clear Τελεστες ανακατευθυνσης > > >> >> < < Εντολες σε αρχεια * * (wild card) del Α rm Α ιαγραφη type Α cat Α Εµφανιση copy Α Β cp Α Β Αντιγραφη ren Α Β mv Α Β Αλλαγη

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

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήμερα Διάλεξη 9 - Δευτέρα while() τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές

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

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ Συμπληρωματικές Σημειώσεις Από τις διαλέξεις του κ. Σπύρου Καζαρλή ΣΠΥΡΟΣ ΚΑΖΑΡΛΗΣ Καθηγητής Δρ. Ηλεκτρολόγος Μηχανικός ΣΕΡΡΕΣ 202 Εισαγωγή στον Η/Υ BGC-8088 και τον

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

Εγχειρίδιο Χρήσης Ενημέρωσης Λογισμικού Bluetooth Windows 7

Εγχειρίδιο Χρήσης Ενημέρωσης Λογισμικού Bluetooth Windows 7 Εγχειρίδιο Χρήσης Ενημέρωσης Λογισμικού Bluetooth Windows 7 Ισχύει για προϊόντα από το 2012 και μετά CDE-13xBT & CDE-W235BT & CDA-137BTi Αυτό το εγχειρίδιο περιγράφει τα βήματα που απαιτούνται για την

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

- S P E C I A L R E P O R T - EMPLOYMENT. -January 2012- Source: Cyprus Statistical Service

- S P E C I A L R E P O R T - EMPLOYMENT. -January 2012- Source: Cyprus Statistical Service - S P E C I A L R E P O R T - UN EMPLOYMENT -January 2012- Source: Cyprus Statistical Service This Special Report is brought to you by the Student Career Advisory department of Executive Connections. www.executiveconnections.eu

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

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP Το FTP (File Transfer Protocol) είναι το εξειδικευμένο πρωτόκολλο μεταφοράς αρχείων στα σύγχρονα δίκτυα δεδομένων όπως το Διαδίκτυο. Δίνει τη δυνατότητα μεταφοράς αρχείων από τον υπολογιστή

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

Διάλεξη 6: Δείκτες και Πίνακες

Διάλεξη 6: Δείκτες και Πίνακες Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο

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