Εντολές τριών...
Transcript of Εντολές τριών...
![Page 1: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/1.jpg)
Οργάνωση Η/Υ
Γλώσσα Assembly
Τμήμα Εφαρμσμένης Πληροφορικής Πανεπιστήμιο ΜακεδονίαςΑ. Χατζηγεωργίου-Η. Σακελλαρίου
![Page 2: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/2.jpg)
Δομή του TRN
KME
Μνήμη
Μονάδα Ασύγχρονης Επικοινωνίας
Μονάδα απευθείας προσπέλασης μνήμης
Ελεγκτής δίσκουΔιάδ
ρομο
ς Δε
δομέ
νων
Διάδ
ρομο
ς Δι
ευθύ
νσεω
ν
Διάδ
ρομο
ς Ε
λέγχ
ου
![Page 3: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/3.jpg)
ΚΜΕ
● Η Κεντρική Μονάδα Επεξεργασία (KME, Central Processing Unit – CPU) είναι ο ‘’εγκέφαλος’’ του υπολογιστή.
– Εκτελεί τα προγράμματα που είναι αποθηκευμένα στη μνήμη ανακαλώντας τις εντολές, αποκωδικοποιώντας τις και εκτελώντας τις τη μία κατόπιν της άλλης
– Η ΚΜΕ αποτελείται από την Μονάδα Ελέγχου, την Αριθμητική και Λογική Μονάδα και ορισμένους καταχωρητές.
![Page 4: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/4.jpg)
ΚΜΕ (cont)● Η Μονάδα Ελέγχου (Control Unit) δίνει τα
σήματα ελέγχου στην Αριθμητική και Λογική Μονάδα (ποια εντολή να εκτελέσει, πότε, με ποια δεδομένα)
● Η Αριθμητική και Λογική Μονάδα (ALU) εκτελεί αριθμητικές και λογικές πράξεις σε δυαδικές ακολουθίες.
● Εντολές (σύνολο εντολών – instruction set)− Τι είδους και πόσες;− Τι ενέργειες κάνουν;− Πως περιγράφονται;− Με πόσους τελεστές;
![Page 5: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/5.jpg)
Τι είδους εντολές;● Εντολές μεταφοράς− Τιμή καταχωρητή ίση με μια σταθερά− Μεταφορά περιεχομένου θέσης μνήμης σε
καταχωρητή (load), μεταφορά καταχωρητή σε θέση μνήμης (store), κλπ.
● Αριθμητικές/Λογικές εντολές− Πρόσθεση, αφαίρεση, πολλαπλασιασμός, διαίρεση
μεταξύ καταχωρητών και (ίσως) θέσεων μνήμης− Σύζευξη/διάζευξη μεταξύ των ψηφίων των
καταχωρητών, συμπλήρωμα, κλπ.● Έλεγχος ροής− Άλματα χωρίς και υπό συνθήκη σε μια άλλη θέση− Άλμα υπορουτίνας
![Page 6: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/6.jpg)
Εντολές και Αρχιτεκτονικές● CISC (Complex Instruction Set Computer)− Κάθε εντολή περιλαμβάνει “πολλές” χαμηλού
επιπέδου διεργασίες-σύνθετες εντολές.● RISC (Reduced Instruction Set Computer)− Απλές εντολές οι οποίες είναι και βελτιστοποιημένες
σε απόδοση.● MISC (Minimal Instruction Set Computer)− Πολύ μικρός αριθμός εντολών− Συνήθως βασισμένο σε μηχανές στοίβας (stack
machines).
![Page 7: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/7.jpg)
Μορφή● Εντολές αναπαρίστανται με ένα αριθμό δυαδικών
ψηφίων (bits).● Για παράδειγμα− 00001 00 0000000000100 − Εντολή: φόρτωσε στον καταχωρητή Α τα δεδομένα
της θέσης 4 της μνήμης − Πρόγραμμα:− 00111 00 0000000000000− 01001 00 0000000000000− 11111 00 0000000000000− Επεξήγηση: φόρτωσε στον Α τη σταθερά 0, αύξησε
τον Α κατά 1, και σταμάτησε την εκτέλεση.
![Page 8: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/8.jpg)
Γλώσσα Μηχανής● Μειονεκτήματα− Απαιτείται υπερβολικός χρόνος και προσπάθεια για
προγραμματισμό− Απαιτείται λεπτομερής γνώση του συγκεκριμένου Η/Υ− Επιρρεπής διαδικασία σε λάθη – δύσκολη
αποσφαλμάτωση− Δύσκολη τροποποίηση προγραμμάτων− Δύσκολος διαχωρισμός του προγράμματος σε
ανεξάρτητα τμήματα● Πλεονεκτήματα− Πλήρης έλεγχος των δυνατοτήτων του Η/Υ− Καλή γνώση γλώσσας μηχανής οδηγεί σε μικρά
προγράμματα με μικρό χρόνο εκτέλεσης.
![Page 9: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/9.jpg)
Μορφή Assembly● Εντολές αναπαρίστανται με μνημονικά ονόματα.● Ένα πρόγραμμα (συμβολομεταφραστής / assembler)
αναλαμβάνει τη μετάφραση.● Για παράδειγμα− 00001 00 0000000000100 LDA 4◊ Εντολή: φόρτωσε στον καταχωρητή Α τα δεδομένα της
θέσης 4 της μνήμης − Πρόγραμμα:− 00111 00 0000000000000 ENA 0− 01001 00 0000000000000 INA− 11111 00 0000000000000 HTL◊ Επεξήγηση: φόρτωσε στον Α τη σταθερά 0, αύξησε τον
Α κατά 1, και σταμάτησε την εκτέλεση.
![Page 10: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/10.jpg)
Συμβολική Γλώσσα (Assembly)● Πλεονεκτήματα− Ευκολότερος προγραμματισμός− Μνημονικά ονόματα για εντολές − Συμβολικές αντί πραγματικών διευθύνσεων− Μικρότερη εξάρτηση από τη δομή και τις λειτουργίες
του Η/Υ.− Ευκολότερη τροποποίηση− Στοιχειώδης διαχωρισμός προγραμμάτων με χρήση
υπορρουτινών.● Μειονεκτήματα− Απαιτείται επιπλέον χρονικό διάστημα (περιορισμένο)
για τη φάση της συμβολομετάφρασης.
![Page 11: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/11.jpg)
Αριθμός Διευθύνσεων (Τελεστών)● Ο αριθμός των διευθύνσεων της κάθε εντολής
μπορεί να είναι:− 0 διευθύνσεις, με εφαρμογή συνήθως σε μηχανές
στοίβας, όπου όλες οι εντολές λαμβάνουν χώρα με ορίσματα που παίρνουν από μια στοίβα.
− 1 διεύθυνση, όπου τα αποτελέσματα των πράξεων υπονοούν πάντα την ύπαρξη ενός συσσωρευτή (accumulator)
− 2,3 ή περισσότερες διευθύνσεις (μηχανές καταχωρητών - register machines).
![Page 12: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/12.jpg)
Εντολές τριών διευθύνσεων
• Μορφή Εντολής: <Κώδ. Εντολής> <διεύθ.δεδομ.1> <διεύθ.δεδομ.2> <διεύθ.αποτελ.>• Παραδείγματα
ΠΡΟΣΘΕΣΗ ADD X, Y, Z ;; Ζ = Χ + ΥΑΦΑΙΡΕΣΗ SUB X, Y, Z ;; Ζ = Χ - ΥΠΟΛ/ΣΜΟΣ MUL X, Y, Z ;; Ζ = Χ * ΥΔΙΑΙΡΕΣΗ DIV X, Υ, Ζ ;; Ζ = Χ / Υ
![Page 13: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/13.jpg)
Εντολές τριών διευθύνσεων
Έστω η εντολή της C:A = B*(C+D*E-F/G) (5 Αριθμητικοί Τελεστές)
MUL D, E, T1DIV F, G, T2ADD C, T1, T1SUB T1, T2, T1MUL B, T1, A
(5 Εντολές assembly)
![Page 14: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/14.jpg)
Εντολές τριών διευθύνσεων● Μειονέκτημα: Πολλά bits για την αποθήκευση των
εντολών● Πλεονέκτημα: Μικρά σχετικά προγράμματα (λίγες
εντολές)● Το μικρότερο πρόγραμμα που αντιστοιχεί στην
εντολή: Α = Β + C + D + E + F + GADD B,C,AADD A,D,AADD A,E,AADD A,F,AADD A,G,A
Όλες οι εντολές πλην της πρώτης χρειάζονται δύο μόνο διαφορετικές διευθύνσεις: Άσκοπη κατανάλωση μνήμης
![Page 15: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/15.jpg)
Εντολές δύο διευθύνσεων● Μορφή Εντολής: <Κώδ. Εντολής> <διεύθ.δεδομ.1 και αποτελ.> <διεύθ.δεδομ.2>● Παραδείγματα:
ΠΡΟΣΘΕΣΗ ADD X, Y ;; Χ = Χ + ΥΑΦΑΙΡΕΣΗ SUB X, Y ;; Χ = Χ - ΥΠΟΛ/ΣΜΟΣ MUL X, Y ;; Χ = Χ * ΥΔΙΑΙΡΕΣΗ DIV X, Υ ;; Χ = Χ/Υ
![Page 16: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/16.jpg)
Δύο διευθύνσεις vs. Τρείς Διευθύνσεις● Η εντολή τριών διευθύνσεων
MUL A, B, C● αντιστοιχεί στις:SUB C, C Μηδενισμός του αποτελέσματοςADD C, AMUL C, B● Οι δύο πρώτες εντολές στην ουσία μεταφέρουν το
περιεχόμενο της θέσης Α στην θέση C● Για αυτό και τα σύνολα εντολών δύο διευθύνσεων
περιέχουν και την εντολή MOVE X, Y
![Page 17: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/17.jpg)
Εντολές δύο διευθύνσεων● Έστω η εντολή της C:A = B*(C+D*E-F/G) (5 Αριθμητικοί Τελεστές)● Χωρίς να καταστρέψουμε τα περιεχόμενα καμίας θέσης
μνήμης είναι:ΜΟVE A, D (D -> A)MUL A, EMOVE T, F (δεν καταστρέφουμε την F)DIV T, GADD A, CSUB A, TMUL A, B (7 εντολές)
![Page 18: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/18.jpg)
Εντολές δύο διευθύνσεων● Το μικρότερο πρόγραμμα που αντιστοιχεί στην
εντολή:Α = Β + C + D + E + F + G
ΜΟVE A, BADD A, CADD A, DADD A, EADD A, FADD A, G (6 εντολές)
![Page 19: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/19.jpg)
Εντολές μίας διεύθυνσης● Στις πράξεις υπονοείται ότι συμμετέχει ο
συσσωρευτής Α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)
![Page 20: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/20.jpg)
Εντολές μίας διεύθυνσης● Έστω η εντολή της C: A = B*(C+D*E-F/G)LOAD DMUL ESTORE T1LOAD FDIV GSTORE T2LOAD CADD T1SUB T2MUL BSTORE A ( έντεκα εντολές)
![Page 21: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/21.jpg)
Εντολές μηδέν διευθύνσεων● Δεν προσδιορίζονται διευθύνσεις σαν ορίσματα.● Βασίζονται στη χρήση στοίβας (stack)● Η στοίβα είναι γνωστή και ως μνήμη LIFO● Οι καταχωρητές ενός Η/Υ μπορεί να θεωρηθούν ως
στοίβα:− Κορυφή στοίβας (πρώτος καταχωρητής)− Δεύτερος καταχωρητής κ.ο.κ.− Τελευταίος καταχωρητής -> Βάση στοίβας
● Οι αριθμητικές και λογικές πράξεις επεξεργάζονται τα περιεχόμενα του δεύτερου καταχωρητή και της κορυφής, τοποθετούν το αποτέλεσμα στο δεύτερο καταχωρητή και μετακινούν όλα τα αποτελέσματα προς τα πάνω κατά μία θέση.
![Page 22: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/22.jpg)
Εντολές μηδέν διευθύνσεων
5313-2
36578512-765-7
ADDADD 813-2
36578512-765-7
undefined
5
813-2
36578512-765-7
![Page 23: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/23.jpg)
Εντολές μηδέν διευθύνσεων
● Οι υπολογιστές μηδέν διευθύνσεων πρέπει οπωσδήποτε να έχουν δύο τουλάχιστον εντολές μιας διεύθυνσης:
– LOAD X– (ανακαλεί το περιεχόμενο της θέσης Χ και το
προσθέτει στην κορυφή της στοίβας – τα υπόλοιπα μετακινούνται προς τα κάτω)
– STORE X– (αφαιρεί το περιεχόμενο της κορυφής και το
αποθηκεύει στη θέση Χ της μνήμης – τα υπόλοιπα μετακινούνται προς τα πάνω)
![Page 24: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/24.jpg)
Αντίστροφη Πολωνική Γραφή● Πως γράφουμε μία κανονική παράσταση (π.χ.
Pascal ή C ) σε υπολογιστή στοίβας ?● Με μετατροπή της έκφρασης σε Αντίστροφο
Πολωνικό Συμβολισμό ή μεταθεματικό συμβολισμό● Στο συμβολισμό αυτό, οι τελεστές ακολουθούν τους
τελεστέους● Εμφανίζονται με τη σειρά με την οποία πρέπει να
εφαρμοστούν
![Page 25: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/25.jpg)
Αντίστροφη Πολωνική ΓραφήΕνδοθεματική παράσταση (infix notation)
α * b + ca + b * ca * b + c * da * b div c(a+b) div (c-d)((a+b) * c +d) div (e+f-g)
Μεταθεματική Παράσταση(postfix notation)
a b * c +a b c * +ab * cd* +a b * c divab + cd – divab+c*d+ef+g-div
![Page 26: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/26.jpg)
Ενδοθεματική - Μεταθεματική
+
* C
Α Β
● H αλγεβρική έκφραση A*B + C μπορεί να παρασταθεί ως δένδρο:
● Ενδοδιατεταγμένος τρόπος διάσχισης– Επίσκεψη του αριστερού υποδένδρου– Επίσκεψη της ρίζας– Επίσκεψη του δεξιού υπόδενδρου
![Page 27: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/27.jpg)
Ενδοθεματική - Μεταθεματική
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;}
● Μεταδιατεταγμένος τρόπος διάσχισης− Επίσκεψη του αριστερού υποδένδρου− Επίσκεψη του δεξιού υπόδενδρου− Επίσκεψη της ρίζας
![Page 28: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/28.jpg)
Αντίστροφη Πολωνική ΓραφήLOAD BLOAD CLOAD DLOAD EMULADDLOAD FLOAD GDIVSUBMULSTORE A
(12 εντολές)
● Έστω η εντολή εκχώρησης:Α = Β * (C + D*E – F div G)
● είναι ισοδύναμη με την μεταθεματική εντολή:
Β C D E * + F G div - * = A● που για έναν υπολογιστή στοίβας
μεταφράζεται στις εντολές:
![Page 29: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/29.jpg)
Παράδειγμα Εκτέλεσης● Α = Β * (C + D*E – F div G)LOAD B
LOAD CLOAD DLOAD EMULADDLOAD FLOAD GDIVSUBMULSTORE A
A B C D E F G2 3 2 2 4 2
2232
432
72
2472
272
52
10
MUL ADD LOAD(s) DIV MULSUBLOAD(s)
![Page 30: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/30.jpg)
Συμπέρασμα● Η εντολή :
Α = Β * (C + D*E – F div G)● απαιτεί:− 5 εντολές τριών διευθύνσεων− 7 εντολές δύο διευθύνσεων− 11 εντολές μίας διεύθυνσης− 12 εντολές υπολογιστή στοίβας
● Οι εντολές πολλών διευθύνσεων οδηγούν σε μικρότερα προγράμματα
● Τα κυκλώματα όμως για την υλοποίηση τέτοιων εντολών είναι πολυπλοκότερα
![Page 31: Εντολές τριών διευθύνσεωνusers.uom.gr/~iliass/Courses/ComputerOrg/Slides/Introduction_to_assembly.pdfΚΜΕ (cont) Η Μονάδα Ελέγχου (Control Unit)](https://reader033.fdocument.pub/reader033/viewer/2022041921/5e6c05b1b4a6693a45634f38/html5/thumbnails/31.jpg)
Εφαρμογές Assembly ● Embedded Systems● Οδηγούς Συσκευών● Προγραμματισμός παιχνιδιών● Όταν υπάρχουν πολύ περιορισμένοι πόροι.● Σε κρίσιμα συστήματα ελέγχου● ....