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

Σχετικά έγγραφα
Αρχιτεκτονική Υπολογιστών

Καταχωρητές γενικής χρήσης και δεδοµένων (Data Registers)

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

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

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

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική -Ι

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 3 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 4 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

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

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

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

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

Λειτουργικά Συστήματα

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

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

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

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Σημειώσεις για τον 80x86

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

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

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Ενσωματωμένα Συστήματα

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 4 : Πράξεις με bits. Δρ. Γκόγκος Χρήστος

Πληροφορική ΙΙ Θεματική Ενότητα 5

Μοντελοποίηση Λογικών Κυκλωμάτων

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 6 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

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

Πράξεις με δυαδικούς αριθμούς

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

Υπολογιστικά Συστήματα

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Θεωρία Πιθανοτήτων & Στατιστική

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών

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

Ενσωματωμένα Συστήματα

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Μαθηματική Ανάλυση ΙI

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ.

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

{ int a = 5; { int b = 7; a = b + 3;

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 3 : Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

Οικονομικά Μαθηματικά

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

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

Chapter 3. Αριθμητική Υπολογιστών. Έβδομη (7 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Transcript:

Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 5: Εντολές αλλαγής ροής. Διακλάδωση χωρίς συνθήκη. Διακλάδωση με συνθήκη. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg Πανεπιστήμιο Δυτικής Μακεδονίας

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Πανεπιστήμιο Δυτικής Μακεδονίας 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Πανεπιστήμιο Δυτικής Μακεδονίας 3

Η εντολή JMP Εντολή διακλάδωσης χωρίς συνθήκη. H εκτέλεση συνεχίζεται από το σημείο που ορίζει η JMP. Σύνταξη: JMP (παράμετρος1) Όπου (παράμετρος1) είναι μια ετικέτα μνήμης, δηλαδή ένα αλφαριθμητικό ακολουθούμενο από : Για παράδειγμα: JMP ARXH σε κάποιο σημείο του κώδικα υπάρχει ARXH: Πανεπιστήμιο Δυτικής Μακεδονίας 4

Ειδικοί Καταχωρητές Ο 8086 εκτός από τους καταχωρητές γενικής χρήσης AX, BX, CX, DX έχει και τους καταχωρητές ειδικής χρήσης BP, SP, SI, DI που χρησιμοποιούνται για τη διευθυνσιοδότηση μνήμης (δες σχετική διάλεξη θεωρίας). Υπάρχει επίσης ένας ειδικός καταχωρητής που ονομάζεται Καταχωρητής Κατάστασης ή σημαιών και είναι ο SR. Πανεπιστήμιο Δυτικής Μακεδονίας 5

Καταχωρητής κατάστασης ή σημαιών (Status Register) Είναι ο μοναδικός καταχωρητής στον οποίο επιτρέπεται πρόσβαση ανά bit (δηλαδή μπορούμε να διαβάσουμε π.χ. την τιμή του bit 0). Κάθε θέση bit αντιστοιχεί σε μια συγκεκριμένη ανίχνευση κατάστασης. Π.χ. Αν το bit0 είναι 1, τότε εμφανίζεται η κατάσταση CF (κρατούμενο) που σημαίνει ότι έχει δημιουργηθεί κρατούμενο από την προηγούμενη αριθμητική πράξη. Ο SR ενημερώνεται ΜΟΝΟ από τις αριθμητικές και λογικές πράξεις. Πανεπιστήμιο Δυτικής Μακεδονίας 6

Σημαντικοί Δείκτες Κατάστασης του SR CF (Carry Flag) Χρησιμοποιείται σαν ένα επιπλέον δυαδικό ψηφίο σε αριθμητικές εντολές (ADD, SUB, ADC, SBC). Εάν προκύψει ένα κρατούμενο (πρόσθεση) ή απαιτηθεί δανεισμός (αφαίρεση), παίρνει τιμή 1 αλλιώς 0. SF (Sign Flag) Χρησιμοποιείται από αριθμητικές ή λογικές πράξεις.. Εάν το αποτέλεσμα είναι θετικό γίνεται 0, εάν είναι αρνητικό γίνεται 1. ZF (Zero Flag) Γίνεται 1 αν το αποτέλεσμα µιας αριθµητικής ή λογικής πράξης είναι 0, αλλιώς µένει 0. OF (Overflow Flag) Γίνεται 1 όταν το προσημασμένο αποτέλεσμα μιας πράξης (σε συμπλήρωμα του δύο) είναι πολύ μεγάλο ή πολύ μικρό για να χωρέσει στον τελεστή του αποδέκτη. Πανεπιστήμιο Δυτικής Μακεδονίας 7

Διακλαδώσεις µε συνθήκη Συγκρίσεις Ο 8086 διαθέτει 18 εντολές διακλαδώσεων µε τις οποίες υπάρχει η δυνατότητα διακλάδωσης ανάλογα µε την τιμή μιας σημαίας ή συνδυασμού σημαιών. Ειδικά αναφέρουμε ότι αν ελέγχουμε το αποτέλεσμα πράξεων με μη προσηµασµένους αριθµούς τότε λαμβάνεται υπόψη μεταξύ των άλλων η CF ( Carry Flag), ενώ σε προσηµασµένους αριθµούς ελέγχεται η OF (Overflow Flag) και η SF (Sign Flag). Πανεπιστήμιο Δυτικής Μακεδονίας 8

Υλοποίηση διακλάδωσης Η διακλάδωση υλοποιείται με 5 βήματα: Εντολή σύγκρισης (CMP). Εντολή αλλαγής ροής εκτέλεσης υπό συνθήκη (J ). Ομάδα εντολών που θα εκτελεστούν αν δεν υλοποιηθεί η αλλαγή ροής εκτέλεσης. Ομάδα εντολών που θα εκτελεστούν αν υλοποιηθεί η αλλαγή ροής εκτέλεσης. Πανεπιστήμιο Δυτικής Μακεδονίας 9

Εντολή σύγκρισης CMP (1/2) Πολύ συχνά μιας εντολής διακλάδωσης µε συνθήκη προηγείται μια εντολή σύγκρισης CMP όποτε και η διακλάδωση πραγματοποιείται ή όχι, ανάλογα με το αποτέλεσμα της σύγκρισης. Η εντολή σύγκρισης συντάσσεται όπως η εντολή αφαίρεσης SUB: CMP (παράμετρος1), (παράμετρος2). Όπου (παράμετρος1,2) είναι: Καταχωρητές. Διευθύνσεις μνήμης. Αριθμοί. Πρέπει να έχουν ίδιο μέγεθος! Πανεπιστήμιο Δυτικής Μακεδονίας 10

Εντολή σύγκρισης CMP (2/2) Παραδείγματα: cmp AL,5 ;σύγκριση του AL με την τιμή 5. cmp BX, 5 ; σύγκριση του ΒΧ με την ASCII τιμή 5. cmp DX,DI ; σύγκριση του DX με το DI. Η CMP έχει ως αποτέλεσμα να ενημερώσει τον καταχωρητή σημαιών SR. Δεν επιτελείται καμία άλλη αλλαγή. Δεν αλλάζει κάποιος καταχωρητής. Το επόμενο βήμα είναι να ελέγξουμε το κατάλληλο bit του SR. Πανεπιστήμιο Δυτικής Μακεδονίας 11

Η CMP υλοποιεί μια πράξη αφαίρεσης χωρίς να αποθηκεύεται το αποτέλεσμα Η CMP συγκρίνει τον προορισμό µε την προέλευση, δηλαδή όπως και η SUB αφαιρεί από τον προορισμό την προέλευση, ενημερώνει τους δείκτες κατάστασης (Flags) ανάλογα με το αποτέλεσμα της πράξης, αλλά το αποτέλεσμα της πράξης δεν το αποθηκεύει πουθενά, δηλαδή οι τελεστές της σύγκρισης δεν αλλάζουν τιμή. Το επόμενο είναι να χρησιμοποιήσουμε κάποια εντολή που ξεκινάει με J η οποία ελέγχει την κατάλληλη σημαία. Πανεπιστήμιο Δυτικής Μακεδονίας 12

Εντολή αλλαγής ροής εκτέλεσης υπό συνθήκη (J ) Οι εντολές J περιέχουν μετά το J, ένα ή δύο ή τρία γράμματα από τα παρακάτω. Τα γράμματα αυτά υλοποιούν τη συνθήκη κάτω από την οποία θα πραγματοποιηθεί η αλλαγή ροής εκτέλεσης (δηλαδή, το jump). A (above): μεγαλύτερο για μη προσημασμένους αριθμούς. B (bellow): μικρότερο για μη προσημασμένους αριθμούς. Ε (equal): ίσο. Ν (not): όχι, σε συνδυασμό πάντα με ένα από τα προηγούμενα γράμματα. G (greater): μεγαλύτερο για προσημασμένους αριθμούς. L (lower): μικρότερο για προσημασμένους αριθμούς. P (parity): ισοτιμία, δηλαδή P=1 Z (zero): μηδενικό αποτέλεσμα, δηλαδή Z=1. C (carry): κρατούμενο, δηλαδή C=1 O (overflow): υπερχείλιση, δηλαδή OV=1 S (sign): αρνητικό πρόσημο, δηλαδή S=1 Πανεπιστήμιο Δυτικής Μακεδονίας 13

Σημασία εντολών J Αρχικά επιλέγεται αν θα χρησιμοποιήσουμε εντολές για προσημασμένους αριθμούς ή μη προσημασμένους (στις περισσότερες φορές εμείς θα χρησιμοποιήσουμε μη προσημασμένους αριθμούς). Για μη προσημασμένους αριθμούς, δημιουργούμε την εντολή J επιλέγοντας ένα ή περισσότερα από τα γράμματα (E B A N). π.χ. αν επιλεχθούν τα NAE, τότε δημιουργείται το JNAE, δηλαδή η αλλαγή ροής εκτέλεσης αν ΔΕΝ (N) ισχύει να είναι μεγαλύτερο (A) ή ίσο (E). Ομοίως για προσημασμένους, δημιουργούμε την εντολή J επιλέγοντας ένα ή περισσότερα από τα γράμματα (E G L N). Σε ειδικές περιπτώσεις, δημιουργούμε την εντολή J επιλέγοντας ένα ή περισσότερα από τα γράμματα (N C O S Z). Πανεπιστήμιο Δυτικής Μακεδονίας 14

Εντολές J για αλλαγή ροής εκτέλεσης υπό συνθήκη (1/2) Πανεπιστήμιο Δυτικής Μακεδονίας 15

Εντολές J για αλλαγή ροής εκτέλεσης υπό συνθήκη (2/2) Πανεπιστήμιο Δυτικής Μακεδονίας 16

Αν ο AL είναι μικρότερος από 10 να εκτελείται το τμήμα κώδικα [ΑΑΑ] ενώ διαφορετικά να εκτελείται το τμήμα κώδικα [ΒΒΒ]. cmp AL,5 ;σύγκρινε AL με 5 JB partaaa ;αν AL<5 (jump if bellow) εκτέλεσε partaaa PartBBB ;εδώ εντολές partbbb. Δεν απαιτείται jump jmp telos ;ΠΡΟΣΟΧΗ: jmp telos για να μην εκτελεστεί και το partaaa PartAAA: ;ετικέτα μνήμης PartAAA partaaa telos: Παραδείγματα (1) ;εδώ εντολές partaaa ;ετικέτα μνήμης telos Πανεπιστήμιο Δυτικής Μακεδονίας 17

Παραδείγματα (2) Αν ο AL είναι μεγαλύτερος ή ίσος από 10 να πάμε μερικές γραμμές πίσω. againinput: ;ετικέτα μνήμης againinput. [..π.χ. Είσοδος ξανά του AL] cmp AL,10 ;σύγκρινέ το AL με το 10. jae againinput ;αν μεγαλύτερος ή ίσος (jump above-equal) πήγαινε πίσω στο againinput. Πανεπιστήμιο Δυτικής Μακεδονίας 18

Βρόχος επανάληψης για 5 φορές Να επαναληφθεί το τμήμα κώδικα AAAA 5 φορές Θεωρούμε έναν καταχωρητή ως μετρητή. Έστω CX mov cx,5 ;αρχική τιμή 5 στον CX startloop: AAAAA ;ετικέτα που αρχίζει το loop ;κώδικας που θα επαναληφθεί 5 φορές. sub cx,1 ;μείωσε του CX κατά 1. cmp cx,0 ;σύγκριση του cx με το 0. jne startloop ;αν δεν είναι cx=0 (jump not equal) τότε πήγαινε startloop ;σε διαφορετική περίπτωση έχουμε κάνει 5 επαναλήψεις. Πανεπιστήμιο Δυτικής Μακεδονίας 19

Τέλος Ενότητας Πανεπιστήμιο Δυτικής Μακεδονίας 20