1. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ Μ/Ε ΕΣΩΤΕΡΙΚΟΙ ΚΑΤΑΧΩΡΗΤΕΣ

Σχετικά έγγραφα
ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΩΡΙΑ

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

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

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

ΠΡΟΓΡΑΜΜΑ ΕΞΟΜΟΙΩΣΗΣ (Emulator) 6502

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

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

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

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

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

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

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

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

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

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

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

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

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

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

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

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

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

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

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

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

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

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

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

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

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

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

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

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

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

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

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

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

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

Παραδείγματα Προγραμματισμού σε Assembly του TRN

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

7. Ροή ελέγχου 8. Μηχανισμοί εισόδου/εξόδου

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Περιεχόµενα. I Βασικές Γνώσεις 1

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

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

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

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

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

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

ΠΑΡΑ ΕΙΓΜΑ 8 ΓΕΝΝΗΤΡΙΑ ΨΕΥ ΟΤΥΧΑΙΩΝ ΑΡΙΘΜΩΝ (PSEUDORANDOM GENERATOR) 8.0 ΓΕΝΙΚΑ

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

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

1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα

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

ΑΣΚΗΣΗ 3 ΑΣΚΗΣΗ 3. Μηχανικοί ιακόπτες. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

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

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

Βασική δοµή και Λειτουργία Υπολογιστή

Εφαρμογές μικροελεγκτών

Ελίνα Μακρή

Εντολές του MIPS (2)

Transcript:

1. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ Μ/Ε 6502 - ΕΣΩΤΕΡΙΚΟΙ ΚΑΤΑΧΩΡΗΤΕΣ Ο 8-bit µ/ε 6502 είναι ένα ολοκληρωµένο κύκλωµα (LSI) µε 40 ακροδέκτες από τους οποίους οι 16 αντιστοιχούν σε γραµµές διευθύνσεων (Α 0 - Α 15 ) και οι 8 σε γραµµές δεδοµένων (D o - D 7 ). Για τις γραµµές του δίαυλου ελέγχου (Control Bus) διαθέτει 10 ακροδέκτες και άλλους 3 για την τροφοδοσία του. Οι υπόλοιποι 3 ακροδέκτες δεν χρησιµοποιούνται (Non Connected - NC). ιάταξη ακροδεκτών στις 2 συσκευασίες του 6502 Χρησιµοποιήθηκε για πρώτη φορά στη σειρά APPLE I & II και έκτοτε χρησιµοποιήθηκε σε διάφορα άλλα συστήµατα όπως οι BBC, UNITRON κ.α. καθώς και σε βιοµηχανικές εφαρµογές. Κατασκευάστηκε από αρκετές εταιρίες και η αρχιτεκτονική του είναι παρόµοια µε αυτή του 6800 της Motorola. Χρησιµοποιεί 8- bit data bus, 16-bit address bus και ένα ενιαίο bus για την µνήµη και το I/O. Ο χώρος διευθύνσεων (Address Space) του 6502 είναι 64 ΚΒ και χωρίζεται σε 256 σελίδες, κάθε µια από τις οποίες περιλαµβάνει 256 θέσεις µνήµης. Η πρώτη σελίδα µνήµης καταλαµβάνει τις διευθύνσεις $0000-$00FF, ονοµάζεται Zero Page και έχει ιδιαίτερη σηµασία στον προγραµµατισµό του 6502 καθώς υπάρχουν ειδικοί τρόποι διευθυνσιοδότησης για την σελίδα αυτή οι οποίοι επιταχύνουν την πρόσβαση στη µνήµη. Επίσης, ειδική σηµασία έχει και η επόµενη σελίδα µε διευθύνσεις $0100-$01FF η οποία αποτελεί τον Σωρό (Stack), µια περιοχή µνήµης µε ειδικές εντολές και έναν καταχωρητή αφιερωµένο σ' αυτή, για 1

γρήγορη πρόσβαση. Οι υπόλοιπες 254 σελίδες µνήµης είναι ισοδύναµες και διαθέσιµες στον προγραµµατιστή για αποθήκευση προγραµµάτων και δεδοµένων. Ο 6502 διαθέτει ένα σύνολο καταχωρητών (registers) διαθέσιµων στον προγραµµατιστή. Στη συνέχεια θα εξετάσουµε τους καταχωρητές αυτούς. b 7 b 0 Accumulator A 1. Συσσωρευτής Α (Accumulator A) (Συσσωρευτής) b 7 b 0 Index Register X (Καταχωρητής δείκτη Χ) b 7 b 0 Index Register Υ (Καταχωρητής δείκτη Υ) b 15 b 7 b 0 Program Counter PC (Απαριθµητής προγράµµατος) b 8 b 7 b 0 Stack Pointer 1 ( είκτης σωρού) b 7 b 0 Status Register (Καταχωρητής Κατάστασης) Οι καταχωρητές του 6502 1. Συσσωρευτής Α (Accumulator A) Ο συσσωρευτής έχει µήκος 8 bit και είναι ο πιο σηµαντικός καταχωρητής της CPU. Χρησιµεύει σαν 'ενδιάµεσος' για την εκτέλεση των λογικών και αριθµητικών πράξεων από την Αριθµητική-Λογική Μονάδα (ALU). Περιέχει ένα τµήµα των δεδοµένων που πρόκειται να επεξεργαστεί η Αριθµητική-Λογική Μονάδα και είναι αποδέκτης του αποτελέσµατος της αριθµητικής ή λογικής πράξης. Ας δούµε για παράδειγµα το ρόλο του στην εντολή της πρόσθεσης : CPU ADC $1000 ; { Πρόσθεσε στο συσσωρευτή Α το περιεχόµενο της θέσης $1000 } ΜΝΗΜΗ.. LDA $3000 STA $4000 $3000 C A... A $4000 Χρήση του συσσωρευτή Α για ανταλλαγή πληροφοριών µεταξύ CPU και µνήµης 2

Ας υποθέσουµε ότι πριν την εκτέλεση της εντολής ο Α περιέχει τον αριθµό $13 και η θέση µνήµης $1000 τον αριθµό $2C. Η ALU θα προσθέσει το περιεχόµενο του συσσωρευτή A ($13) µε το περιεχόµενο της θέσης $1000 ($2C) και το αποτέλεσµα ($13 + $2C = $3F) θα καταχωρηθεί πάλι στο συσσωρευτή. Ο συσσωρευτής Α χρησιµεύει επίσης για την ανταλλαγή πληροφοριών ανάµεσα στη µνήµη και την CPU, µέσω των εντολών LDA και STA. 2. Καταχωρητής δείκτη Χ - Καταχωρητής δείκτη Υ (Index Register X - Index Register Y) Οι καταχωρητές δείκτη Χ και Υ έχουν εύρος 8 bit και χρησιµεύουν είτε για την ανταλλαγή πληροφοριών ανάµεσα στη CPU και τη µνήµη, είτε σαν απαριθµητές (counters) για τη δηµιουργία βρόχων (loops) ή χρονικών καθυστερήσεων (delay subroutines), είτε για να απλοποιήσουν τη διαδικασία προσπέλασης σε διαδοχικές θέσεις µνήµης (χειρισµό πινάκων κλπ). 3. Απαριθµητής προγράµµατος (Program Counter - PC) Ο καταχωρητής αυτός έχει εύρος 16 bit και το περιεχόµενό του αυξάνεται αυτόµατα έτσι ώστε στο τέλος κάθε εντολής να δείχνει τη διεύθυνση του κωδικού της επόµενης εντολής που πρέπει να ανακληθεί από τη µνήµη και να εκτελεστεί. 4. είκτης σωρού (Stack Pointer - SP) Ο σωρός (Stack) είναι µια περιοχή της κεντρικής µνήµης που χρησιµεύει, κυρίως, για την προσωρινή αποθήκευση του απαριθµητή προγράµµατος (PC) ή των εσωτερικών καταχωρητών της CPU όταν καλείται µια υπορουτίνα (subroutine) ή όταν πρόκειται να εξυπηρετηθεί µια αίτηση διακοπής (interrupt). Χρησιµοποιείται, επίσης, για την αποθήκευση ενδιάµεσων αποτελεσµάτων ή δεδοµένων. Στον µ/ε 6502, όπως έχει ήδη αναφερθεί, ο σωρός καταλαµβάνει την δεύτερη σελίδα της κεντρικής µνήµης ($0100-$01FF, πρώτη σελίδα στην ορολογία του 6502 αφού η αρίθµηση των σελίδων ξεκινά από το 0) και έχει οργάνωση LIFO (Last In First Out), δηλαδή η πληροφορία που καταχωρείται τελευταία στο σωρό ανακτάται πρώτη. Η καταχώρηση και η ανάκτηση των πληροφοριών από το σωρό γίνεται µε 4 ειδικές εντολές του 1 byte, τις PHA, PLA, PHP, PLP. Ο δείκτης σωρού (SP) είναι ένας καταχωρητής εύρους 8 bit (στην πραγµατικότητα 9 bit µε το 9 o bit να είναι πάντα 1) που δείχνει πάντα τη διεύθυνση της 'κορυφής' του σωρού, δηλαδή τη διεύθυνση της επόµενης θέσης µνήµης που είναι διαθέσιµη για την καταχώρηση πληροφορίας του 1 byte. Είναι προφανές ότι ο δείκτης σωρού µπορεί να παίρνει τιµές στην περιοχή $00-$FF, περιέχει δηλαδή πάντα το χαµηλό τµήµα (ADL) µιας διεύθυνσης της δεύτερης (πρώτης) σελίδας. Με την καταχώρηση στο σωρό κάθε 3

πληροφορίας του 1 byte το περιεχόµενο του SP ελαττώνεται αυτόµατα κατά 1 ενώ µε την ανάκτηση (λήψη) πληροφορίας του 1 byte αυξάνεται κατά 1. 5. Καταχωρητής κατάστασης (Status Register, P) Ο καταχωρητής κατάστασης διαθέτει 8 bit από τα οποία χρησιµοποιούνται µόνο τα 7 καθώς το b 5 έχει πάντα την τιµή 1. Από τα υπόλοιπα bit, τα 5 παρέχουν πληροφορίες σχετικές µε το αποτέλεσµα της τελευταίας εντολής που εκτελέσθηκε, ενώ τα άλλα 2 αντιστοιχούν σε σήµατα ελέγχου. Τα bit του καταχωρητή κατάστασης αναφέρονται συνήθως σαν ενδείκτες (flags). Στη συνέχεια θα αναφερθούµε στα flags αυτά. b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 N V 1 B D I Z C Carry 1=True Zero 1=Αποτέλεσµα 0 Interrupt 1=Disable Decimal Mode 1=True Break 1=Break Overflow Negative 1=True 1=Negative Ο καταχωρητής κατάστασης του µ/ε 6502 Carry flag (Ενδείκτης κρατουµένου) Γίνεται 1 όταν προκύπτει κρατούµενο από την εκτέλεση της εντολής της πρόσθεσης ενώ γίνεται 0 όταν προκύπτει κρατούµενο από την εντολή της αφαίρεσης. Επηρεάζεται, επίσης, από εντολές σύγκρισης, ολίσθησης και περιστροφής. Η τιµή του µπορεί να τροποποιηθεί από τον προγραµµατιστή µε τις εντολές CLC (Clear Carry, C=0) και SEC (Set Carry, C=1). Zero flag (Ενδείκτης µηδενικού αποτελέσµατος) Γίνεται 1 όταν η εντολή που εκτελείται έχει σαν αποτέλεσµα το µηδενισµό του περιεχοµένου κάποιου καταχωρητή της CPU (A, X, Y, SP) Interrupt flag (Ενδείκτης αίτησης διακοπής) Επιτρέπει (όταν I=0) ή απαγορεύει (όταν I=1) την εξυπηρέτηση µιας εξωτερικής αίτησης διακοπής (Interrupt request). Decimal flag (Ενδείκτης δεκαδικής λειτουργίας) Ρυθµίζει τη δυαδική (όταν D=0) ή δεκαδική (όταν D=1) λειτουργία των εντολών της πρόσθεσης (ADC) και της αφαίρεσης (SBC). Break flag (Ενδείκτης εντολής Break) Γίνεται 1 µετά την εκτέλεση της εντολής BRK. Overflow flag (Ενδείκτης υπερχείλισης) 4

Γίνεται 1 όταν το αποτέλεσµα της πρόσθεσης ή της αφαίρεσης 2 προσηµασµένων αριθµών του 1 byte, µε το σύστηµα του συµπληρώµατος 'ως προς 2' (2's complement), είναι µεγαλύτερο από +127 ($7F) ή µικρότερο από -128 ($80). Negative flag (Ενδείκτης αρνητικού αποτελέσµατος) Γίνεται 1 όταν το περιεχόµενο του συσσωρευτή Α ή του καταχωρητή δείκτη (X ή Υ) είναι αρνητικός αριθµός, στη µορφή του συµπληρώµατος 'ως προς 2'. Πρακτικά, ο ενδείκτης N γίνεται 1 όταν το b 7 του περιεχοµένου του καταχωρητή είναι 1. 5

2. DATA SHEETS ΤΟΥ Μ/Ε 6502 Στις επόµενες σελίδες παραθέτουµε ορισµένα data sheets που αφορούν τον 6502 και αναφέρονται στο Block διάγραµµα των µονάδων στο εσωτερικό του, την επεξήγηση των σηµάτων ελέγχου του µ/ε, τα AC και DC χαρακτηριστικά του καθώς και τις κανονικές και µέγιστες τάσεις και θερµοκρασίες λειτουργίας. Σκοπός της παράθεσης των στοιχείων αυτών είναι η εξοικείωση των σπουδαστών µε τα data sheets, τα οποία θα είναι ο βασικός οδηγός τους κατά τη σχεδίαση συστηµάτων, καθώς και µια πρώτη επαφή µε τα φυσικά χαρακτηριστικά του συγκεκριµένου µ/ε. 6

7

8

9

10

11

12

13

14

15

3. ΤΟ ΣΕΤ ΕΝΤΟΛΩΝ (INSTRUCTION SET) ΤΟΥ 6502 Mnemonic Λειτουργία Mnemonic Λειτουργία ADC Πρόσθεσε µνήµη και συσσωρευτή µε κρατούµενο και βάλε το άθροισµα στο συσσωρευτή JMP Κάνε άλµα χωρίς συνθήκη σε νέα διεύθυνση JSR Κάνε άλµα σε υπορουτίνα AND Κάνε λογικό AND µεταξύ των bits µνήµης και του συσσωρευτή LDA Φόρτωσε στον συσσωρευτή περιεχόµενο µ νήµης ASL BCC BCS Μετατόπισε µια θέση αριστερά τα bit (µνήµης ή συσσωρευτή) Κάνε διακλάδωση όταν το κρατούµενο είναι 0 (C=0) Κάνε διακλάδωση όταν το κρατούµενο είναι 1 (C=1) LDX LDY LSR Φόρτωσε στον Χ περιεχόµενο µνήµης Φόρτωσε στον Υ περιεχόµενο µνήµης Ολίσθησε 1 bit δεξιά συσσωρευτή ή µνήµη BEQ BIT Κάνε διακλάδωση όταν αποτέλεσµα είναι 0 (Z=1) Συγκρίνει bits στην µνήµη µε τον συσσωρευτή NOP Καµία ενέργεια BMI BNE Κάνε διακλάδωση όταν αποτέλεσµα είναι <0 (Ν=1) Κάνε διακλάδωση όταν αποτέλεσµα είναι <> 0 (Z=0) ORA Κάνε OR τη µνήµη µε τον συσσωρευτή BPL BRK BVC BVS Κάνε διακλάδωση όταν αποτέλεσµα είναι >0 (Ν=0) Τέλος προγράµµατος Κάνε διακλάδωση όταν η υπερχείλιση είναι 0 (V=0) Κάνε διακλάδωση όταν η υπερχείλιση είναι 1 (V=1) PHA PHP PLA PLP Βάλε το συσσωρευτή στο σωρό Βάλε καταχωρητή κατάστασης στο σωρό Ανέσυρε το συσσωρευτή από το σωρό Ανέσυρε καταχωρητή κατάστασης από το σωρό CLC CLD CLI CLV CMP Κάνε 0 το bit κρατουµένου του καταχ. κατάστασης ιακοπή δεκαδικής λειτουργίας Κάνε 0 το interrupt bit του καταχ. κατάστασης Κάνε 0 το bit υπερχείλισης του καταχ. κατάστασης Σύγκρινε µνήµη µε συσσωρευτή ROL ROR RTI RTS Περιστροφή 1 bit αριστερά συσσωρ. ή µνήµης Περιστροφή 1 bit δεξιά συσσωρ. ή µνήµης Επιστροφή από interrupt Επιστροφή από υπορουτίνα CPX CPY Σύγκρινε µνήµη µε καταχωρητή Χ Σύγκρινε µνήµη µε καταχωρητή Υ SBC SEC Αφαίρεσε µνήµη από συσσωρευτή µε 'δανεικό' Κάνε 1 το bit κρατουµένου του καταχ. κατάστασης DEC DEX DEY Μείωσε περιεχόµενο µνήµης κατά 1 Μείωσε περιεχόµενο καταχωρητή Χ κατά 1 Μείωσε περιεχόµενο καταχωρητή Υ κατά 1 SED SEI STA STX Έναρξη δεκαδικής λειτουργίας Κάνε 1 το interrupt bit του καταχ. κατάστασης Αποθήκευσε συσσωρευτή στη µνήµη Αποθήκευσε καταχωρητή X στη µνήµη EOR Κάνε XOR µεταξύ συσσωρευτή και µνήµης STY Αποθήκευσε καταχωρητή Υ στη µνήµη INC INX INY Αύξησε περιεχόµενο µνήµης κατά 1 Αύξησε περιεχόµενο καταχωρητή Χ κατά 1 Αύξησε περιεχόµενο καταχωρητή Υ κατά 1 TAX TAY TSX TXA Αντέγραψε τον συσσωρευτή στον καταχωρητή X Αντέγραψε τον συσσωρευτή στον καταχωρητή Υ Αντέγραψε τον SP στον καταχωρητή X Αντέγραψε καταχωρητή X στο συσσωρευτή TXS Αντέγραψε την τιµή του Χ στον SP TYA Αντέγραψε καταχωρητή Υ στο συσσωρευτή 16

Κάθε εντολή του 6502 αποτελείται από τα ακόλουθα 2 µέρη : Τον Κωδικό της εντολής ή Κώδικα Λειτουργίας (Operation Code ή OPCODE) ο οποίος καθορίζει την βασική λειτουργία που θα εκτελεσθεί, το είδος των δεδοµένων, το µέγεθος των δεδοµένων και τον τρόπο προσδιορισµού της διεύθυνσης. Στη γλώσσα Assembly, αντί για τους OPCODE χρησιµοποιούνται συντοµογραφίες στην αγγλική γλώσσα, που ονοµάζονται Mnemonics, και αφ' ενός βοηθούν στην αποµνηµόνευση των εντολών, αφ' ετέρου υποδηλώνουν τη λειτουργία που επιτελεί η εντολή. Για παράδειγµα η εντολή σε γλώσσα µηχανής A9 FF Γράφεται σε assembly LDA #FF Και σηµαίνει 'φόρτωσε στο συσσωρευτή την τιµή FF'. Ο Opcode Α9 της γλώσσας µηχανής αντικαταστάθηκε από το mnemonic LDA στην assembly. Το Πεδίο ιεύθυνσης ή Πεδίο Μετατόπισης (Address ή Displacement Field). Η διεύθυνση αυτή έχει διαφορετική σηµασία ανάλογα µε το είδος των εντολών. Στην περίπτωση των εντολών µεταφοράς, επεξεργασίας δεδοµένων ή ελέγχου της κατάστασης, η διεύθυνση που σχηµατίζεται δείχνει στον τελεστέο (operand) που αντίστοιχα πρόκειται να µεταφερθεί σε κάποια άλλη θέση, να επεξεργασθεί ή να µεταβάλλει την κατάσταση του µ/ε. O 6502 έχει 56 διαφορετικές εντολές, ενώ η κάθε εντολή µπορεί να χρησιµοποιηθεί µε µέχρι και 13 διαφορετικούς τρόπους διευθυνσιοδότησης. 17

4. ΤΡΟΠΟΙ ΙΕΥΘΥΝΣΙΟ ΟΤΗΣΗΣ ΜΝΗΜΗΣ ΣΤΟΝ 6502 Οι διάφοροι τρόποι αναζήτησης και λήψης των τελεστέων στις εντολές του 6502 αναφέρονται σαν Μέθοδοι ιευθυνσιοδότησης Μνήµης (Memory Addressing Modes) και υπάρχουν συνολικά 13 τρόποι για διευθυνσιοδότηση κάθε µίας από τις 56 εντολές του 6502. Στον πίνακα που ακολουθεί δίνονται συγκεντρωτικά οι τρόποι διευθυνσιοδότησης του 6502. α/α Τρόπος ιευθυνσιοδότησης Μορφή Τελεστέου 1 Αµεσος (Immediate) #aa 2 Απόλυτος (Absolute) aaaa 3 Μηδενικής Σελίδας (Zero Page) aa 4 Υπονοούµενος (Implied) - 5 Εµµεσος Απόλυτος (Indirect Absolute) (aaaa) 6 Απόλυτος εικτοδοτούµενος, Χ (Absolute Indexed X) aaaa,x 7 Απόλυτος εικτοδοτούµενος, Y (Absolute Indexed Y) aaaa,y 8 εικτοδοτούµενος Μηδενικής Σελίδας, Χ (Zero Page Indexed X) aa,x 9 εικτοδοτούµενος Μηδενικής Σελίδας, Y (Zero Page Indexed Y) aa,y 10 εικτοδοτούµενος Εµµεσος (Indexed Indirect) (aa,χ) 11 Εµµεσος εικτοδοτούµενος (Indirect Indexed) (aa),y 12 Σχετικός (Relative) aa ή aaaa 13 Συσσωρευτή (Accumulator) A Ακολούθως, περιγράφονται αναλυτικότερα οι διάφοροι τρόποι προσπέλασης. Ολες οι διευθύνσεις και τιµές αναφέρονται µε τη δεκαεξαδική τους αναπαράσταση. 18

α/ α Τρόπος Προσπέλασης Bytes Παράδειγµα Παρατηρήσεις 1 Αµεσος (Immediate) 2 LDA #4C 2 Απόλυτος (Absolute) 3 LDA 1B0C Φόρτωσε στον Α την τιµή 4C Φόρτωσε στον Α το περιεχόµενο της διεύθυνσης 1B0C Ο απλούστερος τρόπος προσπέλασης, αναφέρεται σε σταθερή τιµή. Αναφέρεται στο περιεχόµενο µιας διεύθυνσης µνήµης. Το πρώτο byte είναι ο OPCODE, το δεύτερο το χαµηλό τµήµα της διεύθυνσης (ADL) και το τρίτο το υψηλό τµήµα της διεύθυνσης (ADΗ) 3 Μηδενικής Σελίδας (Zero Page) 2 LDA 1B Φόρτωσε στον Α το περιεχόµενο της διεύθυνσης µηδενικής σελίδας 001B Αναφέρεται στις πρώτες 256 θέσεις µνήµης µόνον (zero page, 0000-00FF). Εκεί αποθηκεύονται συχνά χρησιµοποιούµενα δεδοµένα. 4 Υπονοούµενος (Implied) 1 ΙΝΧ Αύξησε την τιµή του καταχωρητή Χ Το προς επεξεργασία στοιχείο ορίζεται απευθείας από τον κωδικό της εντολής. κατά 1 5 Εµµεσος Απόλυτος (Indirect Absolute) 3 JMP (0500) Συνέχισε την εκτέλεση του προγράµµατος από την διεύθυνση που είναι αποθηκευµένη στις διευθύνσεις 0500 (ADL) και 0501 (ADH) Χρησιµοποιείται µόνο µε την εντολή JMP. Αναφέρεται στην διεύθυνση που είναι αποθηκευµένη στην διεύθυνση που αναφέρει η εντολή 6 Απόλυτος εικτοδοτούµενος, Χ (Absolute Indexed X) 7 Απόλυτος εικτοδοτούµενος, Y (Absolute Indexed Y) 8 εικτοδοτούµενος Μηδενικής Σελίδας, Χ (Zero Page Indexed X) 3 LDA 0600,X Φόρτωσε στον Α το περιεχόµενο της διεύθυνσης 0600+X 3 LDA 0600,Υ Φόρτωσε στον Α το περιεχόµενο της διεύθυνσης 0600Y+Y 2 LDA Β5,X Φόρτωσε στον Α το περιεχόµενο της διεύθυνσης Β5+X Η τελική διεύθυνση προκύπτει προσθέτοντας την διεύθυνση της εντολής µε τα περιεχόµενα του καταχωρητή Χ. Χρησιµοποιείται κυρίως για υλοποίηση πινάκων. Η τελική διεύθυνση προκύπτει προσθέτοντας την διεύθυνση της εντολής µε τα περιεχόµενα του καταχωρητή Y. Χρησιµοποιείται κυρίως για υλοποίηση πινάκων. Η τελική διεύθυνση προκύπτει προσθέτοντας την διεύθυνση της εντολής, που ανήκει στη zero page, µε τα περιεχόµενα του καταχωρητή Χ. Χρησιµοποιείται κυρίως για υλοποίηση πινάκων. 9 εικτοδοτούµενος Μηδενικής Σελίδας, Y (Zero Page Indexed Y) 2 LDA Β5,Υ Φόρτωσε στον Α το περιεχόµενο της διεύθυνσης Β5+Y 19 Η τελική διεύθυνση προκύπτει προσθέτοντας την διεύθυνση της εντολής, που ανήκει στη zero page, µε τα περιεχόµενα του

(Zero Page Indexed Y) διεύθυνσης Β5+Y καταχωρητή Υ. Χρησιµοποιείται κυρίως για υλοποίηση πινάκων. 10 εικτοδοτούµενος Εµµεσος (Indexed Indirect) 2 LDA (80,X) Εστω ότι ο Χ έχει τιµή 10, και στις διευθύνσεις 90 και 91 υπάρχουν οι τιµές Ε6 και 23. Το άθροισµα 80+Χ δίνει τιµή 90. Στη διεύθυνση 90 είναι το ADL της διεύθυνσης που θα φορτωθεί στον Α και στο 91 το ADH. Ετσι, τελικά φορτώνεται στον Α το περιεχόµενο της διεύθυνσης 23Ε6 Το άθροισµα της διεύθυνσης της εντολής και του καταχωρητή Χ σχηµατίζουν µια διεύθυνση, έστω Κ, που είναι το ADL της διευθύνσεως τα περιεχόµενα της οποίας θα προσπελαστούν. Στη διεύθυνση Κ+1 υπάρχει το ADH. Ετσι, προσδιορίζοντας µόνο το ADL (µε 1 byte) σχηµατίζεται µια διεύθυνση των 2 bytes, κερδίζοντας σε ταχύτητα εκτέλεσης 11 Εµµεσος εικτοδοτούµενος (Indirect Indexed) 2 LDA (2Α),X Εστω ότι ο Υ έχει τιµή 01, και στις διευθύνσεις 2Α και 2Β υπάρχουν οι τιµές 00 και 5C. Η διεύθυνση 5C00 που σχηµατίζεται είναι η Base Address. Στη διεύθυνση αυτή προστίθεται το περιεχόµενο του καταχωρητή Y και προκύπτει η διεύθυνση 5C01. Τα περιεχόµενα της διεύθυνσης αυτής φορτώνονται στον Α Η διεύθυνση της εντολής (ADL) και η επόµενη (ADH) σχηµατίζουν µια διεύθυνση που ονοµάζεται BASE ADDRESS. Στη διεύθυνση αυτή προστίθεται το περιεχόµενο του καταχωρητή Υ. Τα περιεχόµενα της διεύθυνσης που προκύπτει είναι τα δεδοµένα που θέλουµε να προσπελάσουµε. Η χρήση της είναι παρόµοια µε την προηγούµενη εντολή. 12 Σχετικός (Relative) 2 0200 BEQ 23 Αν το flag Z<>1 η εκτέλεση του προγράµµατος συνεχίζεται στη διεύθυνση 0202, δηλ. τρέχουσα + 2. Αν Z=1 τότε η εκτέλεση του προγράµµατος συνεχίζεται από τη διεύθυνση 0200+2+23=0225 Χρησιµοποιείται µόνο στις εντολές διακλάδωσης υπό συνθήκη (BCC, BCS, BMI, BPL, BEQ, BVC, BVS). Η τιµή της εντολής αναφέρεται σε µετατόπιση (Offset ή Displacement) και έχει τιµή από -127 έως +128. Όταν εκτελείται η διακλάδωση, η εκτέλεση του προγράµµατος συνεχίζεται από τη θέση µνήµης που προκύπτει από τη µετατόπιση 13 Συσσωρευτή (Accumulator) 1 ASL A Μετατόπισε κατά µια θέση αριστερά τα bit του καταχωρητή Α Όπως και στον υπονοούµενο τρόπο προσπέλασης, το προς επεξεργασία στοιχείο ορίζεται απ ευθείας από τον κώδικα της εντολής. Χρησιµοποιείται µε 4 µόνον εντολές (ASL A, LSR A, ROL A, ROR A) 20

21

22

23