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

Σχετικά έγγραφα
Εντολές γλώσσας μηχανής

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

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

Παραδείγματα Προγραμματισμού σε Assembly του TRN

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

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

Βασική δοµή και Λειτουργία Υπολογιστή

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 2. Οργάνωση και διαχείριση της Πληροφορίας στον. Υπολογιστή

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ. A. Μετατροπή αριθμών 1. Μετατροπή αριθμών από δεκαδικό σε δυαδικό σύστημα αρίθμησης

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

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

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

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

ΤΙ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 6 : Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Δρ.

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

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

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

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

Δομή Ηλεκτρονικού υπολογιστή

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

Εισαγωγή στους Η/Υ και Εφαρμογές

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

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

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

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

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

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

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

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

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

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

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

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

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

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

Βασικές έννοιες προγραμματισμού

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1

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

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1

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

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

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

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

Transcript:

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

Δομή του TRN KME Μνήμη Διάδρομος Δεδομένων Διάδρομος Διευθύνσεων Διάδρομος Ελέγχου Μονάδα Ασύγχρονης Επικοινωνίας Μονάδα απευθείας προσπέλασης μνήμης Ελεγκτής δίσκου

ΚΜΕ Η Κεντρική Μονάδα Επεξεργασία (KME, Central Processing Unit CPU) είναι ο εγκέφαλος του υπολογιστή. Εκτελεί τα προγράμματα που είναι αποθηκευμένα στη μνήμη ανακαλώντας τις εντολές, αποκωδικοποιώντας τις και εκτελώντας τις τη μία κατόπιν της άλλης Η ΚΜΕ αποτελείται από την Μονάδα Ελέγχου, την Αριθμητική και Λογική Μονάδα και ορισμένους καταχωρητές.

ΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit) δίνει τα σήματα ελέγχου στην Αριθμητική και Λογική Μονάδα (ποια εντολή να εκτελέσει, πότε, με ποια δεδομένα) Η Αριθμητική και Λογική Μονάδα (ALU) εκτελεί αριθμητικές και λογικές πράξεις σε δυαδικές ακολουθίες. Εντολές (σύνολο εντολών instruction set) Τι είδους και πόσες; Τι ενέργειες κάνουν; Πως περιγράφονται; Με πόσους τελεστές;

Τι είδους εντολές; Εντολές μεταφοράς Τιμή καταχωρητή ίση με μια σταθερά Μεταφορά περιεχομένου θέσης μνήμης σε καταχωρητή (load), μεταφορά καταχωρητή σε θέση μνήμης (store), κλπ. Αριθμητικές/Λογικές εντολές Πρόσθεση, αφαίρεση, πολλαπλασιασμός, διαίρεση μεταξύ καταχωρητών και (ίσως) θέσεων μνήμης Σύζευξη/διάζευξη μεταξύ των ψηφίων των καταχωρητών, συμπλήρωμα, κλπ. Έλεγχος ροής Άλματα χωρίς και υπό συνθήκη σε μια άλλη θέση Άλμα υπορουτίνας

Εντολές και Αρχιτεκτονικές CISC (Complex Instruction Set Computer) Κάθε εντολή περιλαμβάνει πολλές χαμηλού επιπέδου διεργασίες-σύνθετες εντολές. RISC (Reduced Instruction Set Computer) Απλές εντολές οι οποίες είναι και βελτιστοποιημένες σε απόδοση. MISC (Minimal Instruction Set Computer) Πολύ μικρός αριθμός εντολών Συνήθως βασισμένο σε μηχανές στοίβας (stack machines).

Μορφή Εντολές αναπαρίστανται με ένα αριθμό δυαδικών ψηφίων (bits). Για παράδειγμα 00001 00 0000000000100 Εντολή: φόρτωσε στον καταχωρητή Α τα δεδομένα της θέσης 4 της μνήμης Πρόγραμμα: 00111 00 0000000000000 01001 00 0000000000000 11111 00 0000000000000 Επεξήγηση: φόρτωσε στον Α τη σταθερά 0, αύξησε τον Α κατά 1, και σταμάτησε την εκτέλεση.

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

Μορφή Assembly Εντολές αναπαρίστανται με μνημονικά ονόματα. Ένα πρόγραμμα (συμβολομεταφραστής / assembler) αναλαμβάνει τη μετάφραση. Για παράδειγμα 00001 00 0000000000100 LDA 4 Εντολή: φόρτωσε στον καταχωρητή Α τα δεδομένα της θέσης 4 της μνήμης Πρόγραμμα: 00111 00 0000000000000 ENA 0 01001 00 0000000000000 INA 11111 00 0000000000000 HTL Επεξήγηση: φόρτωσε στον Α τη σταθερά 0, αύξησε τον Α κατά 1, και σταμάτησε την εκτέλεση.

Συμβολική Γλώσσα (Assembly) Πλεονεκτήματα Ευκολότερος προγραμματισμός Μνημονικά ονόματα για εντολές Συμβολικές αντί πραγματικών διευθύνσεων Μικρότερη εξάρτηση από τη δομή και τις λειτουργίες του Η/Υ. Ευκολότερη τροποποίηση Στοιχειώδης διαχωρισμός προγραμμάτων με χρήση υπορρουτινών. Μειονεκτήματα Απαιτείται επιπλέον χρονικό διάστημα (περιορισμένο) για τη φάση της συμβολομετάφρασης.

Αριθμός Διευθύνσεων (Τελεστών) Ο αριθμός των διευθύνσεων της κάθε εντολής μπορεί να είναι: 0 διευθύνσεις, με εφαρμογή συνήθως σε μηχανές στοίβας, όπου όλες οι εντολές λαμβάνουν χώρα με ορίσματα που παίρνουν από μια στοίβα. 1 διεύθυνση, όπου τα αποτελέσματα των πράξεων υπονοούν πάντα την ύπαρξη ενός συσσωρευτή (accumulator) 2,3 ή περισσότερες διευθύνσεις (μηχανές καταχωρητών - register machines).

Εντολές τριών διευθύνσεων Μορφή Εντολής: <Κώδ. Εντολής> <διεύθ.δεδομ.1> <διεύθ.δεδομ.2> <διεύθ.αποτελ.> Παραδείγματα ΠΡΟΣΘΕΣΗ ΑΦΑΙΡΕΣΗ ΠΟΛ/ΣΜΟΣ ΔΙΑΙΡΕΣΗ ADD X, Y, Z ;; Ζ = Χ + Υ SUB X, Y, Z ;; Ζ = Χ - Υ MUL X, Y, Z ;; Ζ = Χ * Υ DIV X, Υ, Ζ ;; Ζ = Χ / Υ

Εντολές τριών διευθύνσεων Έστω η εντολή της C: A = B*(C+D*E-F/G) (5 Αριθμητικοί Τελεστές) MUL D, E, T1 DIV F, G, T2 ADD C, T1, T1 SUB T1, T2, T1 MUL B, T1, A (5 Εντολές assembly)

Εντολές τριών διευθύνσεων Μειονέκτημα: Πολλά bits για την αποθήκευση των εντολών Πλεονέκτημα: Μικρά σχετικά προγράμματα (λίγες εντολές) Το μικρότερο πρόγραμμα που αντιστοιχεί στην εντολή: Α = Β + C + D + E + F + G ADD B,C,A ADD A,D,A ADD A,E,A ADD A,F,A ADD A,G,A Όλες οι εντολές πλην της πρώτης χρειάζονται δύο μόνο διαφορετικές διευθύνσεις: Άσκοπη κατανάλωση μνήμης

Εντολές δύο διευθύνσεων Μορφή Εντολής: <Κώδ. Εντολής> <διεύθ.δεδομ.1 και αποτελ.> <διεύθ.δεδομ.2> Παραδείγματα: ΠΡΟΣΘΕΣΗ ADD X, Y ;; Χ = Χ + Υ ΑΦΑΙΡΕΣΗ SUB X, Y ;; Χ = Χ - Υ ΠΟΛ/ΣΜΟΣ MUL X, Y ;; Χ = Χ * Υ ΔΙΑΙΡΕΣΗ DIV X, Υ ;; Χ = Χ/Υ

Δύο διευθύνσεις vs. Τρείς Διευθύνσεις Η εντολή τριών διευθύνσεων MUL A, B, C αντιστοιχεί στις: SUB C, C Μηδενισμός του αποτελέσματος ADD C, A MUL C, B Οι δύο πρώτες εντολές στην ουσία μεταφέρουν το περιεχόμενο της θέσης Α στην θέση C Για αυτό και τα σύνολα εντολών δύο διευθύνσεων περιέχουν και την εντολή MOVE X, Y

Εντολές δύο διευθύνσεων Έστω η εντολή της C: A = B*(C+D*E-F/G) (5 Αριθμητικοί Τελεστές) Χωρίς να καταστρέψουμε τα περιεχόμενα καμίας θέσης μνήμης είναι: ΜΟVE A, D (D -> A) MUL A, E MOVE T, F (δεν καταστρέφουμε την F) DIV T, G ADD A, C SUB A, T MUL A, B (7 εντολές)

Εντολές δύο διευθύνσεων Το μικρότερο πρόγραμμα που αντιστοιχεί στην εντολή: Α = Β + C + D + E + F + G ΜΟVE A, B ADD A, C ADD A, D ADD A, E ADD A, F ADD A, G (6 εντολές)

Εντολές μίας διεύθυνσης Στις πράξεις υπονοείται ότι συμμετέχει ο συσσωρευτής ΑCC Μορφή Εντολής:<Κώδ. Εντολής> <διεύθ.δεδομ.1> Παραδείγματα ΠΡΟΣΘΕΣΗ ADD X (ACC = ACC + X) ΑΦΑΙΡΕΣΗ SUB X (ACC = ACC X) ΠΟΛ/ΣΜΟΣ MUL X (ACC = ACC * X) ΔΙΑΙΡΕΣΗ DIV X (ACC = ACC / X) υπάρχουν επίσης οι εντολές μεταφοράς LOAD X (ACC = X) STORE X (X = ACC)

Εντολές μίας διεύθυνσης Έστω η εντολή της C: A = B*(C+D*E-F/G) LOAD D MUL E STORE T1 LOAD F DIV G STORE T2 LOAD C ADD T1 SUB T2 MUL B STORE A ( έντεκα εντολές)

Εντολές μηδέν διευθύνσεων Δεν προσδιορίζονται διευθύνσεις σαν ορίσματα. Βασίζονται στη χρήση στοίβας (stack) Η στοίβα είναι γνωστή και ως μνήμη LIFO Οι καταχωρητές ενός Η/Υ μπορεί να θεωρηθούν ως στοίβα: Κορυφή στοίβας (πρώτος καταχωρητής) Δεύτερος καταχωρητής κ.ο.κ. Τελευταίος καταχωρητής -> Βάση στοίβας Οι αριθμητικές και λογικές πράξεις επεξεργάζονται τα περιεχόμενα του δεύτερου καταχωρητή και της κορυφής, τοποθετούν το αποτέλεσμα στο δεύτερο καταχωρητή και μετακινούν όλα τα αποτελέσματα προς τα πάνω κατά μία θέση.

Εντολές μηδέν διευθύνσεων 5 3 ADD 5 8 8 13 13 13-2 -2-2 3657 3657 3657 8512 8512 8512-765 -765-765 -7-7 -7 undefined

Εντολές μηδέν διευθύνσεων Οι υπολογιστές μηδέν διευθύνσεων πρέπει οπωσδήποτε να έχουν δύο τουλάχιστον εντολές μιας διεύθυνσης: LOAD X (ανακαλεί το περιεχόμενο της θέσης Χ και το προσθέτει στην κορυφή της στοίβας τα υπόλοιπα μετακινούνται προς τα κάτω) STORE X (αφαιρεί το περιεχόμενο της κορυφής και το αποθηκεύει στη θέση Χ της μνήμης τα υπόλοιπα μετακινούνται προς τα πάνω)

Αντίστροφη Πολωνική Γραφή Πως γράφουμε μία κανονική παράσταση (π.χ. Pascal ή C ) σε υπολογιστή στοίβας? Με μετατροπή της έκφρασης σε Αντίστροφο Πολωνικό Συμβολισμό ή μεταθεματικό συμβολισμό Στο συμβολισμό αυτό, οι τελεστές ακολουθούν τους τελεστέους Εμφανίζονται με τη σειρά με την οποία πρέπει να εφαρμοστούν

Αντίστροφη Πολωνική Γραφή Ενδοθεματική παράσταση (infix notation) Μεταθεματική Παράσταση (postfix notation) α * b + c a + b * c a * b + c * d a * b div c (a+b) div (c-d) ((a+b) * c +d) div (e+f-g) a b * c + a b c * + ab * cd* + a b * c div ab + cd div ab+c*d+ef+g-div

Ενδοθεματική - Μεταθεματική H αλγεβρική έκφραση A*B + C μπορεί να παρασταθεί ως δένδρο: Α + * C Ενδοδιατεταγμένος τρόπος διάσχισης Επίσκεψη του αριστερού υποδένδρου Επίσκεψη της ρίζας Επίσκεψη του δεξιού υπόδενδρου Β

Ενδοθεματική - Μεταθεματική Μεταδιατεταγμένος τρόπος διάσχισης Επίσκεψη του αριστερού υποδένδρου Επίσκεψη του δεξιού υπόδενδρου Επίσκεψη της ρίζας function PostOrder(Node* ptr) { if(ptr!= NULL) { PostOrder(ptr->left); PostOrder(ptr->right); printf( %c, ptr->data); } } struct Node { char data; struct Node* left; struct Node* right; }

Αντίστροφη Πολωνική Γραφή Έστω η εντολή εκχώρησης: Α = Β * (C + D*E F div G) είναι ισοδύναμη με την μεταθεματική εντολή: Β C D E * + F G div - * = A που για έναν υπολογιστή στοίβας μεταφράζεται στις εντολές: LOAD B LOAD C LOAD D LOAD E MUL ADD LOAD F LOAD G DIV SUB MUL STORE A (12 εντολές)

Παράδειγμα Εκτέλεσης LOAD B LOAD C LOAD D LOAD E MUL ADD LOAD F LOAD G DIV SUB MUL STORE A LOAD(s) 2 2 3 2 Α = Β * (C + D*E F div G) 4 3 2 A B C D E F G 2 3 2 2 4 2 MUL ADD LOAD(s) DIV SUB MUL 7 2 2 4 7 2 2 7 2 5 2 10

Συμπέρασμα Η εντολή : Α = Β * (C + D*E F div G) απαιτεί: 5 εντολές τριών διευθύνσεων 7 εντολές δύο διευθύνσεων 11 εντολές μίας διεύθυνσης 12 εντολές υπολογιστή στοίβας Οι εντολές πολλών διευθύνσεων οδηγούν σε μικρότερα προγράμματα Τα κυκλώματα όμως για την υλοποίηση τέτοιων εντολών είναι πολυπλοκότερα

Εφαρμογές Assembly Embedded Systems Οδηγούς Συσκευών Προγραμματισμός παιχνιδιών Όταν υπάρχουν πολύ περιορισμένοι πόροι. Σε κρίσιμα συστήματα ελέγχου...