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

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

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

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

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

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

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

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

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

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

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

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

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

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

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

Οδηγός Εκμάθησης στην Assembly

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

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

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

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

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 3 Έλεγχος Ροής Προγράμματος

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

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

Ο 8086 µπορεί να θεωρηθεί ότι αποτελείται από δύο τµήµατα επεξεργαστές, όπως φαίνεται και στο σχήµα 1, οι οποίοι είναι:

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

Κεφάλαιο 2 Η έννοια και η παράσταση της πληροφορίας στον ΗΥ. Εφ. Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος 1

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

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

Αριθμητική Υπολογιστών (Κεφάλαιο 3)

Chapter 3 Αριθμητική Υπολογιστών

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

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

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 2 Addressing

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 11 ο και 12 ο

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

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

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

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

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

Υποπρογράμματα (Subroutines)

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

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ

Ελίνα Μακρή

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ο 8086 µπορεί να θεωρηθεί ότι αποτελείται από δύο τµήµατα επεξεργαστές, όπως φαίνεται και στο σχήµα 1, οι οποίοι είναι:

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΙΙ Εργαστήριο 2 ο ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ- ΨΕΥΔΟΕΝΤΟΛΕΣ ΜΑΚΡΟΕΝΤΟΛΕΣ- ΔΙΑΔΙΚΑΣΙΕΣ (ΕΙΣΑΓΩΓΗ)

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

Παραδείγματα Assembly Μέρος Γ

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ

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

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

0100: MAR ADR; wait;mdr DB; SCR L DH+MDR+CY

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

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

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

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

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

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

ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΦΕΒ 2014 Καθηγητής: Νικολαΐδης Νικ. Ημ/νία εξέτασης:

Επιμέλεια: ρ. Ν. Σγούρος ρ. Ι. Κονταξάκης

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Αριθμητικά Συστήματα

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

Transcript:

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

Καταχωρητές καταχωρητές γενικής φύσης καταχωρητές δείκτες καταχωρητές αναφοράς καταχωρητές τµηµάτων ειδικοί καταχωρητές

Καταχωρητές γενικής φύσης 16 bit ax, bx, cd, dx κάθε ένας χωρίζεται σε δύο καταχωρητές των 8bit (high και low τµήµατα) και συµβολίζονται µε ταγράµµατα h kai l, π.χ. ax -> al, ah ο καταχωρητής ax ονοµάζεται συσσωρευτής, οι πράξεις πολλαπλασιασµόυ και διαίρεσης πρέπει να γίνονται πάντοτε µε τελούµενα που βρίσκονται στον ax

Καταχωρητές δείκτες χρησιµοποιούνται για δεικτοδότηση στη µνήµη sp (stack pointer) δεικτοδότηση της στοίβας ενηµερώνεται αυτόµατα από τον 8086 όταν εκτελούνται εντολές push και pop απευθείας προσπέλαση του επιτρέπεται αλλά δε συνίσταται bp (base pointer) δεν χρησιµοποιείται για συγκεκριµένη λειτουργία συνήθως χρησιµοποιείται στους µεταγλωττιστές για τη δεικτοδότηση της στοίβας εκτέλεσης (όπου τοποθετούνται εγγραφήµατα δραστηριοποίησης)

Καταχωρητές αναφοράς χρησιµοποιούνται για αναφορά στη µνήµη δε διαφέρουν από τους καταχωρητές γενικού σκοπού αλλά συνήθως χρησιµοποιούνται για τον υπολογισµό της απόκλισης (offset) si: source index di: destination index

Καταχωρητές τµηµάτων χρησιµοποιούνται για τη δεικτοδότηση τµηµάτων µνήµης address = segment * 16 + offset π.χ.: 54FA:0003, 53F0:00A3, 5000:4FA3 cs: code segment η φυσική διεύθυνση της επόµενης εντολής που θα εκτελεστεί δίνεται από το ζευγάρι cs:ip ds: data segment περιέχει τα δεδοµένα του προγράµµατος προσπέλαση µέσω σταθερής απόκλισης, καταχωρητών αναφοράς (si, di) και καταχωρητών γενικής φύσης αναφέρεται σε αυτό το τµήµα

Καταχωρητές τµηµάτων χρησιµοποιούνται για τη δεικτοδότηση τµηµάτων µνήµης address = segment * 16 + offset π.χ.: 54FA:0003, 53F0:00A3, 5000:4FA3 ss: stack segment το τµήµα της µνήµης που βρίσκεται η στοίβα προσπέλαση µέσω των καταχωρητών δεικτών (sp,bp) αναφέρονται σε αυτό το τµήµ es: extra segment γενικού σκοπού καταχωρητής τµηµάτων µπορεί να χρησιµοποιηθεί για τη δεικτοδότηση οποιυδήποτε τµήµατος

Ειδικοί καταχωρητές zf: zero flag ητιµή τουείναι1 αν το αποτέλεσµα της τελευταίας πράξης είναι µηδενικό, διαφορετικά είναι 0 cf: carry flag ητιµή τουείναι1 αν η τελευταία πράξη είχε κρατούµενο, διαφορετικά είναι 0 of: overflow flag ητιµή τουείναι1 αν η τελευταία αριθµητική πράξη δηµιούργησε υπερχείλιση, διαφορετικά είναι 0 sf: sign flag ητιµή τουείναι1 αν το αποτέλεσµα της τελευταίας πράξης είναι αρνητικός αριθµός, διαφορετικά είναι 0

Εντολές µεταφοράς mov destination, source απευθείας έµµεση µέσω καταχωρητή βάσης µέσω καταχωρητή βάσης και αναφοράς mov ax,[1000h] mov ax, [si] mov ax,[bp+6] mov ax,[bp+si+6] οι τελεστές word ptr (16bit) και byte ptr (8bit) µπορούν να καθορίσουν το µήκος των δεδοµένων που θα µεταφερθούν, π.χ. mov ax, word ptr [bp+4] mov word ptr [si+4],ax

Εντολές µεταφοράς lea destination, source load effective address µεταφέρει στον προορισµό αντίγιατοπεριεχόµενο της πηγής, τη διεύθυνση αυτής η πηγή είναι υποχρεωτικά αναφορά στη µνήµη π.χ. lea ax, word ptr [bp+6]

Ακέραιες αριθµητικές πράξεις add operand1, operand2 το αποτέλεσµα τοποθετείται στο πρώτο τελούµενο sub operand1, operand2 το αποτέλεσµα τοποθετείται στο πρώτο τελούµενο neg operand το αποτέλεσµα αντικαθιστά το τελούµενο cmp operand1,operand2 ενηµερώνεται ο καταχωρητής σηµαιών χρησιµοποιείται στα άλµατα υπό συνθήκη

Ακέραιες αριθµητικές πράξεις imul operand πολλαπλασιάζει τα τελούµενα του συσσωρευτή ax µε το δοθέν τελούµενο, το αποτέλεσµα (32bits) τοποθετείται στους καταχωρητές ax και dx o ax περιέχει τα 16 λιγότερο σηµαντικά ψηφία idiv operand ως διαιρεταίος χρησιµοποιούνται τα περιχόεµενα των ax και dx o ax περιέχει τα 16 λιγότερο σηµαντικά ψηφία διαιρέτης είναι το δοθέν τελούµενο το πηλίκο τοποθετείται στον ax το υπόλοιπο στον dx

Λογικές πράξεις and operand1, operand2 λογική σύζευξη or operand1, operand2 λογική διάζευξη xor operand1, operand2 αποκλειστική διάζευξη not operand λογική άρνηση γίνονται οι πράξεις ανάµεσα στα τελούµενα το αποτέλεσµα µεταφέρεται στο πρώτο τελούµενο

Εντολή άλµατος jmp address address: συνήθως µία ετικέτα µεταφέρει τη ροή του προγράµµατος στην εντολή µε την παραπάνω ετικέτα

Άλµατα υπό συνθήκη ελέγχονται τα περιεχόµενα του καταχωρητή σηµαιών και ανάλογα γίνεται ή όχι κάποιο άλµα jz ή je jump equal jnz ή jne jump not equal jl jump less jle jump less or equal jg jump greater jge jump greater or equal

Άλµατα υπό συνθήκη η διεύθυνση στην οποία κετευθύνεται το άλµα πρέπει να βρίσκεται µεταξύ -128 και +127 bytes από την τρέχουσα τιµήτουip αν αυτό δεν είναι δυνατόν χρησιµοποιούµε µία εντολή άλµατος χωρίς συνθήκη η οποία και µεταφέρει τον έλεγχο εκεί που επιθυµούµε jnz nojump jz address --> jmp address nojump: xxx

Εντολές διαχείρισης της στοίβας η βάση της στοίβας δεικτοδοτείται από το ζεύγος ss:sp push operand µειώνει τον καταχωρητή στοίβας κατά 2 τοποθετεί το τελούµενο στη βάση της στοίβας εφαρµόζεται σε τελούµενα των 16 bit το operand είναι καταχωρητής pop operand αυξάνει τον καταχωρητή στοίβας κατά 2 τοποθετεί τα περιεχόµενα της βάσης της στοίβας στο τελούµενο εφαρµόζεται σε τελούµενα των 16 bit το operand είναι καταχωρητής

Εντολές υπορπογραµµάτων call address τοποθετεί τη διεύθυνση της επόµενης εντολής (της τιµής του ip δηλαδή) στη στοίβα µεταφέρει τον έλεγχο στη διεύθυνση που δίνεται ret ανακαλεί από τη στοίβα τη διεύθυνση την τοποθετεί στον ip

Αριθµοί κινητής υποδιαστολής διπλή εκτεταµένη ακρίβεια (10bytes) απλής (4bytes) και διπλής ακρίβειας (8bytes) µετατρέπονται σε αριθµούςδιπλήςεκτεταµένης ακρίβειας (10bytes) οι καταχωρητές είναι διαρθωµένοι σε στοίβα και είναι 8 προσπέλαση σε αυτούς γίνεται όπως γίνεται η προσπέλαση των δεδοµένων που βρίσκονται σε µία στοίβα στην βάση της στοίβας βρίσκεται ο ST(0) µετά ο ST(1) κ.ο.κ για να τοποθετηθεί ένας αριθµός 10 bytes σε ένα καταχωρητή πρέπει να βρίσκεται στη µνήµη

Εντολές µεταφοράς αριθµών κινητής υποδιαστολής fld: φόρτωση από τη µνήµη αριθµού κινητής υποδιαστολής στη στοίβα των καταχωρητών fld: µετατροπή και φόρτωση από τη µνήµη ακεραίου αριθµού στοίβα των καταχωρητών fstp: αφαίρεση αριθµού κινητής υποδιαστολής από τη στοίβα των καταχωρητών και αποθήκευσή του στη µνήµη fistp: αφαίρεση αριθµού κινητής υποδιαστολής από τη στοίβα των καταχωρητών, µετατροπή του σε ακέραιο και αποθήκευσή του στη µνήµη

Πράξεις αριθµών κινητής υποδιαστολής faddp fsubp fmulp fdivp π.χ. faddp ST(1), ST(0) προσθέτει τις τιµές των καταχωρητών ST(1) και ST(0), τοποθετεί το αποτέλεσµα στονst(1) και αφαιρεί από τη στοίβα τα περιεχόµενα του ST(0). µετά τηνεκτέλεση το άθροισµα βρίσκεται στη θέση ST(0)

Πράξεις αριθµών κινητής υποδιαστολής fchs αντιστροφή προσήµου του ST(0) fcompp σύγκριση των τιµών των ST(0) και ST(1) ενηµέρωση του καταχωρητή σηµαιών αφαίρεση των δύο τιµών από τη στοίβα fstsw µεταφέρει τα περιεχόµενα το καταχωρητή σηµαιών στον ax