ΚΕΦΑΛΑΙΟ 7 ΗΜΙΟΥΡΓΙΑ ΤΕΛΙΚΟΥ ΚΩ ΙΚΑ

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

Download "ΚΕΦΑΛΑΙΟ 7 ΗΜΙΟΥΡΓΙΑ ΤΕΛΙΚΟΥ ΚΩ ΙΚΑ"

Transcript

1 1 ΚΕΦΑΛΑΙΟ 7 ΗΜΙΟΥΡΓΙΑ ΤΕΛΙΚΟΥ ΚΩ ΙΚΑ Στόχος Στόχος του κεφαλαίου αυτού είναι να εξηγήσει τις βασικές αρχές δηµιουργίας τελικού κώδικα. Παρουσιάζει µια µηχανή (υπολογιστή) απλής αρχιτεκτονικής, τους τρόπους προσπέλασης διευθύνσεων, την δηµιουργία τελικού κώδικα και απλούς τρόπους βελτιστοποίησης του κώδικα. Προσδοκώµενα αποτελέσµατα Όταν θα έχετε µελετήσει το κεφάλαιο αυτό θα είσαστε σε θέση να Εξηγήσετε τις έννοιες µεταθετός κώδικας, assembly πρόγραµµα και απόλυτο πρόγραµµα, Περιγράψετε ένα απλό µοντέλο υπολογιστή για την δηµιουργία τελικού κώδικα και τους τρόπους προσπέλασης διευθύνσεων για τον υπολογιστή αυτό, Υπολογίσετε το κόστος των διαφόρων εντολών του υπολογιστή µοντέλο, Εξηγήσετε την έννοια της επόµενης χρήσης των ονοµάτων, Περιγράψετε ένα απλό αλγόριθµο δηµιουργίας τελικού κώδικα από ενδιάµεσο κώδικα τριών διευθύνσεων, Εξηγήσετε την χρήση του περιγραφέα καταχωρητών και του περιγραφέα διευθύνσεων, Περιγράψετε βελτιστοποιήσεις τελικού κώδικα Έννοιες-Κλειδιά ηµιουργός κώδικα, τελικό πρόγραµµα, απόλυτο πρόγραµµα, µεταθετό πρόγραµµα, επόµενη χρήση, περιγραφέας καταχωρητών, περιγραφέας διευθύνσεων, βελτιστοποίηση peephole. Εισαγωγικές παρατηρήσεις Η τελική φάση στη διαδικασία µεταγλώττισης ενός προγράµµατος είναι η δηµιουργία κώδικα, η οποία δεν µπορεί να συζητηθεί χωρίς λεπτοµερειακή αναφορά σε συγκεκριµένο υπολογιστή. Ένας καλός αλγόριθµος δηµιουργίας κώδικα µπορεί να παράγει κώδικα που "τρέχει" πολύ πιο γρήγορα από άλλον ισοδύναµο κώδικα ο οποίος παρήχθη από κάποιον άλλο όχι πολύ ευέλικτο αλγόριθµο. Η είσοδος του ηµιουργού Κώδικα, ( Κ), υποθέτουµε ότι θα είναι κάποια µορφή ενδιάµεσου κώδικα όπως τετράδες, τριάδες, δένδρο ή postfix µορφή τις οποίες εξετάσαµε στο Κεφάλαιο 6. Η έξοδός του είναι το τελικό πρόγραµµα το οποίο µπορεί να πάρει διάφορες µορφές: απόλυτο πρόγραµµα µηχανής, relocatable πρόγραµµα µηχανής: assembly πρόγραµµα ή τέλος πρόγραµµα σε κάποια άλλη γλώσσα προγραµµατισµού. ΕΝΟΤΗΤΑ 7.1 ΕΙΣΑΓΩΓΗ (Οbject Προγράµµατα) Το απόλυτο (absolute) πρόγραµµα έχει το προσόν ότι µπορεί να τοποθετηθεί σε συγκεκριµένη περιοχή της µνήµης και να εκτελεσθεί αµέσως. Μεταγλωττιστές τύπου load-and-go για προγράµµατα σπουδαστών παράγουν απόλυτο κώδικα. Ο µεταθετός (Relocatable) κώδικας επιτρέπει την χωριστή µετάφραση ρουτινών όπως και την χρήση άλλων από βιβλιοθήκες (object modules), που συνδέονται µαζί σ' ένα πρόγραµµα από κάποιο πρόγραµµα διασύνδεσης (linker). Οι περισσότεροι Μεταγλωττιστές παράγουν µεταθετό κώδικα.

2 2 Το assembly πρόγραµµα διευκολύνει τον ηµιουργό Κώδικα µία και του επιτρέπει να φτιάξει συµβολικές εντολές και µακρο-εντολές (macros). Το κόστος στην περίπτωση αυτή είναι ότι πρέπει να γίνει και assembly µετάφραση µετά την δηµιουργία του assembly κώδικα. Παράγοντας κώδικα σε κάποια ψηλή γλώσσα προγραµµατισµού απλοποιεί παρά πολύ την δηµιουργία του κώδικα µια και την δουλειά του δηµιουργού κώδικα θα την κάνει ο Μεταγλωττιστής της γλώσσας αυτής. Συχνά είναι χρήσιµο να υποθέτουµε ότι ο ενδιάµεσος κώδικας που αποτελεί την είσοδο στον ηµιουργό Κώδικα είναι χωρισµένος σε βασικά blocks και ότι κλήσεις σε procedures προσδιορίζονται µόνο µέσα σε blocks. Με τον όρο βασικό block εννοούµε µία ακολουθία εντολών ενδιάµεσου κώδικα που ξεκινάει να εκτελείται µόνο από την αρχή και δεν περιέχει εντολές halt ή jump (εκτός από το τέλος του). Ακόµη υποθέτουµε ότι δεν είναι απαραίτητη κάποια φάση βελτιστοποίησης του ενδιάµεσου κώδικα. Ο τελικός κώδικας εξαρτάται πάρα πολύ από τον συγκεκριµένο υπολογιστή και το λειτουργικό του σύστηµα. Έστω κατ' αρχήν ότι ο τελικός κώδικας είναι γλώσσα µηχανής. εν υπάρχει πρόβληµα στην κωδικοποίηση των τελεστών σε λειτουργίες της µηχανής (υπολογιστή). Κάποια προβλήµατα παρουσιάζονται στην εκλογή των διευθύνσεων των έντελων (operands). Υποθέτουµε ότι έχει ήδη προσδιοριστεί (πριν την δηµιουργία του κώδικα) η κάθε περιοχή δεδοµένων (data area) και οι σχετικές θέσεις (offsets) κάθε ονόµατος στην περιοχή. Εν γένει αν κάποιο όνοµα A έχει θέση f, τότε µία εντολή µηχανής Ι για την οποία το A είναι έντελο θα περιέχει f στο πεδίο διεύθυνσής της. Μερικά άλλα bits της Ι όµως θα εξαρτώνται από την φύση της περιοχής δεδοµένων. Για παράδειγµα, αν το A είναι σε στατική περιοχή και δηµιουργούµε µεταθετό κώδικα, τότε το µόνο που χρειάζεται είναι να επισυνάψουµε στην εντολή Ι µία ένδειξη για τον φορτωτή (loader ) ότι η διεύθυνση της Ι πρέπει να µετασχηµατιστεί προσθέτοντας το f στην πρώτη εντολή µηχανής που αντιστοιχεί στην procedure στην οποία ανήκει το A. Αν η στοχευόµενη µηχανή χρησιµοποιεί καταχωρητές βάσης (base registers), δεν θέλουµε να µετασχηµατίσουµε την διεύθυνση της Ι, αλλά πρέπει να βάλουµε σε κατάλληλα bits της Ι τον αριθµό του καταχωρητή βάσης που έχει επιλεγεί για την περιοχή δεδοµένων. Τέλος αν δηµιουργούµε κώδικα µηχανής, τότε ο Μεταγλωττιστής πρέπει να προσθέσει την διεύθυνση αρχής της περιοχής δεδοµένων του A, την στιγµή που η εντολή Ι δηµιουργείται. Άσκηση αυτοαξιολόγησης 1 / Κεφ. 7 Προσπάθησε να συσχετίσεις τις σωστές απαντήσεις της δεξιάς στήλης. Ο µεταθετός κώδικας διευκολύνει πολύ τον ηµιουργό Κώδικα Το assembly πρόγραµµα επιτρέπει την χωριστή µετάφραση ρουτινών Το απόλυτο πρόγραµµα έχει το προσόν ότι µπορεί να τοποθετηθεί σε συγκεκριµένη περιοχή της µνήµης και να εκτελεσθεί αµέσως ΕΝΟΤΗΤΑ 7.2 ΠΡΟΒΛΗΜΑΤΑ ΚΑΤΑ ΤΗΝ ΗΜΙΟΥΡΓΙΑ ΤΕΛΙΚΟΥ ΚΩ ΙΚΑ Υπάρχουν τρεις περιοχές δυσκολίας, που αναφέρονται σε

3 3 τι εντολές µηχανής να δηµιουργήσουµε, µε ποια σειρά πρέπει να γίνουν οι υπολογισµοί και ποιοι καταχωρητές θα χρησιµοποιηθούν. Τι εντολές θα δηµιουργήσουµε, εξαρτάται από το ρεπερτόριο εντολών της στοχευόµενης µηχανής. Παράδειγµα 1 / Κεφ. 7 Για παράδειγµα, αν η µηχανή διαθέτει εντολή "πρόσθεσης-στην-µνήµη" (ADΜ), τότε η εντολή τριών διευθύνσεων A:=A+1 µπορεί να δηµιουργηθεί µε µία εντολή ADΜ A # l αντί της ακολουθίας εντολών LΟAD A; ADD # l; SΤΟRΕ A Η σειρά εκτέλεσης των εντολών µπορεί να έχει επίδραση στο πλήθος των καταχωρητών για ενδιάµεσα αποτελέσµατα. Εµείς, κατ' αρχήν θα δηµιουργούµε κώδικα για τις εντολές τριών διευθύνσεων µε την σειρά µε την οποία αυτές φτιάχτηκαν από τις σηµασιολογικές ρουτίνες. Τέλος θα αναφερθούµε στο πρόβληµα εκχώρησης καταχωρητών για τους υπολογισµούς, το οποίο γίνεται πιο πολύπλοκο σε µερικές µηχανές που απαιτούν ζεύγη καταχωρητών για ορισµένες πράξεις κυρίως αριθµητικές. Για παράδειγµα, η εντολή διαίρεσης DΙV A,Β απαιτεί ο διαιρετέος να βρίσκεται σ' ένα ζευγάρι καταχωρητών από τους οποίους ο πρώτος είναι ο A και έχει άρτια αρίθµηση (π.χ. 6), Β παριστάνει τον διαιρέτη. Μετά την διαίρεση ο άρτιος καταχωρητής (A) περιέχει το υπόλοιπο και ο γειτονικός του περιττός το πηλίκο. ΕΝΟΤΗΤΑ 7.3 ΕΝΑ ΜΟΝΤΕΛΟ ΥΠΟΛΟΓΙΣΤΗ Όπως εξηγήσαµε προηγούµενα για την δηµιουργία τελικού κώδικα χρειάζεται να αναφερθούµε σε συγκεκριµένη µηχανή. Για το λόγο αυτό θα περιγράψουµε µια µηχανή και το ρεπερτόριο εντολών της. Η µηχανή µας υποθέτουµε ότι µπορεί να προσπελάσει την µνήµη της κατά bytes και έχει συνολική µνήµη 65k bytes σε λέξεις των 16-bit. ιαθέτει οκτώ καταχωρητές γενικής χρήσης R0, R1,..,R7 µε χωρητικότητα 16-bit ο καθένας. ιαθέτει δυαδικούς τελεστές της µορφής: ΟΡ προέλευση, προορισµός όπου κάθε ΟΡ είναι κώδικας λειτουργίας των 4-bit και προέλευση και προορισµός είναι πεδία διευθύνσεων των 6-bit το καθένα. Μια και τα πεδία αυτά των 6-bit δεν είναι αρκετά µεγάλα για να επιτρέπουν άµεση προσπέλαση όλης της µνήµης, ορισµένοι συνδυασµοί από bits στα πεδία αυτά καθορίζουν ότι ορισµένες λέξεις που ακολουθούν µία εντολή θα περιέχουν έντελα και/ή διευθύνσεις. Υποθέτουµε τους παρακάτω τρόπους προσπέλασης διευθύνσεων, που παρουσιάζονται στην µνηµονική τους µορφή της assembly γλώσσας (operand addressing modes). 1. r (register mode). Ο καταχωρητής r περιέχει το έντελο. 2. *r (indirect register mode). Ο καταχωρητής r περιέχει την διεύθυνση στην οποία βρίσκεται το έντελο. 3. X(r) (Ιndexed mode). Η διεύθυνση του έντελου βρίσκεται προσθέτοντας την τιµή Χ, που βρίσκεται στην επόµενη λέξη µετά την εντολή, και το περιεχόµενο του καταχωρητή r.

4 4 4. * X(r) (indirect indexed mode). Η τιµή Χ, που βρίσκεται στην λέξη που ακολουθεί την εντολή, προστίθεται στα περιεχόµενα του r για να δώσει την διεύθυνση της λέξης που περιέχει την διεύθυνση του έντελου. 5. #Χ (immediate). Η λέξη που ακολουθεί την εντολή περιέχει το έντελο. 6. Χ (absolute). Η διεύθυνση του Χ ακολουθεί την εντολή. Μεταξύ άλλων θα χρησιµοποιήσουµε τους παρακάτω κώδικες λειτουργίας. ΜΟV (µετακίνησε την προέλευση στον προορισµό) ADD (πρόσθεσε την προέλευση στον προορισµό) SUΒ (αφαίρεσε την προέλευση από τον προορισµό) Με µερικά παραδείγµατα θα ξεκαθαρίσουµε την έννοια του µήκους (σε λέξεις) των εντολών. Θα θεωρήσουµε ότι το κόστος µίας εντολής εκφράζεται από το µήκος της σε λέξεις. Παράδειγµα 2 / Κεφ. 7 Ακολουθούν παραδείγµατα εντολών µηχανής. ΜΟV R0, R1 µεταφέρει τα περιεχόµενα του R0 στην R1 και έχει κόστος 1, µία και απασχολεί µία µόνο θέση µνήµης. ΜΟV R5, Μ µεταφέρει τα περιεχόµενα του R5 στην θέση µνήµης Μ και έχει κόστος 2, µία και η διεύθυνση της θέσης µνήµης Μ βρίσκεται στην λέξη που ακολουθεί την εντολή (absolute addressing). Άσκηση αυτοαξιολόγησης 2 / Κεφ. 7 Βρείτε τι κόστος έχει η κάθε µια από τις παρακάτω εντολές και εξηγήστε γιατί. 1. ADD #1, R3 2. SUΒ 4(R0), *5(R1) ραστηριότητα 1 / Κεφ. 7 Για να αντιληφθούµε καλύτερα µερικές από τις δυσκολίες στην δηµιουργία κώδικα, για αυτή τη µηχανή ας υποθέσουµε ότι θέλουµε να φτιάξουµε κώδικα για µία τετράδα της µορφής A:=Β+C όπου τα Β και C είναι απλές µεταβλητές σε συγκεκριµένες θέσεις µνήµης µε τα ίδια ονόµατα. Προσπαθήστε, χωρίς να κοιτάξετε την συνέχεια του κειµένου, να καταγράψετε διάφορες ακολουθίες εντολών που µπορούµε να δηµιουργήσουµε και µε τι κόστος για την κάθε ακολουθία. Μπορούµε να δηµιουργήσουµε τις παρακάτω ακολουθίες εντολών µε το αντίστοιχο κόστος τους, υποθέτοντας ότι οι καταχωρητές R1 και R2 περιέχουν τις τιµές των Β και C αντίστοιχα και η τιµή του Β δεν χρειάζεται µετά την εκχώρηση. 1. ΜΟV Β, R0 ADD C, R0 ΜΟV R0, A Κόστος 6 =================== 2. ΜΟV Β, A ADD C, A Κόστος 6 ==================== 3. ΜΟV *R1, *R0 ADD *R2, *R0 Κόστος 2

5 5 Και άλλες ακολουθίες εντολών είναι δυνατές. Για παράδειγµα, καλύτερος κώδικας µπορεί να παραχθεί για την εντολή A:=Β+C αν δηµιουργήσουµε την απλή εντολή ADD Rj, Ri, µε κόστος 1, και αφήσουµε το αποτέλεσµα A στον Ri. Αυτό είναι δυνατό µόνο όταν ο Ri περιέχει το Β, ο Rj περιέχει το C και το Β δεν χρειάζεται (not live) µετά την εντολή. Παρατηρούµε λοιπόν ότι για να παράγουµε "καλό" κώδικα για αυτή τη µηχανή (όπως και τις περισσότερες) πρέπει να κάνουµε καλή χρήση στις δυνατότητές της για προσπέλαση διευθύνσεων. Άσκηση αυτοαξιολόγησης 3 / Κεφ. 7 Σε συνέχεια των παραπάνω, αν υποθέσουµε ότι ο καταχωρητής Ri περιέχει το Β και ότι το C είναι σε θέση µνήµης µε όνοµα C µπορείτε να περιγράψετε µια ή περισσότερες ακολουθίες κώδικα, µε το αντίστοιχο κόστος τους, για την A:=Β+C; Υπόδειξη: η χρήση των καταχωρητών µειώνει το κόστος των ακολουθιών. ΕΝΟΤΗΤΑ 7.4 ΕΝΑΣ ΑΠΛΟΣ ΗΜΙΟΥΡΓΟΣ ΚΩ ΙΚΑ Θα εξετάσουµε ένα απλοποιηµένο Κ κάνοντας τις παρακάτω υποθέσεις: 1) χρησιµοποιούνται τετράδες σαν είσοδος στον Κ, 2) ο Κ "θυµάται" αν κάποιο από τα έντελα της τετράδας είναι σε κάποιο καταχωρητή, 3) για κάθε τελεστή υπάρχει αντίστοιχος κώδικας µηχανής και, 4) υπολογιζόµενα αποτελέσµατα µπορούν να παραµένουν σε καταχωρητές για όσο χρειάζεται και αποθηκεύονται αλλού όταν οι καταχωρητές χρειάζονται για άλλες πράξεις ή όταν βρισκόµαστε πριν από κλήση procedure, jump ή εντολή µε επιγραφή. Στην συνέχεια θα συζητήσουµε µερικές διευκολύνσεις που χρειαζόµαστε για τον αλγόριθµο του.κ. Επόµενη Χρήση ονοµάτων σε τετράδες που καθορίζεται ως εξής: Έστω ότι η τετράδα i εκχωρεί µία τιµή στο A. Αν η τετράδα j έχει το A σαν έντελο και ο έλεγχος µπορεί να περάσει από το i στο j, χωρίς ενδιάµεσα να υπάρχουν εκχωρήσεις στο A, τότε λέµε ότι η τετράδα j "χρησιµοποιεί" την τιµή του A που υπολογίστηκε στο j. Χρειαζόµαστε να προσδιορίσουµε για κάθε τετράδα A:=Β op C ποιες είναι οι επόµενες χρήσεις των A, Β και C και για διευκόλυνση εξετάζουµε χρήσεις µόνο µέσα στο βασικό block στο οποίο βρίσκεται η τετράδα. Ο αλγόριθµος που καθορίζει τις επόµενες χρήσεις κάνει µία οπισθοανίχνευση µέσα στο βασικό block. Έστω ότι σε κάποιο σηµείο φθάνουµε στην τετράδα i: A:=Β op C. Στην συνέχεια κάνουµε τα εξής: 1. Επισυνάπτουµε στην τετράδα i τις πληροφορίες που βρήκαµε στον Πίνακα συµβόλων σχετικά µε την επόµενη χρήση και την διάρκεια ζωής (liveness) των A,Β και C. 2. Θέτουµε στον πίνακα συµβόλων, για το A, τις ενδείξεις: "νεκρό" και "δεν έχει επόµενη χρήση". 3. Στον πίνακα συµβόλων θέτουµε στα Β και C ότι είναι "ζωντανά" και i στις "επόµενες χρήσεις" τους. Σηµειώνουµε ότι τα βήµατα (2) και (3) δεν µπορούν να αντιµετατεθούν διότι το A µπορεί να είναι το ίδιο µε το Β ή το C.

6 6 Αν η τετράδα έχει την µορφή A:=Β ή A:=op Β, τα βήµατα παραµένουν όπως είναι και αγνοείται το C. Περιγραφέας Καταχωρητών (Register Descriptor). Για να κάνουµε εκχώρηση καταχωρητών (register allocation) πρέπει να διατηρούµε ένα περιγραφέα καταχωρητών ο οποίος γνωρίζει τι βρίσκεται κάθε στιγµή µέσα στους καταχωρητές. Συµβουλευόµαστε τον περιγραφέα κάθε φορά που χρειαζόµαστε ένα καινούριο καταχωρητή. Υποθέτουµε ότι αρχικά ο περιγραφέας δείχνει ότι όλοι οι καταχωρητές είναι κενοί (διαθέσιµοι). Καθώς προχωράει η διαδικασία δηµιουργίας κώδικα για το βασικό block κάθε καταχωρητής µπορεί να κρατάει, την τιµή κανενός ή πολλών ονοµάτων. Περιγραφέας διευθύνσεων (Address Descriptor). Για κάθε όνοµα µέσα στο βασικό block θα διατηρούµε ένα περιγραφέα διεύθυνσης ο οποίος γνωρίζει την θέση (ή θέσεις) στην οποία βρίσκεται η τρέχουσα τιµή του ονόµατος κατά τον χρόνο εκτέλεσης. Η θέση αυτή µπορεί να είναι ένας καταχωρητής, µία θέση σε µια στοίβα, µία διεύθυνση µνήµης ή κάποιο σύνολο από αυτά. Η πληροφορία αυτή µπορεί να φυλάσσεται στον πίνακα συµβόλων και χρησιµοποιείται για να καθορίσει τον τρόπο προσπέλασης του ονόµατος. Άσκηση αυτοαξιολόγησης 4 / Κεφ. 7 Σαν ορισµό για την επόµενη χρήση ονόµατος µπορούµε να θεωρήσουµε τον εξής: Ένα όνοµα Α σε µια τετράδα i έχει επόµενη χρήση στην τετράδα j άν εµφανίζεται στην τετράδα αυτή (j). ιορθώστε, συµπληρώστε ή αλλάξτε τον ορισµό αυτό εάν κατά την άποψή σας δεν είναι ακριβής Ο ΑΛΓΟΡΙΘΜΟΣ ΗΜΙΟΥΡΓΙΑΣ ΚΩ ΙΚΑ Περιγράφουµε τώρα τον αλγόριθµο. Έχει δοθεί µία ακολουθία τετράδων οι οποίες αποτελούν ένα βασικό block. Για κάθε τετράδα της µορφής A:=Β op C εκτελούνται τα παρακάτω βήµατα: 1. Κάλεσε µια function GΕΤRΕG( ) για να προσδιορίσει την θέση L στην οποία θα πρέπει να εκτελεσθεί ο υπολογισµός Β op C. Η L συνήθως είναι κάποιος register αλλά µπορεί να είναι και θέση µνήµης. 2. Συµβουλεύσου τον περιγραφέα διεύθυνσης του Β για να προσδιορίσεις το Β', την τρέχουσα θέση του Β (µπορεί να είναι µία ή περισσότερες). Προτίµησε τον καταχωρητή για Β' αν η τιµή του Β είναι στην µνήµη και σε κάποιο καταχωρητή. Αν η τιµή του Β δεν είναι στην L, δηµιούργησε την εντολή ΜΟV Β', L για να βάλεις κόπια του Β στην L. 3. ηµιούργησε την εντολή ΟΡ C', L όπου C' είναι η τρέχουσα θέση του C. Ενηµέρωσε τον περιγραφέα διεύθυνσης του A ώστε να δείχνει ότι κατά τον χρόνο εκτέλεσης θα περιέχει την τιµή του A. 4. Αν οι τρέχουσες τιµές των Β και/ή C δεν έχουν επόµενες χρήσεις, δεν είναι ζωντανές κατά την έξοδο από το block και βρίσκονται σε καταχωρητές, άλλαξε τον περιγραφέα καταχωρητών έτσι ώστε να δείχνει ότι µετά την εκτέλεση της A:=ΒopC, οι καταχωρητές αυτοί δεν θα περιέχουν πλέον το Β και / ή το C, αντίστοιχα. Όταν έχουµε τελειώσει µε την επεξεργασία όλων των τετράδων του βασικού block, αποθηκεύουµε µε εντολές ΜΟV, εκείνα τα ονόµατα που είναι ζωντανά κατά την έξοδο του block και δεν βρίσκονται στις θέσεις µνήµης τους. Για να γίνει αυτό χρησιµοποιούµε τον περιγραφέα καταχωρητών για να προσδιορίζουµε τι ονόµατα έχουν µείνει στους καταχωρητές, τον περιγραφέα διεύθυνσης για να

7 7 προσδιορίσουµε αν το ίδιο όνοµα βρίσκεται ήδη στην θέση µνήµης του και την πληροφορία για τις ζωντανές µεταβλητές για να καθορίσουµε αν το όνοµα πρέπει να φυλαχτεί ή όχι. Αν η τρέχουσα τετράδα έχει µοναδιαίο τελεστή, τα βήµατα του αλγόριθµου είναι ανάλογα µε τα παραπάνω. ραστηριότητα 2 / Κεφ. 7 Μία ειδική περίπτωση είναι η τετράδα A:=Β. Για την περίπτωση αυτή προσπαθήστε να δώσετε περιγραφικά τι λειτουργίες θα πρέπει να κάνει ο ηµιουργός Κώδικα και τι κώδικα θα κατασκευάσει, χωρίς να κοιτάξετε την απάντηση που δίνεται στη συνέχεια. Αν το Β είναι σε κάποιο καταχωρητή, απλώς άλλαξε τους περιγραφείς καταχωρητών και διεύθυνσης έτσι ώστε να καταγράφουν ότι η τιµή του A βρίσκεται τώρα µόνο στον καταχωρητή που έχει την τιµή του Β. Αν το Β δεν έχει επόµενη χρήση και δεν είναι ζωντανό κατά την έξοδο του block, ο καταχωρητής δεν έχει πλέον την τιµή του Β. Αν το Β είναι στην µνήµη πρέπει να χρησιµοποιήσουµε την GΕΤRΕG για να βρούµε ένα καταχωρητή στον οποίο να φορτώσουµε το Β και να κάνουµε τον καταχωρητή αυτό να είναι η θέση του A. Αλλιώς, µπορούµε να δηµιουργήσουµε µία εντολή ΜΟV Β, A που είναι προτιµότερο αν η τιµή του A δεν έχει επόµενη χρήση στο block. Παράδειγµα 3 / Κεφ. 7 Η έκφραση W:=(A-Β)+(A-C)+(A-C) θα µπορούσε να είχε µεταφρασθεί στην παρακάτω ακολουθία εντολών τριών διευθύνσεων. Τ: = A-Β U: = A-C V: = Τ+U W: = V+U Με το W να είναι ζωντανό στο τέλος. Ο Αλγόριθµος δηµιουργίας Κώδικα θα παράγει την παρακάτω ακολουθία του σχήµατος 7.1. Εντολές ηµιουργούµενoς Κώδικας Περιγραφέας Καταχωρητών Περιγραφέας ιεύθυνσης - - Καταχωρητές - κενοί Τ: = A-Β ΜΟV A, R0 R0 περιέχει Τ Τ στον R0 SUΒ Β, R0 U: = A-C ΜΟV A, R1 R0 περιέχει Τ Τ στον R0 SUΒ C, R1 R1 περιέχει U U στον R1 V:= Τ+U ADD R1, R0 R0 περιέχει V U στον R1 R1 περιέχει U V στον R0 W:=V+U ADD R1, R0 R0 περιέχει W W στον R0 ΜΟV R0, W - W στον R0 και στην µνήµη. Σχήµα 7.1 Ακολουθία δηµιουργηθέντα κώδικα για το block W := (A-Β) + (A-C) + (A-C)

8 8 Στο σχήµα 1 δεν φαίνεται το γεγονός ότι τα A, Β και C είναι πάντοτε στην µνήµη. Ακόµη υποθέτουµε ότι οι προσωρινές µεταβλητές Τ, U και V δεν βρίσκονται στην µνήµη εκτός εάν τις βάλουµε εµείς χρησιµοποιώντας εντολές ΜΟV. Η πρώτη κλήση της GΕΤRΕG επιστρέφει R0 σαν τη θέση στην οποία θα γίνει ο υπολογισµός του Τ. Μία και το A δεν βρίσκεται στον R0 δηµιουργούµε εντολές ΜΟV A, R0 και SUB Β, R0. Στην συνέχεια ενηµερώνουµε τον περιγραφέα καταχωρητών να δείχνει ότι ο R0 περιέχει Τ. Η δηµιουργία του κώδικα προχωράει έτσι µέχρι και την τελευταία τετράδα. Σηµειώνουµε ότι ο R1 εκκενώνεται διότι το U δεν έχει επόµενη χρήση. Τέλος δηµιουργούµε ΜΟV R0, W για να φυλάξουµε την ζωντανή µεταβλητή W κατά το τέλος του block ΗΜΙΟΥΡΓΙΑ ΚΩ ΙΚΑ ΓΙΑ ΑΛΛΟΥΣ ΤΥΠΟΥΣ ΕΝΤΟΛΩΝ Έστω ότι έχει εκχωρηθεί στατική µνήµη για το Β και έχουµε την δεικτοδοτηµένη εντολή A: = Β[Ι]. Αυτή µπορεί να υλοποιηθεί επιλέγοντας κάποιο καταχωρητή L για το A, µε την βοήθεια της GΕΤRΕG και στην συνέχεια εκτελώντας τις: ΜΟV Ι', L ΜΟV Β(L), L µε κόστος 4 αν το Ι δεν βρίσκεται σε καταχωρητή και Ι' είναι µία θέση (µνήµη ή stack) για το Ι. Αν το Ι βρίσκεται στον R0 εκδίδουµε την: ΜΟV Β(R0), L µε κόστος 2 Παρόµοια η A[Ι] := Β υλοποιείται µε τις ΜΟV Ι', L ΜΟV Β,A(L) µε κόστος 4 εφ' όσον το Ι δεν βρίσκεται σε καταχωρητή και Ι' είναι µία θέση για το Ι. Ενώ αν το Ι βρίσκεται στον R0 έχουµε: ΜΟV Β, A(R0) µε κόστος 2 Για την δηµιουργία κώδικα για άλλους τύπους εντολών µπορείτε να συµβουλευθείτε την βιβλιογραφία. Σε κάθε περίπτωση, η αρχιτεκτονική δοµή του υπολογιστή αποτελεί τον καθοριστικότερο παράγοντα στη δηµιουργία τελικού κώδικα. ΕΝΟΤΗΤΑ 7.5 ΕΚΧΩΡΗΣΗ ΚΑΤΑΧΩΡΗΤΩΝ Οι εντολές µηχανής που κάνουν χρήση µόνο καταχωρητών είναι µικρότερες (σε πλήθος λέξεων) και πιο γρήγορες από εκείνες που κάνουν αναφορά σε έντελα. Είναι εποµένως προφανές ότι η καλύτερη χρήση των καταχωρητών θα αποδώσει καλύτερο τελικό κώδικα. Γι αυτό και ενδιαφερόµαστε για τεχνικές οι οποίες καθορίζουν ποια ονόµατα ενός προγράµµατος θα µπουν σε καταχωρητές (Register allocation) και ποιος καταχωρητής θα εκχωρηθεί σε ποιο όνοµα (register assignment). Μια προσέγγιση στο πρόβληµα αυτό του καταµερισµού και εκχώρησης των καταχωρητών είναι να εκχωρήσουµε συγκεκριµένους τύπους ποσοτήτων σε ένα τελικό πρόγραµµα σε ορισµένους καταχωρητές. Για παράδειγµα, µπορούµε να αποφασίσουµε ότι θα εκχωρήσουµε µία οµάδα καταχωρητών για συνδέσεις υποπρογραµµάτων, µία άλλη οµάδα για καταχωρητές βάσης, άλλη για

9 9 αριθµητικούς υπολογισµούς κάποιο καταχωρητή για να περιέχει τον δείκτη της στοίβας εκτέλεσης (run-time stack) και λοιπά. Η προσέγγιση αυτή έχει το πλεονέκτηµα ότι απλοποιεί τον σχεδιασµό ενός µεταγλωττιστή, από την άλλη όµως µεριά εφαρµοζόµενη µε αυστηρότητα έχει το µειονέκτηµα ότι κάποιοι καταχωρητές µένουν αχρησιµοποίητοι για µεγάλα διαστήµατα του τελικού κώδικα ενώ δηµιουργεί και πολλές άχρηστες φορτώσεις και εκφορτώσεις (εντολές LΟAD και SΤΟRΕ ή ΜΟV για την µηχανή που περιγράψαµε). Παρά την σπουδαιότητα του προβλήµατος καταµερισµού και εκχώρησης των καταχωρητών δεν θα ασχοληθούµε περισσότερο µαζί του στο βιβλίο αυτό. ΕΝΟΤΗΤΑ 7.6 ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ PEEPHOLE Αποτελεί µία τεχνική βελτιστοποίησης που συναντάται σε αρκετούς Μεταγλωττιστές, για να ξεπεράσει τις δυσκολίες που συναντώνται στην συντακτικά κατευθυνόµενη δηµιουργία ενδιάµεσου ή object κώδικα. Η µέθοδος δουλεύει εξετάζοντας µικρές περιοχές του κώδικα (peepholes), ο οποίος δεν είναι απαραίτητο να είναι συνεχής. Χαρακτηριστικό της µεθόδου είναι το γεγονός ότι κάθε βελτιστοποίηση δηµιουργεί συνθήκες για πάρα πέρα βελτιώσεις. Γι αυτό η µέθοδος δουλεύει µε διαδοχικά περάσµατα πάνω στον κώδικα. Περιττές φορτώσεις και εκφορτώσεις. Για παράδειγµα, στην ακολουθία. 1. ΜΟV R0, A 2. ΜΟV A, R0 µπορούµε να διαγράψουµε την εντολή (2), εκτός εάν η (2) έχει κάποια επιγραφή. Είναι ασφαλές να διαγράψουµε την (2) µόνο όταν αποτελούν µέρος ενός βασικού block. Κώδικας όπως η παραπάνω ακολουθία (1) και (2) δηµιουργείται αν µεταφράζουµε πάντοτε τις εντολές του τύπου A:=Β op C σε ΜΟV Β, R0; op C, R0; ΜΟV R0, A. Τότε η µετάφραση των A:=Β+C και D:=A+Β θα δηµιουργούσε τέτοιο κώδικα. Μη προσπελάσιµος κώδικας. Μπορούµε, και πρέπει, να αποσύρουµε κώδικα ο οποίος δεν προσπελαύνεται και ο οποίος δηµιουργήθηκε είτε από τον προγραµµατιστή, είτε και έµµεσα από τον ίδιο τον µεταγλωττιστή στα πλαίσια άλλων βελτιστοποιήσεων (πχ σαν αποτέλεσµα της µετάδοσης σταθερών constant propagation). Σε τέτοια περίπτωση καταλήγουµε να έχουµε κώδικα της µορφής Goto L1 /* µη προσπελάσιµος κώδικας */ L1: ο οποίος πρέπει φυσικά να αποσυρθεί µια και δεν εκτελείται ποτέ. Πολλαπλά Άλµατα. εν είναι ασυνήθιστο αλγόριθµοι δηµιουργίας ενδιάµεσου κώδικα να δηµιουργούν εντολές αλλαγής ροής (goto) σε άλλες εντολές αλλαγής ροής, υπό συνθήκη ή µη. Μπορούµε να απαλλαγούµε από αυτά στον ενδιάµεσο κώδικα αντικαθιστώντας: goto L1

10 10 L1:goto L2 µε το: goto L2 L1: goto L2 Aν τώρα δεν υπάρχουν άλµατα στην L1 (µπορούµε να µετράµε το πλήθος των jumps στην θέση του πίνακα συµβόλων που αντιστοιχεί στην label αυτή) µπορούµε να εξαλείψουµε την L1:goto L2, µε την προϋπόθεση ότι προηγείται κάποιο jump χωρίς συνθήκη. Παρόµοια, η if A<Β goto L1 L1: goto L2 µπορεί να αντικατασταθεί από την: if A<Β goto L2 L1: goto L2 Άσκηση αυτοαξιολόγησης 5 / Κεφ. 7 Σε αρκετές περιπτώσεις διάφοροι ηµιουργοί Κώδικα δηµιουργούν κώδικα όπως: 1) A:=A+0 2) A:=A*1 3) Α:=2*A 4) A:=B^2 Μπορείτε να σκεφθείτε και να προτείνετε βελτιστοποιήσεις για τέτοιου είδους κώδικα; ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ Στο κεφάλαιο αυτό µελετήσαµε την δηµιουργία τελικού κώδικα. Είδαµε ένα απλό υπολογιστή, περιγράψαµε µερικές εντολές από το ρεπερτόριο εντολών του και τρόπους προσπέλασης των διευθύνσεών του. Εξηγήσαµε την έννοια του κόστους µιας εντολής, σαν τον αριθµό λέξεων που χρειάζονται για την εσωτερική αναπαράσταση της εντολής. Στη συνέχεια, για να µπορέσουµε να περιγράψουµε ένα αλγόριθµο δηµιουργίας κώδικα, εξηγήσαµε την επόµενη χρήση ονοµάτων µέσα σε ένα βασικό block, τον περιγραφέα καταχωρητών και τον περιγραφέα διευθύνσεων. ώσαµε τον αλγόριθµο δηµιουργίας κώδικα για µια εντολή τριών διευθύνσεων γενικής µορφής Α:=BopC και αναφερθήκαµε σύντοµα στην δηµιουργία κώδικα για άλλους τύπους εντολών. Τέλος, αναφερθήκαµε στην βελτιστοποίηση peephole και είδαµε πώς µπορούµε να απαλλαγούµε από περιττές εντολές, µη προσπελάσιµο κώδικα, πολλαπλά άλµατα και πώς να εκµεταλλευθούµε τις ιδιοµορφίες του υπολογιστή.

11 11 ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ Απάντηση άσκησης αυτοαξιολόγησης 1 / Κεφ. 7 Η σωστή συσχέτιση της αριστερής µε την δεξιά στήλη δίνεται παρακάτω Ο µεταθετός κώδικας διευκολύνει τον ηµιουργό Κώδικα Το assembly πρόγραµµα Το απόλυτο πρόγραµµα επιτρέπει την χωριστή µετάφραση ρουτινών έχει το προσόν ότι µπορεί να τοποθετηθεί σε συγκεκριµένη περιοχή της µνήµης και να εκτελεσθεί αµέσως Αν η απάντησή σας είναι ίδια µε την παραπάνω, µπράβο σας. Αν όµως κάνατε διαφορετικές συσχετίσεις τότε πρέπει να ξαναδιαβάσετε πιο προσεκτικά την ενότητα 7.1. Απάντηση άσκησης αυτοαξιολόγησης 2 / Κεφ Η εντολή ADD #1, R3 προσθέτει το 1 στα περιεχόµενα του καταχωρητή R3 και έχει κόστος 2 λέξεων. Η δεύτερη λέξη περιέχει τον ακέραιο αριθµό Η εντολή SUΒ 4(R0), *5(R1) αφαιρεί το ((R0) +4) από το (((R1) +5)), όπου (x) δηλώνει το περιεχόµενο του καταχωρητή ή της θέσης Χ. Το αποτέλεσµα αποθηκεύεται στην διεύθυνση προορισµού *5(R1). Το κόστος της είναι 3 λέξεις µία και οι σταθερές 4 και 5 φυλάσσονται στις επόµενες δύο λέξεις µετά την εντολή. Αν η απάντησή σας είναι ίδια µε την παραπάνω, συγχαρητήρια, έχετε κατανοήσει τόσο την έννοια του κόστους µιας εντολής, όσο και τους τρόπους προσπέλασης διευθύνσεων του υποθετικού υπολογιστή. Αν η απάντησή σας είναι διαφορετική, τότε θα πρέπει να ξαναδιαβάσετε την ενότητα 7.3 και να προσπαθήσετε πάλι. Απάντηση άσκησης αυτοαξιολόγησης 3 / Κεφ. 7 Με τις υποθέσεις της άσκησης µπορούµε να δηµιουργήσουµε την ακολουθία ADD C, Ri η οποία έχει κόστος 2 λέξεων, ή την ακολουθία ΜΟV C, Rj ADD Rj, Ri µε κόστος 3 και µε την υπόθεση ότι το Β δεν χρειάζεται στην συνέχεια (είναι νεκρό). Η δεύτερη ακολουθία γίνεται ελκυστική αν η τιµή του C πρόκειται να ξαναχρησιµοποιηθεί στην συνέχεια (µέσα στο βασικό block) οπότε µπορούµε να την πάρουµε από τον Rj. Εν γένει, υπάρχει µεγάλος αριθµός από διαφορετικές περιπτώσεις που πρέπει να εξετάζονται κατά την δηµιουργία κώδικα. Απάντηση άσκησης αυτοαξιολόγησης 4 / Κεφ. 7 Ο σωστός ορισµός πρέπει να συµπληρωθεί µε τα εξής 1. Οι τετράδες πρέπει να βρίσκονται µέσα στο ίδιο βασικό block, 2. Η τετράδα j έπεται της i, 3. Το Α στην τετράδα j πρέπει να µην είναι διεύθυνση προορισµού της τετράδας j διότι τότε θα είναι νεκρό και δεν θα έχει επόµενη χρήση (οπότε θα πρέπει να εκδοθεί εντολή καταχώρησης στο Α).

12 12 Απάντηση άσκησης αυτοαξιολόγησης 5 / Κεφ. 7 Για τις δύο πρώτες περιπτώσεις µπορούµε προφανώς να εξαλείψουµε τις εντολές αυτές. Στην τρίτη περίπτωση, πολλαπλασιασµού επί δύο όπως στην A:=2*A µπορούµε να αντικαταστήσουµε τον πολλαπλασιασµό µε πρόσθεση (Α:=Α+Α) ή µε εντολή µετατόπισης (shift) αν το έντελο A είναι σταθερής υποδιαστολής. Για την τέταρτη περίπτωση σηµειώνουµε ότι ορισµένες εντολές µηχανής θεωρούνται "φθηνότερες" από άλλες. Για παράδειγµα είναι φθηνότερο να υλοποιήσουµε την A^2 µε A*A αντί µίας κλήσης σε κάποια ρουτίνα ύψωσης σε δύναµη. Παρόµοια πολλαπλασιασµός σταθερής υποδιαστολής ή διαίρεση µε µία δύναµη του δύο είναι προτιµότερο να υλοποιηθεί µε εντολή µετατόπισης. Με την ευκαιρία να σηµειώσουµε ότι στις περισσότερες περιπτώσεις δηµιουργίας κώδικα µπορούµε να εκµεταλλευθούµε ιδιοµορφίες του υπολογιστή. Κάποιοι υπολογιστές µπορεί να διαθέτουν hardware εντολές για την υλοποίηση συγκεκριµένων λειτουργιών αποδοτικότερα. Η χρήση αυτών των εντολών µπορεί να βελτιώσει τον χρόνο εκτέλεσης του προγράµµατος σηµαντικά. Για παράδειγµα υπάρχουν εντολές που προσθέτουν ή αφαιρούν την σταθερά 1(ένα) στο (από) το έντελο πριν ή µετά την χρήση της τιµής του. Η χρήση της δυνατότητας αυτής βελτιώνει σηµαντικά την ποιότητα του κώδικα όταν µπαίνει ή βγαίνει ένα στοιχείο σε κάποια στοίβα, όπως στην περίπτωση που περνάµε τις παραµέτρους µιας ρουτίνας. Ακόµη µπορούµε να κάνουµε χρήση της δυνατότητας αυτής στον κώδικα για εντολές της µορφής Χ:=Χ+1.

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 11 ο Γεννήτορας Τελικού Κώδικα Ο γεννήτορας τελικού κώδικα είναι το πιο κρίσιμο τμήμα του μεταγλωττιστή και αντιμετωπίζει πολύπλοκα προβλήματα Βέλτιστη χρήση της αρχιτεκτονικής

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

Εντολές γλώσσας μηχανής

Εντολές γλώσσας μηχανής Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία

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

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή Κεφάλαιο. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας Περιεχόμενα. Αριθμητικά συστήματα. Μετατροπή αριθμών από ένα σύστημα σε άλλο.3 Πράξεις στο δυαδικό σύστημα.4 Πράξεις στο δεκαεξαδικό σύστημα.5

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

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

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

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

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

Εισαγωγή στην πληροφορική -4 Εισαγωγή στην πληροφορική 6 (, 64) bits Μνήµη Θέση (κύτταρο cell) µνήµης, χωράει λέξεις (words) εντολές (πρόγραµµα), αριθµοί (δεδοµένα) Αριθµοί: δυαδική (binary) αναπαράσταση = = = 4 = 4 = 5 = 7 Εισαγωγή

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 2 ο Σύνολα Εντολών Οι εντολές που εκτελεί ο κάθε επεξεργαστής (ή οικογένεια επεξεργαστών) MIPS ARM SPARC PowerPC IA-32 Αρχιτεκτονικές συνόλου εντολών Βασικές Έννοιες Εντολές μηχανής

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο

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

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

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

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

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

Στοιχεία από Assembly Γιώργος Μανής

Στοιχεία από Assembly Γιώργος Μανής Στοιχεία από Assembly 8086 Γιώργος Μανής Καταχωρητές καταχωρητές γενικής φύσης καταχωρητές δείκτες καταχωρητές αναφοράς καταχωρητές τµηµάτων ειδικοί καταχωρητές Καταχωρητές γενικής φύσης 16 bit ax, bx,

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

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

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

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα. ΚΕΦΑΛΑΙΟ 7 ο 1. Επιλογή της κατάλληλης γλώσσας προγραµµατισµού Εκατοντάδες γλώσσες προγραµµατισµού χρησιµοποιούνται όπως αναφέρθηκε σήµερα για την επίλυση των προβληµάτων µε τον υπολογιστή, τη δηµιουργία

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΥΠΟΛΟΓΙΣΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο ΦΕΒΡΟΥΑΡΙΟΣ 2006 ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ

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

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι Α λ γ ό ρ ι θ μ ο ι Αριθμητικοί τελεστές Οι αριθμητικοί τελεστές είναι: πρόσθεση, αφαίρεση, πολλαπλασιασμός και διαίρεση +,-,*,/ ύψωση σε δύναμη ^ πηλίκο ακέραιης διαίρεσης δύο ακεραίων αριθμών div υπόλοιπο

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

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i Να μετατρέψετε τις ενέργειες που δίνονται παρακάτω σε

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

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 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

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

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

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

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς Βασικές Έννοιες Αλγορίθμων Δομή Ακολουθίας (κεφ. 2 και 7 σχολικού βιβλίου) 1. Οι μεταβλητές αντιστοιχίζονται από τον μεταγλωττιστή κάθε

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

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Αριθµητική Ανάλυση 1 εκεµβρίου / 43 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 1 / 43 Κεφ.5. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ίνεται ένας πίνακας A C n n και Ϲητούνται να προσδιορισθούν οι

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

Τεχνικές Αναπαράστασης αλγορίθµων Ψευδοκώδικας Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή Επανάληψη)

Τεχνικές Αναπαράστασης αλγορίθµων Ψευδοκώδικας Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή Επανάληψη) Τεχνικές Αναπαράστασης αλγορίθµων Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή ) 1 Βασικές έννοιες Τυποποίηση αναπαράστασης αλγορίθµου - Ανάγκη ύπαρξης ενός κοινού τρόπου αναπαράστασης αλγορίθµων

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

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

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

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεµατική Ενότητα ΠΛΗ 21: Ψηφιακά Συστήµατα Ακαδηµαϊκό Έτος 2009 2010 Γραπτή Εργασία #3 Παράδοση: 28 Μαρτίου 2010 Άσκηση 1 (15 µονάδες) Ένας επεξεργαστής υποστηρίζει τόσο

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

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες Πίνακας Περιεχοµένων Πρόλογος...vii Κεφάλαιο 1:Βασικές εισαγωγικές έννοιες...1 1.1 Η δοµή του µεταγλωττιστή...2 1.2 Η διαδικασία µεταγλώττισης...3 1.2.1 Η Λεξική Ανάλυση...6 1.2.2 Η Συντακτική Ανάλυση...6

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

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Εισαγωγή Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Σκοπός του εργαστηρίου είναι να κατανοήσουµε τους τρόπους προσπέλασης της µνήµης (µέθοδοι διευθυνσιοδότησης) σε ένα υπολογιστικό σύστηµα. Η Μνήµη 1 Ψηφιακή Λογική 4

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

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων Αλγόριθµος : Είναι ένα σύνολο βηµάτων, αυστηρά καθορισµένων κι εκτελέσιµων σε πεπερασµένο χρόνο, που οδηγούν στην επίλυση ενός προβλήµατος. Χαρακτηριστικά ενός σωστού

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

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο Σύντοµη Επανάληψη

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο Σύντοµη Επανάληψη Γιώργος ηµητρίου Μάθηµα 2 ο Σύντοµη Επανάληψη Από την Εισαγωγή στους Η/Υ Γλώσσες Μηχανής n Πεδία εντολής n Μέθοδοι διευθυνσιοδότησης n Αρχιτεκτονικές συνόλου εντολών n Κύκλος εντολής Αλγόριθµοι/Υλικό Αριθµητικών

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

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει. οµηµένες τεχνικές Ο στόχος των δοµηµένων τεχνικών είναι: Υψηλής ποιότητας προγράµµατα Εύκολη τροποποίηση προγραµµάτων Απλοποιηµένα προγράµµατα Μείωση κόστους και χρόνου ανάπτυξης. Οι βασικές αρχές τους

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Ερωτήσεις Σωστό - Λάθος 1. Ο αλγόριθµος πρέπει να τερµατίζεται µετά από εκτέλεση πεπερασµένου αριθµού εντολών. 2. Η είσοδος σε έναν αλγόριθµο µπορεί να είναι έξοδος σε έναν άλλο αλγόριθµο. 3. Ένας αλγόριθµος

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

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή Εισαγωγή Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ Ξεκινάµε την εργαστηριακή µελέτη της Ψηφιακής Λογικής των Η/Υ εξετάζοντας αρχικά τη µορφή των δεδοµένων που αποθηκεύουν και επεξεργάζονται οι υπολογιστές και προχωρώντας

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

Πανεπιστήµιο Θεσσαλίας

Πανεπιστήµιο Θεσσαλίας Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 1: Λυµένες Ασκήσεις Έστω ένας επεξεργαστής, στον οποίο ένα πρόγραµµα ολοκληρώνει την εκτέλεσή

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

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

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

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

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

Α. Ερωτήσεις Ανάπτυξης

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

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

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής Καταχωρητές & τμήματα μνήμης του 8086 Ματθές Δημήτριος Καθηγητής Πληροφορικής Καταχωρητές γενικού σκοπού Υπάρχουν τέσσερις (4) γενικού σκοπού καταχωρητές των 16-bit που χρησιμοποιούνται από τους προγραμματιστές

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο Σύντομη Επανάληψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο Σύντομη Επανάληψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 2 ο Σύντομη Επανάληψη Από την Εισαγωγή στους Η/Υ Γλώσσες Μηχανής Πεδία εντολής Μέθοδοι διευθυνσιοδότησης Αρχιτεκτονικές συνόλου εντολών Κύκλος εντολής Αλγόριθμοι/Υλικό Αριθμητικών

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ Σκοπός: Το μάθημα αυτό αναφέρεται: 1 Ο Εργαστηριακό Μάθημα Εισαγωγή Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών Στα στάδια της μεταγλώττισης Θεωρία Πρόλογος Αφιερώνεται το πρώτο εργαστηριακό

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέρος Β (Οργάνωση Υπολογιστών)

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέρος Β (Οργάνωση Υπολογιστών) ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΥΠΟΛΟΓΙΣΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέρος Β (Οργάνωση Υπολογιστών)

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

8.1 Θεωρητική εισαγωγή

8.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 8 ΣΤΟΙΧΕΙΑ ΜΝΗΜΗΣ ΚΑΤΑΧΩΡΗΤΕΣ Σκοπός: Η µελέτη της λειτουργίας των καταχωρητών. Θα υλοποιηθεί ένας απλός στατικός καταχωρητής 4-bit µε Flip-Flop τύπου D και θα µελετηθεί

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

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

ΚΕΦΑΛΑΙΟ 6 ΣΥΝΤΑΚΤΙΚΑ ΚΑΤΕΥΘΥΝΟΜΕΝΗ ΜΕΤΑΦΡΑΣΗ 1 ΚΕΦΑΛΑΙΟ 6 ΣΥΝΤΑΚΤΙΚΑ ΚΑΤΕΥΘΥΝΟΜΕΝΗ ΜΕΤΑΦΡΑΣΗ Στόχος Στόχος του Κεφαλαίου αυτού είναι να µελετήσουµε την δηµιουργία ενδιάµεσου κώδικα, µε την βοήθεια του σχήµατος Συντακτικά Κατευθυνόµενης Μετάφρασης,

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

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

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

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

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ Εισαγωγή στην επιστήµη των υπολογιστών Πράξεις µε µπιτ 1 Πράξεις µε µπιτ 2 Αριθµητικές Πράξεις σε Ακέραιους Πρόσθεση, Αφαίρεση, Πολλαπλασιασµός, Διαίρεση Ο πολλαπλασιασµός και η διαίρεση στο επίπεδο του

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

5. Γεννήτριες Τυχαίων Αριθµών.

5. Γεννήτριες Τυχαίων Αριθµών. 5. Γεννήτριες Τυχαίων Αριθµών. 5.1. Εισαγωγή. Στο Κεφάλαιο αυτό θα δούµε πώς µπορούµε να δηµιουργήσουµε τυχαίους αριθµούς από την οµοιόµορφη κατανοµή στο διάστηµα [0,1]. Την κατανοµή αυτή, συµβολίζουµε

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

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

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

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ 1 Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 ο ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στην κόλλα σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1 5 και δίπλα τη λέξη

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

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ 1. Εισαγωγή Η λειτουργία της CPU καθορίζεται από τις εντολές που εκτελεί, και που ονομάζονται εντολές μηχανής (machine instructions) ή εντολές υπολογιστή (computer

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2016-2017 Πάτρα 3/5/2017 Ονοματεπώνυμο:.. Α1. Να γράψετε στην κόλλα σας τον αριθμό

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

Αρχιτεκτονικές Συνόλου Εντολών

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

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

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Εισαγωγή στις έννοιες Αλγόριθµοι και Πολυπλοκότητα, Οργάνωση Δεδοµένων και Δοµές Δεδοµένων Χρήσιµοι µαθηµατικοί

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

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

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

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

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

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

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

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

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

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

Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της

Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της Στην ενότητα αυτή θα αναφερθούµε εκτενέστερα στη λειτουργία και την οργάνωση της κρυφής µνήµης. Θα προσδιορίσουµε τις βασικές λειτουργίες που σχετίζονται µε

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ 1. Έστω ότι ο καθηγητής σας δίνει δύο αριθμούς και σας ζητάει να του πείτε πόσο είναι το άθροισμά τους. Διατυπώστε

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ 7 Ο ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΟΣΤΟΛΙΑ ΠΑΓΓΕ Περιεχόμενα 2 Δυαδικό Σύστημα Προσημασμένοι δυαδικοί αριθμοί Αφαίρεση

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

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

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

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

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

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

Πανεπιστήµιο Θεσσαλίας Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων Πανεπιστήµιο Θεσσαλίας Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων Αρχιτεκτονική Υπολογιστών Εργασία Εξαµήνου: Προσοµοίωση ARM σε επίπεδο VHDL/Verilog 1. Μελέτη συνόλου εντολών και αρχιτεκτονικής ARM

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ Εισαγωγή στην επιστήµη των υπολογιστών Πράξεις µε µπιτ 1 Πράξεις µε µπιτ 2 Αριθµητικές Πράξεις σε Ακέραιους Πρόσθεση, Αφαίρεση, Πολλαπλασιασµός, Διαίρεση 3 Πρόσθεση στη µορφή συµπληρώµατος ως προς δύο

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 1 ο Γλώσσα - Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση αλγορίθμων Ευκολία χρήσης Ακρίβεια και πληρότητα περιγραφής, όχι διφορούμενη! Μία περιγραφή για όλες τις μηχανές Μετάφραση

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Παραδείγματα Ενοτήτων 7-9 Ενότητα 7: Ενδιάμεσος κώδικας Άσκηση 7-1: Θεωρήστε τη γλώσσα προγραμματισμού C με τη γνωστή γραμματική

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΒΑΙΚΕ ΕΝΝΟΙΕ ΑΓΟΡΙΘΜΩΝ ΕΡΩΤΗΕΙ ΑΞΙΟΟΓΗΗ ΕΡΩΤΗΕΙ ΩΤΟΥ ΑΘΟΥ 1. ηµειώστε το γράµµα αν η πρόταση είναι σωστή και το γράµµα αν είναι λάθος. 1. Ο αλγόριθµος πρέπει να τερµατίζεται µετά από εκτέλεση πεπερασµένου

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

επιµέλεια Θοδωρής Πιερράτος

επιµέλεια Θοδωρής Πιερράτος Ερωτήσεις Σωστό Λάθος 1. Οι διαστάσεις ενός πίνακα δεν µπορούν να µεταβάλλονται κατά την εκτέλση ενός αλγόριθµου. 2. Ο πίνακας είναι στατική δοµή δεδοµένων. 3. Ένας πίνακας δυο στηλών µπορεί να περιέχει

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

Εισαγωγή στον Προγραµµατισµό «C»

Εισαγωγή στον Προγραµµατισµό «C» Εισαγωγή Στον Προγραµµατισµό «C» Δείκτες Πανεπιστήµιο Πελοποννήσου Τµήµα Επιστήµης & Τεχνολογίας Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Μνήµη Υπολογιστή Η µνήµη RAM (Random Access Memory) ενός υπολογιστή

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

7. Βασικά στοιχεία προγραµµατισµού.

7. Βασικά στοιχεία προγραµµατισµού. 7. Βασικά στοιχεία προγραµµατισµού. ΗΜ01-Θ1Γ Δίνονται οι παρακάτω έννοιες: 1. Λογικός τύπος δεδοµένων 2. Επιλύσιµο 3. Ακέραιος τύπος δεδοµένων 4. Περατότητα 5. Μεταβλητή 6. Ηµιδοµηµένο 7. Πραγµατικός τύπος

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 1 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 1 1.1 ΕΙΣΑΓΩΓΗ ΣΤΗ FORTRAN 77 Ένα πρόγραµµα σε οποιαδήποτε γλώσσα προγραµµατισµού δεν τίποτα άλλο από µια σειρά εντολών που πρέπει

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

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα 2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ 2.1 Αριθμητικά συστήματα Κάθε πραγματικός αριθμός χ μπορεί να παρασταθεί σε ένα αριθμητικό σύστημα με βάση β>1 με μια δυναμοσειρά της μορφής, -οο * = ± Σ ψ β " (2 1) η - ν

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

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

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

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

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα.

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα. Αριστοτελειο Πανεπιστηµιο Θεσσαλονικης Τµηµα Μαθηµατικων Εισαγωγή στην Αλγεβρα Τελική Εξέταση 15 Φεβρουαρίου 2017 1. (Οµάδα Α) Εστω η ακολουθία Fibonacci F 1 = 1, F 2 = 1 και F n = F n 1 + F n 2, για n

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΕΞΕΤΑΣΕΩΝ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεµατική Ενότητα ΠΛΗ 2: Ψηφιακά Συστήµατα Ακαδηµαϊκό Έτος 24 25 Ηµεροµηνία Εξέτασης 29.6.25 Χρόνος Εξέτασης

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

1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα

1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα 1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα Δεκαδικοί Αριθµοί Βάση : 10 Ψηφία : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Αριθµοί: Συντελεστές Χ δυνάµεις του 10 7392.25 = 7x10 3 + 3x10 2 + 9x10 1 + 2x10 0 + 2x10-1 + 5x10-2

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

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Συναρτήσεις ΣΥΝΑΡΤΗΣΕΙΣ 1.1. Ο λόγος ύπαρξης των συναρτήσεων Όπως είδαµε µία διαδικασία µπορεί να υπολογίζει περισσότερα από ένα αποτελέσµατα τα

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

Εισαγωγή στην Πληροφορική. Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς. Αντώνης Σταµατάκης

Εισαγωγή στην Πληροφορική. Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς. Αντώνης Σταµατάκης Εισαγωγή στην Πληροφορική Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς Αντώνης Σταµατάκης Μονάδες µέτρησης µνήµης Η βασική µονάδα µέτρησης της µνήµης στα υπολογιστικά συστήµατα είναι το µπάιτ

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

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ Εντολές επανάληψης Κεφάλαια 02-08 οµές Επανάληψης Επιτρέπουν την εκτέλεση εντολών περισσότερες από µία φορά Οι επαναλήψεις ελέγχονται πάντοτε από κάποια συνθήκη η οποία καθορίζει την έξοδο από το βρόχο

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

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

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

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης ΟΜΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ Ένας υπολογιστής αποτελείται από την Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ), τη µνήµη, τις µονάδες εισόδου/εξόδου και το σύστηµα διασύνδεσης

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

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

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

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

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro Για να μπορέσουμε να εισάγουμε δεδομένα από το πληκτρολόγιο αλλά και για να εξάγουμε εμφανίσουμε αποτελέσματα στην οθόνη του υπολογιστή χρησιμοποιούμε τις εντολές Εισόδου και Εξόδου αντίστοιχα. Σύνταξη

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

Α1. (α). ώστε τον ορισµό του προβλήµατος (Μονάδες 3)

Α1. (α). ώστε τον ορισµό του προβλήµατος (Μονάδες 3) ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΑΠΟΦΟΙΤΟΙ ΣΕΙΡΑ: 1η ΗΜΕΡΟΜΗΝΙΑ: 28/11/2011 ΘΕΜΑ Α Α1. (α). ώστε τον ορισµό του προβλήµατος (Μονάδες 3) (β). ίνεται ο παρακάτω πίνακας που στην Στήλη 1 υπάρχουν κριτήρια κατηγοριοποίησης

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

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

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

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

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

Αρχιτεκτονική Υπολογιστών Ι Αρχιτεκτονική Υπολογιστών Ι Επιλεγμένες εντολές και συναρτήσεις assembly Από το βιβλίο Αρχιτεκτονική Υπολογιστών & Προγραμματισμός Assembly (Συγγραφέας / Εκδότης : Παναγιώτης Παπάζογλου) Δρ. Παναγιώτης

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

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

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

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

Επίλυση Γραµµικών Συστηµάτων

Επίλυση Γραµµικών Συστηµάτων Κεφάλαιο 3 Επίλυση Γραµµικών Συστηµάτων 31 Εισαγωγή Αριθµητική λύση γενικών γραµµικών συστηµάτων n n A n n x n 1 b n 1, όπου a 11 a 12 a 1n a 21 a 22 a 2n A [a i j, x a n1 a n2 a nn x n, b b 1 b 2 b n

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

Κεφάλαιο 3β. Ελεύθερα Πρότυπα (µέρος β)

Κεφάλαιο 3β. Ελεύθερα Πρότυπα (µέρος β) Κεφάλαιο 3β Ελεύθερα Πρότυπα (µέρος β) Ο σκοπός µας εδώ είναι να αποδείξουµε το εξής σηµαντικό αποτέλεσµα. 3.3.6 Θεώρηµα Έστω R µια περιοχή κυρίων ιδεωδών, F ένα ελεύθερο R-πρότυπο τάξης s < και N F. Τότε

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

Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Β. Να εξηγήσετε τι σηµαίνει ολίσθηση ενός δυαδικού αριθµού 3 θέσεις αριστερά. 5 4 3 µπορεί να είναι: Α: ουρά Β:στοίβα Γ:και τα δυο :τίποτα

Β. Να εξηγήσετε τι σηµαίνει ολίσθηση ενός δυαδικού αριθµού 3 θέσεις αριστερά. 5 4 3 µπορεί να είναι: Α: ουρά Β:στοίβα Γ:και τα δυο :τίποτα ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΙΑΓΩΝΙΣΜΑ κ ΘΕΜΑ 1 A. Σηµειώστε ποιες από τις παρακάτω προτάσεις είναι σωστές και ποιες λάθος: 1. Κάθε δοµή επιλογής κλείνει µε την εντολή τέλος_αν 2. Κάθε υποπρόγραµµα µπορεί να υλοποιηθεί

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

! Δεν μπορούν να λυθούν όλα τα προβλήματα κάνοντας χρήση του παρ/λου προγ/σμου ΑΡΧΗ ΝΑΙ Διάβα σε a Εκτύπ ωσε a > a 0 ΟΧΙ ΤΕΛΟΣ Σύμβολα διαγράμματος ροής 1 Ακέραιος τύπος 14 0-67 2 Πραγματικός τύπος

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