«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ 8085
ΧΟΝΔΡΙΚΟ ΔΙΑΓΡΑΜΜΑ 8085 CPU ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΤΟΥ 8085 Ο ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗΣ ΕΝΤΟΛΩΝ Η ΑΡΙΘΜΗΤΙΚΗ ΚΑΙ ΛΟΓΙΚΗ ΜΟΝΑΔΑ ΟΙ «ΣΗΜΑΙΕΣ» FLAGS Η ΜΟΝΑΔΑ ΧΡΟΝΙΣΜΟΥ ΚΑΙ ΕΛΕΓΧΟΥ TO ΥΠΟΣΥΣΤΗΜΑ ΔΙΑΚΟΠΩΝ ΣΕΙΡΙΑΚΗ ΕΙΣΟΔΟΣ / ΕΞΟΔΟΣ
ΧΟΝΔΡΙΚΟ ΔΙΑΓΡΑΜΜΑ (BLOCK DIAGRAM) 8085 CPU
ΛΕΠΤΟΜΕΡΕΣ ΔΙΑΓΡΑΜΜΑ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ 8085 INTR INTA RST 6.5 TRAP RST 5.5 RST 7.5 SID SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
ΚΑΤΑΧΩΡΗΤΕΣ (REGISTERS)
ΚΑΤΑΧΩΡΗΤΕΣ (REGISTERS) 8085 INTR INTA RST 6.5 TRAP RST 5.5 RST 7.5 SID SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
Ο ΣΥΣΣΩΡΕΥΤΗΣ ( ACCUMULATOR - A )
Συσσωρευτής (Accumulator) - Ο βασικότερος καταχωρητής της CPU - Εχει εύρος 8-bit - Αποθηκεύει έναν απο τους τελεστέους (operands) που επεξεργάζεται η ΑΛΜ (ALU) - Λειτουργεί και σαν πηγή (source) και σαν προορισμός (destination) INTA RST 6.5 TRAP - Εκεί αποθηκεύεται INTR το αποτέλεσμα RST 5.5 RST της 7.5 πράξης της ΑΛΜ πχ. MVI A,0FFH / LDA 2020H / STA 2030H / ADD B INTERRUPT CONTROL SID SOD SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
Η ΧΡΗΣΗ ΤΟΥ ΚΑΤΑΧΩΡΗΤΗ Α ΣΕ ΠΡΟΓΡΑΜΜΑ ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) START: ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) LXI H,2030H ;ορισμός του M (HL) ως δείκτης στην 2030H MVI A,0F1H ;μεταφορά του F1H στον καταχωρητή Α MOV M,A ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H και L LXI H,2031H ;ορισμός του M (HL) ως δείκτης στην 2031H MVI A,0A2H ;μεταφορά του A2H στον καταχωρητή Α MOV M, A ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H και L ADI 00H ;μηδενισμός του flag carry LDA 2030H ;μεταφορά στον Α του περιεχομένου θέσης μνήμης 2030H MVI B,84H ;μεταφορά του 84H στον καταχωρητή B ADD B ;A = A + B STA 2040H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2040H LDA 2031H ;μεταφορά στον Α του περιεχομένου θέσης μνήμης 2031H MVI B,12H ;μεταφορά του 12H στον καταχωρητή B ADC B ;A = A + B + C STA 2041H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2041H END ;δήλωση τέλους εντολών προγράμματος (ψευδοεντολή)
Προσωρινοί Καταχωρητές (Temporary Registers) - Εχει εύρος 8-bit - Αποθηκεύει έναν απο τους τελεστέους (operands) που επεξεργάζεται η ΑΛΜ (ALU) - Δεν είναι προσπελάσιμος στον προγραμματιστή INTA RST 6.5 TRAP INTR RST 5.5 RST 7.5 πχ. ADD Μ / ADC M / ADI FF SID SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
Η ΧΡΗΣΗ ΤΟΥ ΚΑΤΑΧΩΡΗΤΗ TEMP. ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) START: ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) LXI H,2030H ;ορισμός του M (HL) ως δείκτης στην 2030H MVI A,0F1H ;μεταφορά του F1H στον καταχωρητή Α MOV M,A ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H και L LXI H,2031H ;ορισμός του M (HL) ως δείκτης στην 2031H MVI A,0A2H ;μεταφορά του A2H στον καταχωρητή Α MOV M, A ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H και L ADI 00H ;μηδενισμός του flag carry LDA 2030H ;μεταφορά στον Α του περιεχομένου θέσης μνήμης 2030H MVI B,84H ;μεταφορά του 84H στον καταχωρητή B ADD B ;A = A + B STA 2040H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2040H LDA 2031H ;μεταφορά στον Α του περιεχομένου θέσης μνήμης 2031H MVI B,12H ;μεταφορά του 12H στον καταχωρητή B ADC B ;A = A + B + C STA 2041H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2041H END ;δήλωση τέλους εντολών προγράμματος (ψευδοεντολή)
Ο ΚΑΤΑΧΩΡΗΤΗΣ ΣΗΜΑΙΩΝ ( FLAG REGISTER) & ΟΙ ΣΗΜΑΙΕΣ (FLAGS)
Καταχωρητής Σημαιών (Flag Register) - Εχει εύρος 8-bit. Περιέχει πέντε (5) flags του 1- bit - Καταγράφει την κατάσταση της CPU και μπορεί να ελέγχει την κατάσταση INTR - Carry CY (κρατούμενο) D0 - Zero Flag Z (μηδενισμός) D6 - Auxiliary Carry Flag AC (βοηθητικό κρατούμενο) D4 INTA RST 6.5 TRAP - Sign Flag S (Πρόσημο) D7 RST 5.5 RST 7.5 SID - Parity Flag P (Ισοτιμία) D2 SOD INTERRUPT CONTROL SERIAL I/O CONTROL D7 D6 D5 D4 D3 D2 D1 D0 S Z AC P CY ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
Carry CY (κρατούμενο) D0 - Τίθεται και μηδενίζεται απο αριθμητικές πράξεις - Τίθεται (CY = 1) όταν η πρόσθεση στην ΑΛΜ παράγει αποτέλεσμα > 8-bit (υπερχείλιση Α) - Μηδενίζεται (CY = 0) όταν η πρόσθεση στην ΑΛΜ δεν προκαλεί υπερχείλιση του Α - Λειτουργεί σαν Borrow στην αφαίρεση - Επηρεάζεται απο την Σύγκριση αριθμών (Compare - CMP) - Τίθεται απο την STC / Αντιστρέφεται απο την CMC Auxiliary Carry AC (Βοηθητικό κρατούμενο) D4 - Λειτουργεί όπως το CY αλλα για τα τέσσερα χαμηλά bits (bit-3) - Δείχνει υπερχείλιση στο bit-3 (χαμηλό nibble) - Χρησιμοποιείται στην BCD αριθμητική Sign S (Πρόσημο) D7 - Λειτουργεί σε προσημασμένους αριθμούς (7 bit για τιμή & 1 bit για πρόσημο) - Επιτρέπει χρήση αριθμών απο -128 έως + 127 - Οταν S = 1 αρνητικός / S = 0 θετικός πχ. 1111 1111 = - 128, 0111 1111 = + 127 Zero Z (Μηδενισμός) D6 - Τίθεται (Ζ = 1) όταν παράγεται μηδενισμός (0000 0000) στον Α ή σε καταχωρητές - μετρητές - Αλλοιώς Ζ = 0 Parity P (Ισοτιμία) D2 - Τίθεται (Ρ = 1) όταν ο αριθμός των 1-bits του Α είναι άρτιος - Μηδενίζεται (Ρ = 0) όταν ο αριθμός των 1-bits του Α είναι περιττός D7 D6 D5 D4 D3 D2 D1 D0 S Z AC P CY
ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) START: ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) LXI H,2030H ;ορισμός του M (HL) ως δείκτης στην 2030H MVI A,0F1H ;μεταφορά του F1H στον καταχωρητή Α MOV M,A ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H και L LXI H,2031H ;ορισμός του M (HL) ως δείκτης στην 2031H MVI A,0A2H ;μεταφορά του A2H στον καταχωρητή Α MOV M, A ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H και L Ο ΜΗΔΕΝΙΣΜΟΣ ΤΟΥ CY (D0) ΣΤΟΝ ΚΑΤΑΧΩΡΗΤΗ FLAG ADI 00H ;μηδενισμός του flag carry LDA 2030H ;μεταφορά στον Α του περιεχομένου θέσης μνήμης 2030H MVI B,84H ;μεταφορά του 84H στον καταχωρητή B ADD B ;A = A + B STA 2040H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2040H LDA 2031H ;μεταφορά στον Α του περιεχομένου θέσης μνήμης 2031H MVI B,12H ;μεταφορά του 12H στον καταχωρητή B Η ΧΡΗΣΗ ΤΟΥ CY (D0) ΣΤΗΝ ΠΡΟΣΘΕΣΗ ADC B ;A = A + B + C STA 2041H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2041H END ;δήλωση τέλους εντολών προγράμματος (ψευδοεντολή)
ΆΛΛΕΣ ΕΝΤΟΛΕΣ ΠΟΥ ΑΦΟΡΟΥΝ ΤΙΣ ΣΗΜΑΙΕΣ CMC: complement carry (αντέστρεψε το κρατούμενο) STC: set carry (θεσε το κρατούμενο) CY = 1 JC : jump on carry CY=1 (διακλάδωσε αν το κρατούμενο είναι 1) JNC: jump on carry CY=0 (διακλάδωσε αν το κρατούμενο είναι 0) JZ : jump on zero Z=1 (διακλάδωσε αν συνέβη μηδενισμός ή ισότητα) JNZ : jump on zero Z=0 (διακλάδωσε αν ΔΕΝ συνέβη μηδενισμός ή ισότητα).
ΑΛΛΟΙ ΒΟΗΘΗΤΙΚΟΙ ΚΑΤΑΧΩΡΗΤΕΣ (B-C D-E H-L)
INTR INTA RST 6.5 TRAP RST 5.5 RST 7.5 SID Βοηθητικοί Καταχωρητές (Registers) - BC - DE - HL - Address Latch SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
Καταχωρητής BC - Εχει εύρος 16-bit (BC) ή 2 x 8 - bit (B, C) - Είναι γενικής χρήσης πχ. MOV A, B / MVI B, F4 / ADD B Καταχωρητής DE - Εχει εύρος 16-bit (DE) ή 2 x 8 - bit (D, E) - Είναι γενικής χρήσης πχ. MOV A, D / MVI E, F4 / ADD E Καταχωρητής HL - Εχει εύρος 16-bit (HL) ή 2 x 8- bit (H, L - Είναι γενικής χρήσης - Χρησιμοποιείται σαν δείκτης δεδομένων και αποθηκεύει διευθυνση πχ. LXI H,2031H MOV M, A (Μ = 2031)
Ο ΔΕΙΚΤΗΣ ΣΩΡΟΥ ( STACK POINTER SP )
INTR INTA RST 6.5 TRAP RST 5.5 RST 7.5 SID SOD Δείκτης Σωρού (Stack Pointer - SP) INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
Stack Pointer SP (Δείκτης Στοίβας) - Εχει εύρος 16-bit - Αποθηκεύει Διεύθυνση - Είναι δείκτης της τρέχουσας διεύθυνσης που αντιστοιχεί στην κορυφής της στοίβας - Η στοίβα (Stack) είναι μια δεσμευμένη περιοχή μνήμης RAM - Εκεί αποθηκεύονται προσωρινά δεδομένα (καταχωρητών) όταν συμβαίνει διακοπή ή μετάβαση σε υπορουτίνα - Η Στοίβα έχει δομή LIFO (last in first out) 0000Η 0001Η 0002Η 0003Η PUSH DATA IN STACK.. 00A5H SP = 00A5H 00A6H.. PULL DATA FROM STACK 00FFΗ
Ο ΑΠΑΡΙΘΜΗΤΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ (PROGRAM COUNTER PC)
INTR INTA RST 6.5 TRAP RST 5.5 RST 7.5 SID Απαριθμητής Προγράμματος (Program Counter - PC) SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
Program Counter PC (Απαριθμητής Προγράμματος) - Εχει εύρος 16-bit - Αποθηκεύει Διεύθυνση - Είναι δείκτης της διεύθυνσης της επόμενης εντολής που πρόκειται να εκτελεστεί - Τροφοδοτεί το Address Bus ORG 2000H ; διεύθυνση πρώτης εντολής (ψευδοεντολή) START: ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) MVI A,FFH ; μεταφορά του FFH στον καταχωρητή Α STA 2023H ; αποθήκευση περιεχομένων Α στην ΘΜ 2023Η LDA 2020H ; φόρτωση περιεχομένων ΘΜ 2020H στον Α STA 2030H ; αποθήκευση περιεχομένων Α στην ΘΜ 2030Η END ; δήλωση τέλους εντολών προγράμματος (ψευδοεντολή) (PC = Διεύθυνση Μνήμης) (Εντολές προγράμματος) (2000) MVI A, FFH (2002) STA 2023H (2005) LDA 2020H..
ΚΑΤΑΧΩΡΗΤΗΣ & ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗΣ ΕΝΤΟΛΩΝ REGISTER & DECODER
Καταχωρητής Εντολής (Instruction Register) - Εχει εύρος 8-bit - Αποθηκεύει τον κωδικό της εντολής προς αποκωδικοποίηση - Συνεργάζεται με τον Αποκωδικοποιητή Εντολών INTA RST 6.5 TRAP - Δεν είναι προσπελάσιμος στον προγραμματιστή INTR RST 5.5 RST 7.5 SID SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
Αποκωδικοποιητής Εντολών (Instruction Decoder) - Με βάση το είδος της εντολής καθορίζει τις επόμενες λειτουργίες για την εκτέλεσή της - Καθορίζει τους επόμενους ΚΜ - Ελέγχει το υποσύστημα χρονισμού που παράγει τα σήματα ελέγχου (timing & control) INTR INTA RST 6.5 TRAP RST 5.5 RST 7.5 SID SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) REGISTER DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
ΛΕΙΤΟΥΡΓΕΙ ΣΤΟΝ ΚΜ (T4) «ΑΝΑΚΛΗΣΗ ΕΝΤΟΛΗΣ» Τ1 Τ2 Τ3 Τ4 Τ1 Τ2 Τ3 Τ1 Τ2 Τ3 Τ1 Τ2 Τ3 Τ1 Τ2 Reset T0 CLK IO/M, S1, S2 (0, 1, 1) (0, 1, 0) (0, 1, 0) (0, 0, 1) THALT HALT T1 A8 - A15 20H 20H 20H 20H Ready Twait T2 HALT AD0 - AD7 02H 32H 03H 23H 04H 20H 23H A = C5 ALE RD WR T3 T4 OF OF T5 T6
ΑΡΙΘΜΗΤΙΚΗ ΚΑΙ ΛΟΓΙΚΗ ΜΟΝΑΔΑ (ΑΛΜ) ARITHMETIC LOGIC UNIT (ALU)
INTR INTERRUPT CONTROL Αριθμητική και Λογική Μονάδα - ΑΛΜ (Arithmetic Logic Unit - ALU) - Εχει εύρος 8-bit - Εκτελεί αριθμητικές (+ -) και λογικές πράξεις (AND, OR, NOT..) - Χρησιμοποιεί τον Συσσωρευτή και Προσωρινό καταχωρητή ως καταχωρητές εισόδων INTA RST 6.5 TRAP RST 5.5 RST 7.5 SID SOD - Αποθηκεύει το αποτέλεσμα (έξοδο) στον Συσσωρευτή - Οι συνθήκες αποτελέσματος θέτουν ή μηδενίζουν τις σημαίες SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
ΧΡΗΣΕΙΣ ΤΗΣ «ΑΛΜ» ΣΕ ΕΝΤΟΛΕΣ ΠΡΟΣΘΕΣΗΣ ORG 2000H ;διεύθυνση της πρώτης εντολής (ψευδοεντολή) START: ;δήλωση αρχής εντολών προγράμματος (ψευδοεντολή) LXI H,2030H ;ορισμός του M (HL) ως δείκτης στην 2030H MVI A,0F1H ;μεταφορά του F1H στον καταχωρητή Α MOV M,A ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H και L LXI H,2031H ;ορισμός του M (HL) ως δείκτης στην 2031H MVI A,0A2H ;μεταφορά του A2H στον καταχωρητή Α MOV M, A ;μεταφορά του Α στην θέση μνήμης που δείχνει ο H και L ADI 00H ;μηδενισμός του flag carry LDA 2030H ;μεταφορά στον Α του περιεχομένου θέσης μνήμης 2030H MVI B,84H ;μεταφορά του 84H στον καταχωρητή B ADD B ;A = A + B STA 2040H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2040H LDA 2031H ;μεταφορά στον Α του περιεχομένου θέσης μνήμης 2031H MVI B,12H ;μεταφορά του 12H στον καταχωρητή B ADC B ;A = A + B + C STA 2041H ;αποθήκευση του A (αποτελέσματος) στην θέση μνήμης 2041H END ;δήλωση τέλους εντολών προγράμματος (ψευδοεντολή)
ΕΝΤΟΛΕΣ ΥΠΟΣΤΗΡΙΖΟΜΕΝΕΣ ΑΠΌ ΤΗΝ ΑΛΜ ACI : A = A + data + CY ADC: A = A + R + CY ADD : A = A + R SBB: SBI : ANA: ANI: A = A - R - CY A = A data - CY A = A AND R A = A AND data ORA: A = A OR R ORI: A = A OR data XRA: A = A XOR R XRI: A = A ΧOR data
ΜΟΝΑΔΑ ΧΡΟΝΙΣΜΟΥ ΚΑΙ ΕΛΕΓΧΟΥ TIMING AND CONTROL UNIT
INTR INTA RST 5.5 RST 6.5 Μονάδα χρονισμού και ελέγχου (Timing and Control) - Δέχεται εισοδο απο τον Αποκωδικοποιητή Εντολών και τις Σημαίες - Παράγει τα σήματα ελέγχου που εκτελούν τις μικρολειτουργίες (ΚΜ, Τ1, Τ2, κλπ.) RST 7.5 TRAP SID SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
Reset Τ1 Τ2 Τ3 Τ4 Τ1 Τ2 Τ3 Τ1 Τ2 Τ3 Τ1 Τ2 Τ3 Τ1 Τ2 T0 CLK IO/M, S1, S2 A8 - A15 (0, 1, 1) (0, 1, 0) (0, 1, 0) (0, 0, 1) 20H 20H 20H 20H HALT THALT Ready Twait T1 T2 HALT AD0 - AD7 02H 32H 03H 23H 04H 20H 23H A = C5 T3 OF ALE OF RD WR T4 T5 T6
T0 = Αρχική Κατάσταση μετά απο RESET Reset T0 T1 = Μια διεύθυνση μνήμης τοποθετείται στο Address Bus. Παράγεται το ALE για απόπλεξη. Καθορίζεται ο ΚΜ απο IO/M- S0-S1 πχ. Ανάκληση εντολής (OF). Ελέγχεται το HALT. THALT HALT T1 T2 = Δειγματοληπτούνται οι είσοδοι Ready & Hold. Ο PC αυξάνεται κατα 1 αν ισχύει OF. Ενεργοποιείται ένα απο τα σήματα ελέγχου RD, WR, ή INTA. T3 = Ενα byte εντολής ή δεδομένων μεταφέρεται απο CPU σε Μνήμη ή αντίστροφα. Το όποιο σήμα ελέγχου απενεργοποιείται (τελειώνει). T4 = Αποκωδικοποιούνται τα περιεχόμενα του καταχωρητή εντολών αποκωδικοποιείται η εντολή. Ready Twait HALT T2 OF T3 OF T5 ή Τ6 = Προαιρετικές καταστάσεις που χρησιμοποιούνται για την ολοκλήρωση της εκτέλεσης κάποιων εντολών. T4 Twait = Προαιρετική κατάσταση. Δημιουργείται εαν το σήμα Ready είναι 0 (αργές μνήμες). Καμμία αλλαγή σε διαύλους. T5 TΗ = Κατάσταση HALT T6
ΑΠΟΜΟΝΩΤΕΣ ΔΙΑΥΛΩΝ ( BUFFERS )
INTR INTA RST 6.5 TRAP RST 5.5 RST 7.5 SID SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
ΥΠΟΣΥΣΤΗΜΑ ΔΙΑΚΟΠΩΝ ( INTERRUPTS )
INTR INTA RST 6.5 TRAP RST 5.5 RST 7.5 SID SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS
TRAP RST 5.5 RST 0 RST 1 RST 2 RST 3 MEMORY ADDRESSES 00 Η 08 Η 10 Η 18 Η RST 6.5 RST 4 20 Η RST 7.5 RST 5 24 Η 28 Η RST 6 2C Η 30 Η Ο 8085 εκτελεί εντολές software RST στη λήψη INTR RST 7 8085 SYSTEM MEMORY 34 Η 38 Η 3C Η
ΣΕΙΡΙΑΚΗ ΕΙΣΟΔΟΣ - ΕΞΟΔΟΣ ( SERIAL I / O )
INTR INTA RST 6.5 TRAP RST 5.5 RST 7.5 SID SOD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (A ) TEMP. REGISTER FLAG (5 bit) ARITHMETIC LOGIC UNIT (ALU) DECODER AND MACHINE CYCLE ENCODING B D H C STACK POINTER E L REGISTER ARRAY PROGRAM COUNTER POWER SUPPLY +5V GND INCREMENTER / DECREMENTER ADDRESS LATCH X1 X2 TIMING AND CONTROL RESET ADDRESS BUFFER DATA / ADDRESS BUFFER CLK OUT READY RD WR ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT A8 - A15 ADDRESS BUS AD0 - AD7 ADDRESS / DATA BUS