Ηλεκτρονική Διάθεση Μαθήματος
Μαθησιακά Αποτελέσματα
Γνώσεις: Κατανόηση της αρχιτεκτονικής και του προγραμματιστικού μοντέλου των 8-bit, 16-bit, 32-bit και 64-bit επεξεργαστών. Κατανόηση του ρεπερτόριου εντολών των επεξεργαστών της εταιρίας Intel. Κατανόηση του πραγματικός και προστατευμένου τρόπου λειτουργίας και αναφορών στην μνήμη.
Δεξιότητες: Προγραμματισμός σε Assembly με βάση τον δομημένο τρόπο προγραμματισμού. Σύνδεση C και Assembly. Χρήση των συμβολο-μεταφραστών MASM και NASM. Κατανοηση της διεπαφής με το λειτουργικό σύστημα (διαχείριση αρχείων, Ι/Ο) σε DOS, Win32 και Linux. Ανάπτυξη εφαρμογών με χρήση εντολών SIMD (SSE, SSE2, AVX, AVX-512).
Περιεχόμενο Μαθήματος
Εξέλιξη των επεξεργαστών της εταιρίας Intel. (Mικρο-)αρχιτεκτονική των επεξεργαστών 8085 και 8086. Δομή διαύλων, μνημών και διασύνδεση. Εντολές Assembly, κύκλοι μηχανής και διαγράμματα χρονισμού. Μοντέλο Προγραμματισμού. Γλώσσα Assembly (δήλωση μεταβλητών, εντολές μεταφοράς και αναφοράς στην μνήμη, αριθμητικές/λογικές εντολές, εντολές κινητής υποδιαστολής, εντολές ελέγχου, διαχείριση στοίβας και κάλεσμα υπορουτινών). Ο συμβολομετάφραστής MASM (directives, segments, macros). Δομημένος τρόπος προγραμματισμού και τρόποι διαχείρισης συμβολοσειρών, πινάκων και δεικτών σε επίπεδο assembly. Διεπαφή με το λειτουργικό σύστημα (διαχείρηση αρχείων, Ι/Ο) σε DOS, Win32 και Linux. Εισαγωγή στον 80386, 80486 και Pentium (x86). Πραγματικός (real-mode) και προστατευμένος (protected-mode) τρόπος λειτουργίας και αναφορών στην μνήμη (flat memory model). Κάλεσμα υπορουτινών σε 80386 (call, ret, stack frames). Εντολές και καταχωρητές τύπου SIMD (Single Instruction Multiple Data) και παραδείγματα με χρήση εντολών ΜΜΧ και SSE. Επιτάχυνση εφαρμογών με χρήση εντολών SIMD και AVX. SSE και AVX Intrisics. Το μάθημα συνοδεύεται από επιλεγμένες εργασίες στις οποίες γίνεται υλοποίηση συγκεκριμένων εφαρμογών σε γλώσσα Assembly x86 καθώς και στην διασύνδενση των γλωσσών προγραμματισμού C-assembly.
Βιβλιογραφία μαθήματος (Εύδοξος)
Βιβλίο [22768243]: Μικροεπεξεργαστές και Σχεδιασμός Μικροϋπολογιστικών Συστημάτων, Νικόλαος Χ. Πετρέλλης, Γεώργιος Φ. Αλεξίου
Βιβλίο [45348]: Συστήματα Μικροϋπολογιστών, ΤΟΜΟΣ Ι: Μικροεπεξεργαστές 80x86 Pentium και ARM, Πεκμεστζή Κιαμάλ