Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... ·...

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

Transcript of Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... ·...

Page 1: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Αρχιτεκτονική-Ι

Ενότητα 4: Το Προγραμματιστικό Μοντέλο του 8086

Ιωάννης Έλληνας

Τμήμα Η/ΥΣ

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

Page 2: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Άδειες Χρήσης

• Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

• Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

2

Page 3: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Χρηματοδότηση • Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια

του εκπαιδευτικού έργου του διδάσκοντα.

• Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού.

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

3

Page 4: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Σκοποί ενότητας

• Στην ενότητα αυτή εξετάζεται το

προγραμματιστικό μοντέλο του

μικροεπεξεργαστή 8086 της Intel, η

εσωτερική του αρχιτεκτονική και οι βασικές

λειτουργίες του επεξεργαστή.

4

Page 5: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Περιεχόμενα ενότητας

• Επεξεργαστής 8086 • Οργάνωση συστήματος • Τι είναι η διεύθυνση • Πρόσβαση στη μνήμη • Οργάνωση μνήμης • Διαχείριση μνήμης • Κατάτμηση μνήμης • Διευθυνσιοδότηση • Τι είναι ο σωρός • Λογική και Φυσική Διεύθυνση • Υπολογισμός Φυσικής

Διεύθυνσης • Παραδείγματα

• Εσωτερική οργάνωση • Εσωτερική οργάνωση του

8086 • Λειτουργία καταχωρητών

τμημάτων • Μονάδα εκτέλεσης • Καταχωρητής σημαιών • Λειτουργίες CPU • Παράδειγμα • Ερωτήσεις & Απαντήσεις

5

Page 6: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Ο Επεξεργαστής 8086

6

Page 7: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

8086 Επεξεργαστής των 16 bits/ 2 bytes (Ρ1) (1)

Χαρακτηριστικά

• Εμφάνιση το 1978.

• Τροφοδοσία 5V.

• Ρολόϊ έως 4÷10 MHz.

• Data bus 16 bits/2 bytes.

• Address bus 20 bits. Μνήμη μέχρι 1 ΜΒ. Μνήμη άρτιων και περιττών διευθύνσεων (2 Χ 512 ΚΒ). Χρόνος προσπέλασης λέξης (2 bytes) σε ένα κύκλο μνήμης (μηχανής) εφ’ όσον η λέξη είναι σε άρτια διεύθυνση ή σε δυο κύκλους εφ’ όσον είναι σε περιττή διεύθυνση (ελάττωση της ταχύτητας).

• Κύκλος διαδρόμου (bus cycle) ίσος με 4 περιόδους ρολογιού.

• Ταχύτητα διαμεταγωγής (10ΜΗz/4)X2=5MB/s (40 Mbps).

7

8086

DIP-40 pins

Page 8: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Χαρακτηριστικά

• Μέσος χρόνος εκτέλεσης εντολής 12 Τ.

• Κατάτμηση μνήμης.

• Χρήση 640 ΚΒ για προγράμματα. Δέσμευση των 384 ΚΒ για το BIOS.

• 6-byte ουρά εντολών (instruction queue), που γεμίζει όταν ο επεξεργαστής εκτελεί άεργους κύκλους (idle) και υπάρχει χώρος 2 bytes στην ουρά.

• Τεχνική σωλήνωσης (pipelining-επικάλυψη χρόνου ανάκλησης και εκτέλεσης των εντολών).

• Binary/Decimal arithmetic με 8-bit ή 16-bit signed/unsigned αριθμούς (πολλ/σμός και διαίρεση).

• Ολοκληρωμένο 40 pins σε συσκευασία DIP (Dual In Package).

8

8086

DIP-40 pins

8086 Επεξεργαστής των 16 bits/ 2 bytes (Ρ1) (1)

Page 9: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

8086 Ακροδέκτες (1) Πολυπλεγμένες γραμμές διεύθυνσης/δεδομένων

(Time multiplexed address/data lines)

Αποπλέκονται με τη βοήθεια του σήματος ελέγχου ALE

στην πρώτη περίοδο Τ1.

Κατά την Τ1 φέρουν διεύθυνση.

Κατά τις Τ2, Τ3, Τ4 φέρουν δεδομένα.

Non Maskable Interrupt (ΙΝΤ 2) : Οδηγεί το πρόγραμμα

στις θέσεις 00008÷0000Β Η, όπου πρέπει να ευρίσκονται

οι τιμές του CS και του IP για οδήγηση του

προγράμματος στην κατάλληλη ΥΕΔ.

Maskable Interrupt (σημαία ΙΕ=1) : Δίδεται ένα byte n

κατά τη διάρκεια του σήματος /INTA και οδηγεί το

πρόγραμμα στις θέσεις 4×n÷4×n+3 Η, όπου πρέπει να

ευρίσκονται οι τιμές του CS και του IP για οδήγηση του

προγράμματος στην κατάλληλη ΥΕΔ.

9

8086

GND

AD14

AD13

AD12

AD11

AD10

AD9

AD8

AD7

AD6

AD5

AD4

AD3

AD2

AD1

AD0

NMI

INTR

CLK

GND

Page 10: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

8086 Ακροδέκτες (2)

• Κατά τη διάρκεια του Τ1 είναι διευθύνσεις, ενώ κατά τη διάρκεια των Τ2, Τ3, Τ4 είναι δείκτες κατάστασης (status indicators).

• Το BHE (Bus High Enable) γίνεται latch με το σήμα ALE και χρησιμοποιείται με το Α0 για να καθορίσουν τον τρόπο πρόσβασης στη μνήμη.

• min mode: ο 8086 χρειάζεται ένα latch και ένα κύκλωμα ρολογιού για να γίνει cpu με δίαυλο ελέγχου όμοιο με τον 8085.

• max mode: ο 8086 συνεργάζεται με το μαθηματικό συνεπεξεργαστή 8087 και τον περιφερειακό επεξεργαστή Ι/Ο 8089 καθώς επίσης και με το 8288 (bus controller), το οποίο δημιουργεί τα σήματα ελέγχου για μνήμες και πόρτες.

10

Page 11: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

8086 Ακροδέκτες (3)

11

Εισάγεται περίοδος αναμονής εάν η είσοδος αυτή είναι high κατά την εκτέλεση της εντολής WAIT.

Επανεκκίνηση και μετάβαση του προγράμματος στη διεύθυνση FFFF0 H.

Συγχρονίζει τον 8086 με αργά περιφερειακά. Εισάγει περίοδο αναμονής εάν κατά την Τ2 ευρεθεί low.

8086

Vcc

AD15

A16/S3

A17/S4

A18/S5

A19/S6

BHE/S7

MN/MX

RD

MN/MX=1 MN/MX=0

HOLD RQ/GT0

HLDA RQ/GT1

WR LOCK

M/IO S2

DT/R S1

DEN S0

ALE QS0

INTA QS1

TEST

READY

RESET

Page 12: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Οργάνωση συστήματος Διάδρομοι (Buses)

Διάδρομος διευθύνσεων: Ομάδα γραμμών μέσω των οποίων ο μΕ δίνει τη διεύθυνση των γραμμών που θα μετακινηθεί στην μνήμη ή στην πόρτα.

• 8086 : 20 bit – εύρος διαδρόμου διευθύνσεων 220=1048576 bytes ή 1

ΜΒ

Διάδρομος δεδομένων: Ομάδα γραμμών μέσω των οποίων διακινούνται τα δεδομένα μεταξύ του μΕ και των περιφερειακών συσκευών

• 8086 : 16 bit – εύρος διαδρόμου δεδομένων

Διάδρομος ελέγχου: Ομάδα γραμμών μέσω των οποίων εξασφαλίζεται ο

συγχρονισμός των διαφόρων λειτουργιών του μικροϋπολογιστικού συστήματος

12

Page 13: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Τι είναι η διεύθυνση;

13

• Η μνήμη ενός μικροϋπολογιστικού συστήματος χωρίζεται σε μικρά τμήματα του ενός byte

• Κάθε byte έχει μια ξεχωριστή ταυτότητα που ονομάζεται διεύθυνση

• Οι διευθύνσεις είναι αριθμητικές τιμές μήκους σε bit όσο το address bus (δίαυλος διευθύνσεων)

Page 14: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Πρόσβαση στη μνήμη

14

• Για να έχουμε πρόσβαση σε ένα ή περισσότερα bytes, πρέπει να γνωρίζουμε τις διευθύνσεις τους στο χάρτη μνήμης

• Στον 80x86 τηρείται η Little Endian μορφή αποθήκευσης δεδομένων. Τα χαμηλά bytes αποθηκεύονται σε χαμηλές (αριθμητικά) διευθύνσεις.

Page 15: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Οργάνωση μνήμης (1)

15

Page 16: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Οργάνωση μνήμης (2) • 8086: Ο πρώτος επεξεργαστής που δεν θεωρεί τη μνήμη σαν

ένα ενιαίο σύνολο! (γραμμική διευθυνσιοδότηση) γιατί?

• Κατάτμηση μνήμης: Κάθε στιγμή υπάρχουν 4 ενεργά τμήματα μνήμης, τα τμήματα: κώδικα (CS), σωρού (SS), 2 τμήματα δεδομένων (DS – ES)

• Μέγιστη χωρητικότητα τμήματος: 64 Kbytes

• Καταχωρητές τμημάτων (16-bit): Ένας καταχωρητής ορίζει την αρχή κάθε τμήματος και δίνει την αρχική φυσική διεύθυνση κάθε τμήματος (CS, DS, ES, SS)

16

Page 17: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Οργάνωση μνήμης (3)

• Γενικοί καταχωρητές (16-bit): Καταχωρητές γενικής χρήσης (AX, BX, CX, DX, BP, IP, SP, SI, DI)

• Λογική διεύθυνση (16-bit): Η διεύθυνση μέσα στον επεξεργαστή. Ορίζεται:

• από έναν καταχωρητή τμήματος και ένα γενικό καταχωρητή

• π.χ. (τμήμα κώδικα : καταχωρητή προγράμματος) ή (CS:IP)

17

Page 18: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Διαχείριση μνήμης στον 8086

Ο 80x86 είναι επεξεργαστής των 16bits με address bus μήκους 20bits – Διευθυνσιοδοτεί 1Mbyte μνήμης (220bytes)

Πρόβλημα

Ο καταχωρητής διεύθυνσης επόμενης εντολής (IP) έχει μήκος 16bits και δεν μπορεί να δει ολόκληρη τη μνήμη που προσφέρει το address bus

Λύση

– Η μνήμη διασπάται σε πολλαπλά λογικά τμήματα (segments) των

64kBytes

– Κάθε τμήμα μπορεί να ξεκινά (βάση τμήματος) ανά 16 θέσεις στη

φυσική διεύθυνση της μνήμης (20bit) και να επιτρέπει στον

επεξεργαστή να δει τις επόμενες 64k θέσεις που ακολουθούν

18

Page 19: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Κατάτμηση μνήμης

• Μετατοπίσεις μέσα στο τμήμα ή offset

• CS=A308 h – DS=2000 h – ES= C10A h – SS=C90A h

19

Page 20: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Διευθυνσιοδότηση μνήμης – μετατόπιση

Σωστό MOV AX,[BX] ή [SI] ή [BP] ή [DI]

Σωστό MOV AX, [BX+SI] ή [BP+DI] ή [BX+DI] ή [BP+SI]

Σωστό MOV AX, [BX+SI+128] ή [BP+DI-3] ή [BX+DI+7]

Λάθος MOV [BX+BP],AX ή MOV AX,[SI+DI] ή MOV AX, [DX] ή [CX]

20

BX

BP

SI

DI

disp

8 ή 16 bit

Page 21: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Τι είναι ο σωρός

• Περιοχή μνήμης για προσωρινή αποθήκευση δεδομένων. Το τμήμα σωρού δημιουργείται με τη βοήθεια του SS και έχει σαν δείκτη τον SP

• Λειτουργεί προς μικρότερες διευθύνσεις γι’ αυτό συνήθως θέτουμε SP=0000h

• Λειτουργεί με τις εντολές: PUSH, POP, CALL, RET, INT, IRET

• Δείκτης στο σωρό μπορεί να είναι ο καταχωρητής BP

π.χ.

AX=1234 h, SP=0000 h και εκτελείται η: PUSH AX

21

CS

SP-1

Offset FFFF h 12 h 34 h

AH AL

0000 h SP

SP-2=FFFE h SP-1=FFFF h

34 h 12 h

Page 22: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Λογική σε Φυσική διεύθυνση

22

Page 23: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Υπολογισμός φυσικής διεύθυνσης

23

IP=5678h

CS=1234h

05678h 12340h

179B8h

5678h 1234h

Page 24: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Παραδείγματα

24

MOV AX,[1A5E0h];

Page 25: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

8086 Εσωτερική οργάνωση (1)

25

DATA POINTER &

INDEX REGS

(8 WORDS)

SEGMENT REGS &

INSTRUCTION POINTER

(5 WORDS)

16 BIT ALU

FLAGS

BUS

INTERFASCE

UNIT

6-BYTE

INSTRUCTION

QUEUE

CONTROL & TIMING

EXECUTION UNIT (EU) BUS INTERFACE UNIT (BIU)

4

16

3

3

2 2

3

REGISTER FILE RELOCATION

REGISTER FILE

/TEST

INTR NMI

/RG-/GT0,1

HOLD HLDA

CLK RESET READY MN-/MX GND, GND, VCC

/LOCK

QS0, QS1

/S2, /S1, /S0

/BHE or S7

A16-A19 or S3-S6

AD0-AD15

/INTA, /RD, /WR

DT-/R, /DEN, ALE

Διάδρομοι και εσωτερικοί καταχωρητές των 16 bits

Address Bus=20 bits

Data Bus=16 bits

Ουρά εντολών βάθους 6 bytes

Page 26: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

8086 Εσωτερική οργάνωση (2)

Προσαρμογή Μνήμης

26

ES 16 CS 16 SS 16 DS 16 IP 16

SP 16 BP SI DI

DH DL CH CL BH BL

AH 8 AL 8

6 5 4 3 2 1

ΣΥΣΤΗΜΑ ΕΛΕΓΧΟΥ

ΟΡΙΣΜΑΤΑ (OPERANDS)

ΣΗΜΑΙΕΣ (FLAGS)

Σ

EU

BIU

A-BUS

C-BUS

B-BUS

6-BYTES

ΟΥΡΑ ΡΟΗΣ

ΕΝΤΟΛΩΝ

ALU

Page 27: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Εσωτερική οργάνωση του 8086

27

Page 28: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Λειτουργία καταχωρητών τμημάτων

28

Page 29: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Μονάδα εκτέλεσης (EU)

29

Page 30: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Καταχωρητής σημαιών

30

Page 31: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Σημασία του καταχωρητή σημαιών (1)

Zero Flag – Γίνεται 1 όταν το αποτέλεσμα μιας αριθμητικής ή λογικής πράξης είναι μηδέν.

mov al,01h

dec al ; al=0, ZF=1

mov al,0h ; al=00h

or al,0ffh ; al=FFh, ZF=0

xor al,0ffh ; al=00h, ZF=

31

Page 32: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Σημασία του καταχωρητή σημαιών (2)

Carry Flag – Γίνεται 1 όταν υπάρχει κρατούμενο από πρόσθεση ή δανεικό από αφαίρεση (υπερχείλιση του καταχωρητή)

mov ax,0ffffh ;al=FFFFh

add ax,1 ;ax=ax+1 ax=0000h, CF=1

clc ;CF=0 – clear carry flag

mov al,2

mov bl,3

sub al,bl ;al=2-3=0000 0010+1111 1101=1111 1111 (-1) CF=1, SF=1

32

Page 33: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Σημασία του καταχωρητή σημαιών (3)

Sign Flag – Γίνεται 1 ή 0 όταν το σημαντικότερο bit του αποτελέσματος είναι 1 ή 0 mov al,7fh add al,01h ; al=80h (1000 0000), SF=1, OF=1 Overflow Flag – Γίνεται 1 όταν υπάρχει υπερχείλιση των 7 λιγότερο σημαντικών bits και προκύπτει αριθμός με αντίθετο πρόσημο (π.χ. από την πρόσθεση 2 θετικών προκύπτει αρνητικός ή από την πρόσθεση 2 αρνητικών προκύπτει θετικός) mov al,7fh mov bl,3

add al,bl ;al=0111 1111+0000 0011=1000 0010 CF=0, SF=1, OF=1 mov al,0ffh mov bl,80h

add al,bl ;al=1111 1111+1000 0000=0111 1111 CF=1, SF=0, OF=1

33

Page 34: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Σημασία του καταχωρητή σημαιών (4)

Parity Flag – Γίνεται 1 όταν στο αποτέλεσμα υπάρχει άρτιος αριθμός μονάδων (άρτια ισοτιμία) και 0 όταν υπάρχει περιττός αριθμός μονάδων (περιττή ισοτιμία)

mov al,7fh

add al,01h ; al=80h (1000 0000), PF=0

Auxiliary Flag – Γίνεται 1 όταν υπάρχει κρατούμενο στα 4 λιγότερο σημαντικά bits

mov al,7fh

mov bl,01

add al,bl ;al=0111 1111+0000 0001=1000 0000 CF=0, SF=1, OF=1, AF=1

Direction Flag – Χρησιμοποιείται με τις εντολής διαχείρισης συμβολοσειρών (movsb/movsw, κλπ)

Γίνεται 0 με την εντολή CLD και σημαίνει αύξουσες διευθύνσεις ή γίνεται 1 με την εντολή STD και σημαίνει φθίνουσες διευθύνσεις.

34

Page 35: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Να θυμόμαστε το εσωτερικό του 8086 !

35

Page 36: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Λειτουργίες CPU

ΣΗΜΕΙΩΣΗ: Κύκλος μηχανής είναι ο χρόνος που παίρνει την CPU για να εκτελέσει μια από τις προαναφερθείσες λειτουργίες, οι οποίες αφορούν την επικοινωνία της με ένα εξωτερικό περιφερειακό (μνήμη ή πόρτα). Η εσωτερική λειτουργία της CPU (π.χ. η τοποθέτηση ενός δεδομένου σε κάποιον καταχωρητή, η πρόσθεση κλπ) δεν συνιστά κύκλο μηχανής.

36

Κύκλος εντολής = Χρόνος εκτέλεσης μιας εντολής

Κύκλος μηχανής = Χρόνος εκτέλεσης μιας λειτουργίας της CPU

Κατάσταση (State) = Μια περίοδος ρολογιού

Κύκλος μηχανής Ανάκληση εντολής (Fetch)

Ανάγνωση δεδομένων από μνήμη (Read Memory)

Εγγραφή δεδομένων σε μνήμη (Write Memory)

Ανάγνωση δεδομένων από πόρτα (Read I/O)

Εγγραφή δεδομένων σε πόρτα (Write I/O)

4T

4T

4T

4T

4T

Page 37: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Παράδειγμα

37

A3 MOV [1000h],AX 00 10

Page 38: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Ερωτήσεις και Απαντήσεις

38

Page 39: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Βιβλιογραφία

1. “ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ-Ο επεξεργαστής 8086”, Ι. Ν. Έλληνας, Π. Δ. Κεντερλής, ISBN: 978-960-930663-8, Αθήνα 2008.

2. Γ. Δ. Κόγιας, “Αρχιτεκτονική, Οργάνωση και Προγραμματισμός μικροϋπολογιστών”, Σύγχρονη Εκδοτική.

3. Κ. Ζ. Πεκμεστζή, “Συστήματα μικροϋπολογιστών”, Εκδόσεις Συμμετρία.

39

Page 40: Αρχιτεκτονική Ιeclass.teipir.gr/openeclass/modules/document/file.php... · 2015-03-03 · σημαντικών bits και προκύπτει αριθμός με αντίθετο

Τέλος Ενότητας