Μικροελεγκτές AVR. 1η ΕΝΟΤΗΤΑ: Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΜΙΚΡΟΕΛΕΓΚΤΩΝ AVR. Υπεύθυνος Μαθήματος: K. ΠΕΚΜΕΣΤΖΗ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Μικροελεγκτές AVR. 1η ΕΝΟΤΗΤΑ: Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΜΙΚΡΟΕΛΕΓΚΤΩΝ AVR. Υπεύθυνος Μαθήματος: K. ΠΕΚΜΕΣΤΖΗ"

Transcript

1 Μικροελεγκτές AVR 1η ΕΝΟΤΗΤΑ: Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΜΙΚΡΟΕΛΕΓΚΤΩΝ AVR Υπεύθυνος Μαθήματος: K. ΠΕΚΜΕΣΤΖΗ Ε.Μ.Π. Εργ. Μικροϋπολογιστών & Ψηφιακών Συστημάτων Υπεύθυνος: Κ. ΠΕΚΜΕΣΤΖΗ Καθ.

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

3 Αρχιτεκτονική HARVARD Μνήμη προγράμματος 14-bit Δίαυλος προγράμματος Επεξεργαστής (CPU) 8-bit Δίαυλος δεδομένων Μνήμη δεδομένων Ο μικροελεγκτής AVR περιέχει έναν επεξεργαστή RISC (Reduced Instruction Set Computer) o οποίος έχει σχεδιαστεί με βάση την αρχιτεκτονική Harvard. Στην αρχιτεκτονική Harvard υπάρχει διαφορετικός δίαυλος για τη μεταφορά δεδομένων (data bus) και διαφορετικός δίαυλος για τη μεταφορά των εντολών (instruction bus).

4 Αρχιτεκτονική HARVARD Διαφορετικός δίαυλος για τη μεταφορά: εντολών (instruction bus) και δεδομένων (data bus) Περιλαμβάνει δύο διαφορετικές μνήμες: μνήμη προγράμματος (program memory) και μνήμη δεδομένων (data memory) Επιτρέπει οι εντολές να έχουν διαφορετικό μήκος από τα δεδομένα ανάλογα με το πλήθος των εντολών Επιτρέπει επικάλυψη λειτουργιών ανάκλησης εντολής, ανάγνωσηςεγγραφής δεδομένων, εκτέλεσης εντολών.

5 Οικογένειες του με AVR Μοντέλο Ακροδέκτες Flash EEPROM RAM UART ADC 90S K 64 bytes 0 Όχι Όχι 90S K Ναι Όχι 90S K Ναι Ναι 90S K Ναι Όχι 90S K Όχι Όχι Mega K Ναι Ναι Mega Κ Ναι Ναι Mega K Ναι Ναι Tiny10 8 1K 64 0 Όχι Όχι Tiny13 8 2K Όχι Όχι Η οικογένεια των μικροελεγκτών AVR έχει παρόμοιο ρεπερτόριο εντολών και βασική αρχιτεκτονική. Η διαφοροποίηση μεταξύ των διάφορων μελών της οικογένειας είναι στον αριθμό των ακροδεκτών, στο μέγεθος της μνήμης (FLASH, EEPROM, SRAM) καθώς και στα περιφερειακά τα οποία χρησιμοποιούνται.

6 Αρχιτεκτονική του μικροελεγκτή AVR (ATmega16) Πυρήνας υψηλής απόδοσης, χαμηλής κατανάλωσης επεξεργαστής CPU προηγμένη αρχιτεκτονική RISC 131 ισχυρές εντολές 32 x 8 καταχωρητές Έως 16 MIPS απόδοση στα 16 MHz Μονάδα συνεχούς διοχέτευσης εντολών (Instruction Pipelining) Αριθμητική Λογική Μονάδα (Arithmetic Logic Unit, ALU) μνήμη προγράμματος και δεδομένων 16K Bytes από Flash (In-System Self-Programmable) Προαιρετικό τμήμα Boot Code με ανεξάρτητα bits κλειδώματος (Lock Bits) 512 Bytes EEPROM (Αντοχή: 100,000 κύκλοι εγγραφής/ανάγνωσης) 1K Byte εσωτερικής μνήμης SRAM και στοίβα Programming Lock για ασφάλεια λογισμικού JTAG διεπαφή Προγραμματισμός των Flash, EEPROM, ασφαλειών, και Bits κλειδώματος μέσω της διεπαφής JTAG

7 Αρχιτεκτονική του μικροελεγκτή AVR (ATmega16) Περιφερειακά Δύο 8-bit Timer/Counters με ξεχωριστές μονάδες διαίρεσης χρόνου (Prescalers) και τρόπους σύγκρισης (Compare Modes) Ένα 16-bit Timer/Counter με ξεχωριστή μονάδα διαίρεσης χρόνου (Prescaler), τρόπο σύγκρισης, και σύλληψης (Capture Mode) Μετρητή πραγματικού χρόνου με ανεξάρτητο ταλαντωτή 4 PWM κανάλια 8-κάναλο, 10-bit ADC Two-wire σειριακή διεπαφή TWI (IIC) Προγραμματιζόμενη σειριακή USART Master/Slave SPI σειριακή διεπαφή Προγραμματιζόμενος χρονιστής επιτήρησης (Watchdog Timer) Αναλογικός συγκριτής Ειδικά χαρακτηριστικά Power-on Reset και προγραμματιζόμενο κύκλωμα ανίχνευσης βύθισης τάσης τροφοδοσίας(brown-out) εσωτερικός RC ταλαντωτής Εξωτερικές και εσωτερικές πηγές διακοπών 6 λειτουργίες ηρεμίας: Idle, ADC Noise Reduction, Power-save, Power-down, Standby Τάση λειτουργίας ( V για ATmega16) Ταχύτητα λειτουργίας (0-16 MHz για ATmega16) Κατανάλωση ισχύος για 1 MHz, 3V, και 25 C του ATmega16L δραστήρια κατάσταση: 1.1 ma Power-down κατάσταση: < 1 µa άεργη κατάσταση:0.35 ma

8 Αρχιτεκτονική του μικροελεγκτή AVR Δίαυλος δεδομένων των 8-bits Καταχωρητής ελέγχου Μνήμη προγράμματος τύπου Flash Καταχωρητής εντολών Μετρητής προγράμματος (PC) Έμμεση διευθυνσιοδότηση Στατική μνήμη δεδομένων (SRAM) Μετρητής-Χρονιστής 8-bits Μετρητής-Χρονιστής 16-bits με PWM Χρονιστής επιτήρησης (WDT) Αποκωδικοποιητής εντολών Γραμμές ελέγχου Απευθείας διευθυνσιοδότηση Κατ/της κατάστασης & ελέγχου συστήματος (STATUS) I T H S V N Z C Αριθμητική λογική μονάδα(alu) Θύρες εισόδου-εξόδου (Ι/Ο) Αναλογικός συγκριτής Μονάδα ελέγχου διακοπών 32 Καταχωρητές εργασίας των 8-bits Δίαυλος δεδομένων 8-bits Μονάδα ασύγχρονης σειριακής επικοινωνίας (UART) Μονάδα σύγχρονης σειριακής επικοινωνίας (SPI) Μνήμη EEPROM

9 Ακροδέκτες του μικροελεγκτή AVR (ATmega16) VCC Ψηφιακή τροφοδοσία τάσης. GND Γείωση. Port A (PA7..PA0) Η Port A λειτουργεί είτε ως αναλογική είσοδος του μετατροπέα A/D είτε ως θύρα εισόδου-εξόδου διπλής κατεύθυνσης των 8-bit. Port B (PB7..PB0) Η Port Β λειτουργεί ως θύρα εισόδουεξόδου διπλής κατεύθυνσης των 8-bit Port C (PC7..PC0) Η Port C λειτουργεί ως θύρα εισόδουεξόδου διπλής κατεύθυνσης των 8-bit Port D (PD7..PD0) Η Port D λειτουργεί ως θύρα εισόδουεξόδου διπλής κατεύθυνσης των 8-bit). Επίσης, οι θύρες εκτελούν κάποιες ιδιαίτερες λειτουργίες του μικροελεγκτή. RESET Έμφάνιση χαμηλού επιπέδου στον ακροδέκτη αυτόν για χρόνο μεγαλύτερο από τον ελάχιστο μήκος παλμού(2μs), θα παράγει reset. XTAL1 Είσοδος στον ταλαντωτή-ενισχυτή και στο κύκλωμα εσωτερικού ρολογιού. XTAL2 Έξοδος από ταλαντωτή-ενισχυτή. AVCC είναι ο ακροδέκτης τροφοδοσίας τάσης για την Port A και τον μετατροπέα A/D. AREF είναι ο analog reference ακροδέκτης για τον μετατροπέα A/D. (XCK/T0) PB0 (T1) PB1 (INT2/AIN0) PB2 (OC0/AIN1) PB3 (SS ) PB4 (MOSI) PB5 (MISO) PB6 (SCK) PB7 RESET VCC GND XTAL2 XTAL1 (RXD) PD0 (TXD) PD1 (INT0) PD2 (INT1) PD3 (OC1B) PD4 (OC1A) PD5 (ICP1) PD6 PDIP ATmega PA0 (ADC0) PA1 (ADC1) PA2 (ADC2) PA3 (ADC3) PA4 (ADC4) PA5 (ADC5) PA6 (ADC6) PA7 (ADC7) AREF GND AVCC PC7 (TOSC2) PC6 (TOSC1) PC5 (TDI) PC4 (TDO) PC3 (TMS) PC2 (TCK) PC1 (SDA) PC0 (SCL) PD7 (OC2)

10 Περιφερειακά του με AVR Σειριακή μονάδα USART 8-bit Timer/Counter με (Prescaler) και λειτουργία σύγκρισης (Compare Mode) 16-bit Timer/Counter με (Prescaler), λειτουργία σύγκρισης, σύλληψης (Capture Mode), 4 PWM κανάλια Χρονιστής επιτήρησης (Watchdog Timer) Μνήμη EEPROM Master/Slave SPI σειριακή διεπαφή Two-wire σειριακή διεπαφή TWI 8-κάναλο, 10-bit ADC Αναλογικός συγκριτής

11 Ακροδέκτες περιφερειακών ATmega16 ATmega16 Είσοδος Εξωτερικής Διακοπής Έξοδος Σύγκρισης Χρονιστή-0 Είσοδοι/Έξοδοι της Μονάδας SPI Είσοδοι Κρυστάλλου Επεξεργαστή USART: Ασύγχρονη- Σύγχρονη Σειριακή Επικοινωνία 2 Είσοδοι Εξωτερικών Διακοπών 2 Έξοδοι Σύγκρισης Χρονιστή-1 Είσοδος Σύλληψης Χρονιστή-1 XCK/T0 T1 INT2/AIN0 OC0/AIN1 SS MOSI MISO SCK RESET VCC GND XTAL2 XTAL1 RXD TXD INT0 INT1 OC1B OC1A ICP1 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PD0 PD1 PD2 PD3 PD4 PD5 PD6 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PD7 ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 AREF AGND AVCC TOSC2 TOSC1 TDI TDO TMS TCK SDA-SerialDAta SCL-SerialCLock OC2 Θύρα PA και ταυτόχρονα 8 είσοδοι της μονάδας ADC με τάσεις αναφοράς και αναλογική γη. TWI (ή I 2 C)

12 Θύρες- καταχωρητές των μικροελεγκτών AVR Μονάδα Καταχωρητής Σύμβολο Timer 0 Timer/Counter 0 Control Register TCCR0 Timer/Counter 0 TCNT0 Timer/Counter Control Register1A TCCR1A Timer/Counter Control Register1B TCCR1B Timer 1 Timer/Counter 1 TCNT1 Output Compare Register 1 A OCR1A Output Compare Register 1 B OCR1B Input Capture Register ICR1L - H Timer/Counter2 (8 Bits) TCNT2 Timer 2 Timer/Counter Control Register TCCR2 Timer/Counter2 Output Compare Register OCR2 Asynchronous Status Register ASSR Watchdog Timer Watchdog Timer Control Register WDTCR UART Data Register UDR UART UART Status Register USR UART Control Register UCR UART Baud Rate Register UBRR

13 Θύρες-καταχωρητές των μικροελεγκτών AVR Μονάδα Καταχωρητής Σύμβολο EEPROM SPI Analog Comparator Two-wire Serial (I 2 C) Interface TWI ADC EEPROM Adress Register EEPROM Data Register EEPROM Control Register Serial Peripheral Control Register Serial Peripheral Status Register Serial Peripheral Data Register Analog Comparator Control and Status Register TWI Data Register TWI Address Register TWI Bit Rate Register TWI Control Register TWI Status Register Πολυπλέκτης επιλογής 8 γραμμών εισόδου ADC Multiplexer Selection Register ADC Control and Status Register A ADC Data Register (high and low) EEAR EEDR EECR SPCR SPSR SPDR ACSR TWDR TWAR TWBR TWCR TWSR ADCMUX ADCSRA ADCH - L

14 Παράδειγμα λειτουργίας του PIPELINE T1 T2 T3 T4 clk CPU Ανάκληση 1ης εντολής Εκτέλεση 1ης εντολής- ανάκληση 2ης εντολής Εκτέλεση 2ης εντολήςανάκληση 3ης εντολής Εκτέλεση 3ης εντολήςανάκληση 4ης εντολής Στη λειτουργία Pipeline έχουμε συνεχή διοχέτευση εντολών με αποτέλεσμα την παράλληλη ανάκληση και εκτέλεση εντολών. Οπότε, η εκτέλεση των περισσοτέρων εντολών γίνεται σε μία περίοδο του κεντρικού ρολογιού με αποτέλεσμα απόδοση έως 1 MIPS ανά MHz.

15 Αριθμητική Λογική Μονάδα (ALU) του AVR ΓΕΝΙΚΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ALU Δίαυλος δεδομένων 8-bit SREG I T H S V N Z C Είναι η κεντρική μονάδα του επεξεργαστή. Αυτή εκτελεί αριθμητικές, λογικές και σε επίπεδο bit εντολές στη διάρκεια μιας περιόδου και αποθηκεύει το αποτέλεσμα στον καταχωρητή που δείχνει η εντολή. Κατά την εκτέλεση των πράξεων ενημερώνονται οι σημαίες του καταχωρητή κατάστασης (Status register). T1 T2 T3 T4 clk CPU Συνολικός χρόνος εκτέλεσης εντολής Ανάκληση τελεστών των κατ/των Εκτέλεση στην ALU Εγγραφή αποτελέσματος εντολής Διαδικασία εκτέλεσης στην ALU

16 Καταχωρητής κατάστασης (SREG) STATUS REGISTER Bit Σημαία I T H S V N Z C Bit7 (I): καθολική ενεργοποίηση διακοπών (Global Interrupt Enable-GIE). Θέτοντας το bit αυτό ενεργοποιούμε τις διακοπές Bit6 (Τ): σημαία αντιγραφής-αποθήκευσης (bit Copy-Storage). Με χρήση των εντολών BLD και BST επιτυγχάνουμε την ανάγνωση και αποθήκευση συγκεκριμένων bits Bit5 (H): σημαία δεκαδικού κρατουμένου (Half Carry flag). Ενημερώνει για την ύπαρξη δεκαδικού κρατουμένου μετά από αριθμητικές πράξεις Bit4 (S): σημαία προσήμου (Sign flag). Ενημερώνει για το πρόσημο ενός καταχωρητή και ισούται με το OR των σημαιών αρνητικού προσήμου και υπερχείλισης.(s=n or V) Bit3 (V): σημαία υπερχείλισης (Overflow flag) για αριθμητική συμπληρώματος του δύο Bit2 (Ν): σημαία αρνητικού προσήμου (negative flag) Bit1 (Z): σημαία μηδενισμού (Zero flag).τίθεται όταν το αποτέλεσμα μιας πράξης είναι 0 Bit0 (C): σημαία κρατουμένου (Carry flag).

17 Τύποι μνήμης του μικροελεγκτή AVR Μνήμη δεδομένων Μνήμη προγράμματος Μνήμη EEPROM 32 Καταχωρητές εργασίας 64 Καταχωρητές εισόδου-εξόδου Εσωτερική μνήμη RAM $0000 $1F $20 $5F $60 $ bits $0000 Τελική δ/νση Εξωτερική μνήμη RAM 8-bits 16-bits Τελική δ/νση ένας μικροελεγκτής διαθέτει τα εξής είδη μνήμης: μνήμη δεδομένων (1 Κbyte) μνήμη προγράμματος τύπου flash (16KByte) μνήμη EEPROM με αρχική διεύθυνση $0000 και χωρητικότητα από 64bytes ως 4Κbytes.

18 Μνήμη προγράμματος του με AVR Διεύθυνση $0000 Χάρτης μνήμης προγράμματος τμήμα εφαρμογών(application) μνήμης flash τμήμα εκκίνησης(boot) μνήμης flash Διεύθυνση $1FFF τύπου flash για ταχεία αποθήκευση-φόρτωση δεδομένων σύνδεση με δίαυλο των 16-bit για την τροφοδοσία του καταχωρητή εντολών. αποθήκευση εντολών και διανυσμάτων διακοπών (interrupt vectors). Όλες οι εντολές έχουν μήκος 16 bits ή 32 bits ( 2 bytes=1 λέξη), άρα καταλαμβάνουν μία ή δύο θέσεις της μνήμης προγράμματος, αφού η μνήμη flash είναι οργανωμένη σε διάταξη 8Κx16. Ο μετρητής προγράμματος του ATmega16 έχει μήκος 13 bits ώστε να επιτυγχάνει πρόσβαση σε 8K θέσεις μνήμης προγράμματος.

19 Φάσεις ανάγνωσης-εγγραφής στην εσωτερική μνήμη SRAM T1 T2 T3 T4 clk CPU διεύθυνση Υπολογισμός διεύθυνσης Έγκυρη διέυθυνση Δεδομένα προς εγγραφή WR (Παλμός ενεργοποίησης εγγραφής) Δεδομένα ανάγνωσης RD (Παλμός ενεργοποίησης ανάγνωσης) Εγγραφή Ανάγνωση Εντολή πρόσβασης στη μνήμη Επόμενη εντολή

20 Μνήμη δεδομένων του με AVR ΜΝΗΜΗ ΔΕΔΟΜΕΝΩΝ R0 R1 R2 R3 R4 R5 R6 R7 Καταχ/τές εργασίας (00-1F) Καταχ/τές Ι/Ο (20-5F) {00-3F} SRAM ($60-$45F) R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 R30 R31 SREG SPL SPH GIMSK GIFR TIMSK TIFR MCUCR PORTA DDRA PINA PORTB DDRB PINB PORTC DDRC PINC PORTD DDRD PIND TCCR0 TCNT0 TCCR1A TCCR1B TCNT1H TCNT1L OCR1AH OCR1AL ICR1H ICR1L WDTCR EEAR EEDR EECR UDR USR UCR UBRR ACSR A 6B 6C 6D 6E 6F A 7B 7C 7D 7E 7F A 8B 8C 8D 8E 8F A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF Η μνήμη δεδομένων συνδέεται με ένα δίαυλο των 8-bit για την επικοινωνία των περιφερειακών με τους κατ/τές ελέγχου. Η μνήμη δεδομένων χωρίζεται στα τμήματα: 32 καταχωρητές εργασίας (register file) των 8-bits (R0-R31) 64 καταχωρητές εισόδου-εξόδου των 8-bits εσωτερική μνήμη SRAM (για αποθήκευση μεταβλητών και ως στοίβα (stack)) εξωτερική SRAM (1KB).

21 Εντολές του με AVR Οι εντολές της γλώσσας των μικροελεγκτών μπορούν να ομαδοποιηθούν στις παρακάτω τέσσερις κατηγορίες : μεταφοράς δεδομένων αριθμητικών και λογικών πράξεων σε επίπεδο bit και ελέγχου bit ελέγχου ροής του προγράμματος και διακλάδωσης Οι εντολές περιλαμβάνουν 2 τμήματα. Το πρώτο (operation code ή opcode) αποτελεί το λειτουργικό κώδικα που πληροφορεί τον επεξεργαστή για τις ενέργειες που πρέπει να εκτελεστούν. Το δεύτερο τμήμα προσδιορίζει τους τελεστές (r, operand) για τους οποίους θα λειτουργήσει ο κώδικας. Bit Bit Opcode operand d Opcode r operand d

22 Καταχωρητές X, Y, Z έμμεσης διευθυνσιοδότησης X (XH:XL, R27:R26), Y (YH:YL, R29:R28) και Z (ZH:ZL, R31:R30). Επιτρέπουν πρόσβαση στη θέση που δείχνουν (π.χ. ST X, R1), μετά από μείωση της δ/νσης (π.χ. ST -X, R1) ή μετέπειτα αύξηση της δ/νσης (π.χ. ST X+, R1)

23 Εντολές μεταφοράς δεδομένων Πρόκειται για εντολές μεταφοράς δεδομένων μεταξύ καταχωρητών ή μεταξύ κατ/τών και μνήμης ή μεταξύ κατ/τή και σταθεράς. Οι σημαίες δεν επηρεάζονται. Ο κατ/τής είναι ένας από τους 32 καταχωρητές εργασίας R0-R31. MOV Rd, Rr Move Between Registers Rd Rr LDI Rd, K Load Immediate Rd K LD Rd, X Load Indirect Rd (X) LDS Rd, k Load Direct from SRAM Rd (k) ST X, Rr Store Indirect (X) Rr STS k, Rr Store Direct to SRAM (k) Rr LPM Load Program Memory R0 (Z) LPM Rd, Z Load Program Memory Rd (Z) IN Rd, P In Port Rd P OUT P, Rr Out Port P Rr PUSH Rr Push Register on Stack STACK Rr POP Rd Pop Register from Stack Rd STACK

24 Παραδείγματα έμμεσης διευθυνσιοδότησης X (XH:XL, R27:R26), Y (YH:YL, R29:R28) και Z (ZH:ZL, R31:R30). Επιτρέπουν πρόσβαση στη θέση που δείχνουν (π.χ. ST X, R1), μετά από μείωση της δ/νσης (π.χ. ST -X, R1) ή μετέπειτα αύξηση της δ/νσης (π.χ. ST X+, R1) ; εγγραφή ldi r28,$60 clr r29 st y+,data ; ανάγνωση ldi r28,$60 clr r29 ld data,y+ ; η αρχική διεύθυνση είναι $60 και τοποθετείται στον ; καταχωρητή δείκτη Y σαν offset δ/νση ; αποθήκευση περιεχομένων του καταχωρητή data ; στην SRAM και αύξηση της δ/νσης ; η αρχική διεύθυνση είναι $60 και τοποθετείται στον ; καταχωρητή δείκτη Y σαν offset δ/νση ; ανάγνωση περιεχομένων καταχωρητή data από την SRAM ; και αύξηση δ/νσης

25 Πρόσβαση σε δεδομένα εντός της μνήμης προγράμματος Συχνή είναι η χρήση δεικτών για πρόσβαση σε πίνακα δεδομένων εντός της μνήμης προγράμματος. Στο επόμενο παράδειγμα παρουσιάζεται ένας πίνακας με 10 τιμές-λέξεις (16-bit), όπου η έκτη τιμή διαβάζεται και αποθηκεύεται στους καταχωρητές R25:R24. Table: ; οι τιμές του πίνακα είναι οργανωμένες κατά λέξη.dw 0x1234,0x2345,0x3456,0x4567,0x5678.DW 0x6789,0x789A,0x89AB,0x9ABC,0xABCD ; ακολουθεί η ανάγνωση της 6 ης λέξης LDI ZH,HIGH(Table*2) ; η διεύθυνση του πίνακα στον καταχωρητή Ζ. LDI ZL,LOW(Table*2) ; πολλαπλασιασμός επί 2 για πρόσβαση κατά byte ADIW ZL,10 ; δείχνουμε στο έκτο στοιχείο LPM ; ανάγνωση LSB από μνήμη προγράμματος (0x89) MOV R24,R0 ; αντιγραφή LSB στον καταχωρητή R24 (0x89) ADIW ZL,1 ; δείχνουμε στο MSB στη μνήμη προγράμματος LPM ; ανάγνωση του ΜSB (0x67) MOV R25,R0 ; αντιγραφή ΜSB στον καταχωρητή R25

26 Παράδειγμα μεταφοράς δεδομένων Δείκτης στοίβας F Τμήμα εισόδου-εξόδου PORTA $1B DDRA $1A 9 PinA PORTB $19 $18 DDRB $17 Μετρητής Προγράμματος λειτουργικός κώδικας 16- (PC) bit 3C 3D in r1, PORTB... 9 R0 PinB $16 PORTC $15 DDRC $14 PinC $13 Καταχωρητές εργασίας R8 R16 R24 R1 9 R9 R17 R25 R2 R10 R18 R26 Καταχωρητής εντολών Αποκωδικοποιητής εντολών R3 R4 R5 R6 R11 R12 R13 R14 R19 R20 R21 R22 R27 R28 R29 R30 Γραμμές ελέγχου R7 R15 R23 R31

27 Εντολές αριθμητικών και λογικών πράξεων Προϋποθέτουν τη χρήση της αριθμητικής λογικής μονάδας σε αντίθεση με τις εντολές μεταφοράς. Η εντολή διαβάζει τα περιεχόμενα του καταχωρητή, εκτελεί τις πράξεις με αυτά και αποθηκεύει το αποτέλεσμα στον ίδιο ή σε άλλον καταχωρητή. ADD /SUB Rd, Rr Add/ Subtract two Registers Rd Rd +/- Rr ADC /SBC Rd, Rr Add with Carry two Regs Rd Rd +/- (Rr + C) SUBI Rd, K Subtract Constant from Reg Rd Rd K ADIW/ SBIW Rd, K add/subtract Immediate to word Rdh:Rdl Rdh:Rdl +/- K AND/OR/ EOR Rd, Rr AND/OR/XOR Regs Rd Rd /v/ Rr ANDI/ ORI Rd, K AND/OR Reg & Constant Rd Rd /v K COM Rd One s Complement Rd $FF Rd SBR/CBR Rd,K Set/ Clear Bit(s) in Reg Rd Rd v K / ($FF K) INC /DEC Rd Increment /Decrement Rd Rd +/- 1 TST Rd Test for Zero or Minus Rd Rd Rd CLR /SER Rd Clear /Set Reg Rd Rd Rd / Rd $FF MUL Rd, Rr Multiply Unsigned R1:R0 Rd x Rr

28 Παράδειγμα αριθμητικών και λογικών πράξεων Δείκτης στοίβας F No Τελεστής και αποτέλεσμα (Rd):αρχική τιμή R (Rr): R (Rd):τελική τιμή R Μετρητής Προγράμματος λειτουργικός κώδικας 16- (PC) bit R0 R1 Καταχωρητές εργασίας R8 R16 R9 R17 R24 R25 8 3C 3D add r6,r25... R2 R3 R4 R5 R10 R11 R12 R13 R18 R19 R20 R21 R26 R27 R28 R29 R6 A R14 R22 R30 R7 R15 R23 R31 Καταχωρητής εντολών Αποκωδικοποιητής εντολών R6 2 R25 8 ALU I T H S SREG V N Z C R6 A R6 A Γραμμές ελέγχου Δίαυλος δεδομένων 8-bit

29 Παράδειγμα 1 ο : Nα προστεθούν δυο 16-bit αριθμοί, που βρίσκεται στις θέσει μνήμης 0x60-0x61 και 0x62-0x63. Το αποτέλεσμα σώζεται στη διεύθυνση 0x64-0x65 της μνήμης δεδομένων..include "m16def.inc" ; δήλωση μικροελεγκτή.org 0x000 main: ldi xl, 0x60 clr xh ld r1,x+ ld r2,x+ ld r3,x+ ld r4,x+ add r1,r3 adc r2,r4 st x+,r1 st x,r2.exit ; κυρίως πρόγραμμα ; θέτουμε διεύθυνση 0x60 στον καταχωρητή X ; όπου xl=r26, xh=r27 ; ανάγνωση θέσης μνήμης, αποθήκευση σε κατ/τη ; και αύξηση δείκτη για επόμενη θέση ; ανάγνωση 0x61 ; ανάγνωση 0x62 ; ανάγνωση 0x63 ; πρόσθεση λιγότερο σημαντικών byte ; πρόσθεση περισσότερο σημαντικών byte με κρατούμενο ; αποθήκευση αποτελέσματος στη διεύθυνση ; 0x64 και 0x65

30 Πρόσθεση δυο 16-bit αριθμών Number 1 r2 $061 r1 $060 Number 2 r4 r3 + $063 $062 = Sum r2 r1 $065 $064

31 Εντολές σε επίπεδο bit και ελέγχου bit Οι εντολές αυτές μας παρέχουν τη δυνατότητα να θέσουμε ή να μηδενίσουμε σημαίες του καταχωρητή κατάστασης, διακοπές και συγκεκριμένα bit καταχωρητών ή θυρών. Επίσης, να ολισθήσουμε κάποιον κατ/τή μέσω κρατουμένου ή όχι. SBI/ CBI P,b Set/Clear Bit in I/O Reg I/O(P,b) 1/ 0 LSL/ LSR Rd Logical Shift Left/ Right Rd(n+1) Rd(n), Rd(0) 0 ROL Rd Rotate Left Through Carry Rd(0) C,Rd(n+1) Rd(n),C Rd(7) ROR Rd Rotate Right Through Carry Rd(7) C,Rd(n) Rd(n+1),C Rd(0) ASR Rd Arithmetic Shift Right Rd(n) Rd(n+1), n=0..6 SWAP Rd Swap Nibbles Rd(3-0) Rd(7-4) Rd(7-4) Rd(3-0) BSET/BCLR s Flag Set/Clear SREG(s) 1/ 0 BST Rr, b Bit Store from Reg to T T Rr(b) BLD Rd, b Bit load from T to Reg Rd(b) T SΕx Set Flag x 1 όπου x=σημαία (SREG) CLx Clear Flag x 0 όπου x=σημαία (SREG)

32 Παράδειγμα σε επίπεδο bit και ελέγχου bit Δείκτης στοίβας F No Τελεστής και αποτέλεσμα Σημαία Τ No bit (Rd):R Μετρητής Προγράμματος λειτουργικός κώδικας 16- (PC) bit R0 R1 Καταχωρητές εργασίας R8 R16 R9 R17 R24 R25 0A 3C 3D bst r25,3... R2 R3 R4 R5 R10 R11 R12 R13 R18 R19 R20 R21 R26 R27 R28 R29 R6 R14 R22 R30 R7 R15 R23 R31 R25 0A Καταχωρητής εντολών Αποκωδικοποιητής εντολών ALU I T H S SREG V N Z C R25 0A Γραμμές ελέγχου Δίαυλος δεδομένων 8-bit

33 Θύρες εισόδου-εξόδου Data Bus DDRx 0=in 1=out Όπου x=a,b,c,d VDD Pull-up Αντίσταση PORTx ΕΞΟΔΟΣ s sw1 sw2 Για DDRx=1, sw1 ON έξοδος s Για DDRx=0, είσοδος d και αν PORTx=1 sw2, sw3 ON αντίσταση pull-up PINx sw3 Έξοδος s ΕΙΣΟΔΟΣ d Input DDRx=0 Είσοδος d Physical PIN Px0-7 Ο επεξεργαστής επικοινωνεί με τις διάφορες μονάδες γράφοντας ή διαβάζοντας στις θύρεςκατ/τές: PORTA, PORTB, PORTC και PORTD. Οι ακροδέκτες είναι διπλής κατεύθυνσης και ελέγχονται από το αντίστοιχο bit του καταχωρητή κατεύθυνσης που καλείται DDRx. Ο καταχωρητής PORTx περιέχει τα δεδομένα της αντίστοιχης θύρας. Η διεύθυνση ακροδεκτών εισόδου PINx δεν είναι καταχωρητής. Αυτή η διεύθυνση επιτρέπει την πρόσβαση στις λογικές στάθμες κάθε ακροδέκτη της θύρας PORTx. Για οικονομία ακροδεκτών, οι είσοδοι-έξοδοι των περιφερειακών όπως: A/D μετατροπέας, οι σειριακές θύρες κλπ, χρησιμοποιούν τους ίδιους ακροδέκτες με τις θύρες.

34 2. Πρόγραμμα που υπολογίζει το τετράγωνο ενός αριθμού με βάση έναν πίνακα δεδομένων, που περιέχει τα τετράγωνα των αριθμών, εντός της μνήμης προγράμματος. Ο αριθμός ανήκει στο διάστημα [0,15]. start: clr temp ; Όταν ένα bit του κατ/τη κατεύθυνσης DDRD είναι 0 out DDRD, temp ; αυτή η θέση γίνεται είσοδος. ; ο assembler δεν είναι case sensitive LDI ZH, HIGH(Table*2) ; η δ/νση του πίνακα στον κατ/τη Ζ LDI ZL, LOW(Table*2) ; πολλαπλασιασμός επί δύο για πρόσβαση κατά byte ; όπου zl=r30, zh=r31 in temp,pind ; ανάγνωση αριθμού, έστω από θύρα D add zl, temp ; πρόσβαση στο σωστό στοιχείο ; χρήση lpm για πρόσβαση στη μνήμη προγράμματος. lpm ; Το περιεχόμενο της θέσης μνήμης προγράμματος που ; δείχνει o Ζ φορτώνεται στον καταχωρητή R0. Δηλ. R0 (Z) mov r22,r0 ; μεταφορά αποτελέσματος στον r22 rjmp start ; Άλμα στη διεύθυνση start για ατέρμονα λειτουργία ; Οι οδηγίες.db και.dw προς μεταφραστή χρησιμοποιούνται για εισαγωγή πίνακα ; δεδομένων στη μνήμη προγράμματος. Table: ; οι τιμές του πίνακα οργανωμένες κατά λέξη.dw 0x0100,0x0904,0x1910,0x3124,0x5140.DW 0x7964,0xA990,0xE1C4

35 3. Παράδειγμα εντολών σε επίπεδο bit Στο παράδειγμα αυτό γίνεται η παρουσίαση εντολών που επιτρέπουν τον χειρισμό σε επίπεδο bit, χρήσιμα στην επίλυση προβλημάτων συνδυαστικής λογικής. Πιο συγκεκριμένα υποθέτουμε ότι οι λογικές μεταβλητές A, B, C, D και E βρίσκονται συνδεδεμένες στα 5 πρώτα LSB της θύρας PORTD. Να δοθεί το assembly πρόγραμμα που υλοποιεί τη λογική εξίσωση: ΕΞΟΔΟΣ(LED5) = (A+B )*(C*D+E) Το ένα bit της εξόδου παρέχεται από το 5ο bit της θύρας PORTB..include "m16def.inc".def A=r16 ; δήλωση καταχωρητών.def BN=r17 ; συμπλήρωμα.def C=r18.DEF D=r19.DEF E=r20.DEF temp=r21.cseg.org 0 ; διεύθυνση εκκίνησης (MSB) x x x Ε D C B A (LSB) PORT D PORT B Μικροελεγκτής AVR (MSB) x x x ΕΞΟΔΟ LED5 x x x x (LSB)

36 3. Πρόγραμμα που υλοποιεί τη λογική συνάρτηση: ΕΞΟΔΟΣ(LED5) = (A+B )*(C*D+E) start: clr temp ; θύρα D ως είσοδος out DDRD,temp ser temp out PORTD,temp ; pull-up θύρας D out DDRB,temp ; θύρα Β ως έξοδος again: in temp, PIND ; ανάγνωση ακροδεκτών PORTD mov A, temp ; το Α στο LSB του καταχωρητή Α lsr temp mov BN, temp ; το Β στο LSB του καταχωρητή ΒN com BN ; συμπλήρωμα B lsr temp mov C, temp ; το C στο LSB του καταχωρητή C lsr temp mov D, temp ; το D στο LSB του καταχωρητή D lsr temp mov E, temp ; το E στο LSB του καταχωρητή E or A, BN ; A=A+B and C,D ; C=C D or C,E ; C=C D+E and A,C ; υλοποίηση συνδυαστικής λογικής A=(A+B ) (C D+E) andi A, 1 ; απομόνωση του LSB lsl A (x4) ; 4 ολισθήσεις αριστερά για να έρθει το αποτέλεσμα στη σωστή θέση out PORTB,A ; έξοδος αποτελέσματος rjmp again ; άλμα στη διεύθυνση again για επανάληψη

37 3. Εναλλακτικά η υλοποίηση της λογικής συνάρτησης: ΕΞΟΔΟΣ(LED5) = {A B +C E + D E } ή A C D+A E +B C D+B E AGAIN: in temp, PIND mov r16, temp andi r16, 0x03 cpi r16,0x02 breq ZERO mov r16, temp andi r16, 0x14 breq ZERO mov r16, temp andi r16, 0x18 breq ZERO ldi r16, 0x10 rjmp ΟΝΕ ZERO: clr r16 ΟΝΕ: out PORTB, r16 rjmp AGAIN ; ανάγνωση ακροδεκτών PORTD ; το Α στο LSB του καταχωρητή Α ; απομόνωση των A και B ; συγκρίνεται για Α=0 και Β=1. Μόνο τότε A B=1 ; Αν ισχύει F=0, άλμα στη διεύθυνση ZERO ; Αλλιώς ελέγχω τον επόμενο όρο C E ; απομόνωση των C και E. Αν C=E=0, C E =1 ; Αν ισχύει F=0, άλμα στη διεύθυνση ZERO ; Αλλιώς ελέγχω αν ο τελευταίος όρος D E =1 ; απομόνωση των D και E. Αν D=E=0, D E =1 ; Αν ισχύει F=0, άλμα στη διεύθυνση ZERO ; Αλλιώς F=1. ; Αν είναι από άλμα F=0. Ακολουθεί το κοινό τμήμα ; Έξοδο αποτελέσματος στο PORTΒ.4 ; άλμα στη διεύθυνση AGAIN για επανάληψη

38 Εντολές ελέγχου ροής και διακλάδωσης Πρόκειται για εντολές άλματος, παράκαμψης, διακλάδωσης και κλήσης ρουτινών. Δηλ. αλλάζει η κανονική ακολουθιακή ροή του προγράμματος. Οι εντολές παράκαμψης και διακλάδωσης είναι υπό συνθήκη. εντολές διακλάδωσης & παράκαμψης BRBS/BRBC s,k Branch if Status Flag 1/0 If (SREG(s)=1) then PC PC+k+1 BREQ/BRNE k Branch if Equal/ Not Equal if (Z = 1) then PC PC + k + 1 BRCS/BRCC k Branch if Carry 1/0 if (C = 1) then PC PC + k + 1 BRSH/BRLO k Branch if Same or >/ < if (C = 0) then PC PC + k + 1 BRGE/BRLT k Branch if > or =, Signed if (NV= 0) then PC PC + k+ 1 BRHS/BRHC k Branch if Half_Carry 1/0 if (H = 1) then PC PC + k + 1 BRTS/ BRTC k Branch if T Flag 1/0 if (T = 1) then PC PC + k + 1 BRVS/BRVC k Branch if Overflow Flag1/0 if (V = 1) then PC PC + k + 1 BRIE/ BRID k Branch if Int 1/0 Disabled if ( I = 1) then PC PC + k + 1 SBRC/SBRS Rr, b Skip if Bit in Reg 0/1 if (Rr(b)=0) PC PC + 2 or 3 SBIC/ SBIS P, b Skip if Bit in I/O Reg 0/1 if (P(b)=0) PC PC + 2 or 3

39 Εντολές άλματος-ρουτινών & σύγκρισης Παρέχουν τη δυνατότητα να εκτελέσουμε άλμα σε επιθυμητή διεύθυνση, να καλέσουμε μια ρουτίνα και να επιστρέψουμε από αυτήν. Οι εντολές σύγκρισης παρέχουν τη δυνατότητα να συγκρίνουμε δύο καταχωρητές ή έναν καταχωρητή και μια σταθερά. RJMP k Relative Jump PC PC+ k+1 IJMP Indirect Jump to (Z) PC Z JMP k Direct Jump PC k RCALL k Relative Subroutine Call PC PC+k+1 ICALL Indirect Call to (Z) - Η διεύθυνση επιστροφής (PC) αποθηκεύεται στη στοίβα. CALL k Direct Subroutine Call - Η διεύθυνση επιστροφής (PC) αποθηκεύεται στη στοίβα. PC Z STACK PC PC k, STACK PC RET Subroutine Return PC STACK RETI Interrupt Return PC STACK CP Rd, Rr Compare Rd < Rr CPI Rd, K Compare Reg with Immediate Rd < K

40 Παράδειγμα άλματος-ρουτινών Δ/ΝΣΗ - Τμήμα μνήμης SRAM PC λειτουργικός κώδικας 16-bit 007C F= RAMEND rcall label nop nop... Label: nop ret PC ß PC+k+1 μετά την κλήση Δείκτης στοίβας Τιμή πριν την κλήση:0 0 7 F τιμή μετά την κλήση:0 0 7 D πριν την κλήση κλήση ρουτίνας Μετρητής Προγράμματος PC ß PC+k

41 Διευθυνσιοδότηση με AVR Επιπλέον οι εντολές ταξινομούνται με βάση τον τρόπο που επιτυγχάνεται πρόσβαση στα δεδομένα και τις πράξεις που εκτελούνται με αυτά. Πρόκειται για τους τρόπους διευθυνσιοδότησης του προγράμματος και των δεδομένων. Η διευθυνσιοδότηση διακρίνεται σε άμεση και έμμεση: ΜΝΗΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ Χώρος Προγράμματος 16-bit Μετρητής Προγράμματος ΜΝΗΜΗ ΔΕΔΟΜΕΝΩΝ Χώρος δεδομένων 8-bit Καταχ/τές εργασίας (00-1F) Άμεση διευθυνσιοδότηση Έμμεση διευθυνσιοδότηση Καταχ/τές Ι/Ο (20-5F) {00-3F} SRAM (60-DF)

42 Άμεση διευθυνσιοδότηση ενός καταχωρητή Η εντολή διαβάζει τα περιεχόμενα του καταχωρητή, εκτελεί τις πράξεις με αυτά και αποθηκεύει το αποτέλεσμα στον ίδιο καταχωρητή. Ο καταχωρητής είναι ένας από τους 32 καταχωρητές εργασίας R0-R31 που διαθέτουν το αντίστοιχο τμήμα μνήμης(register file). Bit Register File 0 Opcode operand d d Ομάδα καταχωρητών εργασίας 31 Παραδείγματα τέτοιων εντολών είναι: INC Rd: Αύξηση των περιεχομένων του καταχωρητή Rd κατά μία μονάδα.

43 Άμεση διευθυνσιοδότηση δύο καταχωρητών Η εντολή διαβάζει τα περιεχόμενα των δυο καταχωρητών, εκτελεί την πράξη μεταξύ των δεδομένων και αποθηκεύει το αποτέλεσμα στον καταχωρητή προορισμού Rd. Bit Register File 0 Opcode r operand d d r Ομάδα καταχωρητών εργασίας 31 Παραδείγματα τέτοιων εντολών είναι:add Rd,Rr, MOV Rd,Rr

44 Απευθείας διευθ/τηση των θυρών εισόδου-εξόδου H πρόσβαση στις θέσεις μνήμης που αντιστοιχούν οι θύρες εισόδουεξόδου (Ι/Ο memory) επιτυγχάνεται με 2 εντολές: της ΙΝ Rd,PortAddress και της OUT PortAddress,Rr, όπου PortAddress είναι η διεύθυνση του καταχωρητή εισόδου-εξόδου. Bit I/O Memory 0 Opcode n P d Τμήμα μνήμης των θυρών εισόδου-εξόδου 63 Kbyte Παραδείγματα τέτοιων εντολών είναι :ΙΝ PINB,Rr, OUT PORTD,Rr

45 Άμεση διευθυνσιοδότηση μνήμης δεδομένων H πρόσβαση στις θέσεις μνήμης επιτυγχάνεται με εντολές μήκους 2 λέξεων, όπου η μία λέξη (16 bits) αντιστοιχεί στη διεύθυνση της μνήμης δεδομένων. Άρα, ο χώρος μνήμης όπου επιτυγχάνεται πρόσβαση είναι 64Kbyte. Bit Opcode Rr/Rd 16 LSB ψηφία $0000 θέση μνήμης $FFFF Μνήμη δεδομένων Παραδείγματα τέτοιων εντολών:sts K,Rr/ LDS Rd,K, όπου Κ διεύθυνση 16 bits

46 Έμμεση διευθυνσιοδότηση μνήμης δεδομένων Οι εντολές αυτές έχουν μήκος 1 λέξης και χρησιμοποιούν έναν κατ/τή δείκτη (X,Y,Z), το περιεχόμενο του οποίου αντιστοιχεί στη διεύθυνση της μνήμης δεδομένων. Ο κατ/τής δείκτη X,Y,Z μπορεί να αυξηθεί κατά μία μονάδα μετά την ανάθεση της τιμής στον κατ/τη Rr, ώστε να δείχνει σε επόμενη θέση μνήμης ή να μειωθεί κατά μία μονάδα πριν την ανάθεση της τιμής στον κατ/τη Rr, ώστε να δείχνει σε προηγούμενη θέση μνήμης ή να έχουμε έμμεση φόρτωση του κατ/τή Rd με τα περιεχόμενα της θέσης μνήμης (Υ+q), ώστε να επιτύχουμε πρόσβαση σε παραπέρα θέση μνήμης. Πρόκειται δηλαδή για μετατόπιση. Bit Opcode n α Data Memory $0000 δ/νση offset + θέση μνήμης Bit 15 0 καταχωρητής δείκτη Χ ή Υ ή Ζ $FFFF Μνήμη δεδομένων Παραδείγματα :ST Χ,Rr LD Rr,Y LD Rr,X+ ST Χ+,Rr LD Rr,-Ζ ST X,Rd LDD Rd,Y+2 ST Y+6,Rd

47 Σχετική διευθυνσιοδότηση μνήμης προγράμματος Οι εντολές αυτές επιτυγχάνουν πρόσβαση σε χώρο μνήμης προγράμματος και είναι του τύπου RCALL, RJMP, όπου χρησιμοποιείται μια μετατόπιση +/- 2K στο περιεχόμενο του μετρητή προγράμματος. Bit 15 Μετρητής προγράμματος (PC- Program Counter) 0 Program Memory $000 + θέση μνήμης Bit Opcode k $7FF/FFF Μνήμη προγράμματος Παραδείγματα : RCALL, RJMP

48 Έμμεση διευθυνσιοδότηση μνήμης προγράμματος Οι εντολές αυτές επιτυγχάνουν πρόσβαση σε χώρο μνήμης προγράμματος έως 64Kbytes με χρήση του καταχωρητή Ζ, ως δείκτη μιας θέσης μνήμης προγράμματος. Bit 15 0 καταχωρητής δείκτη Ζ Program Memory $000 θέση μνήμης Μνήμη προγράμματος $7FF/$FFF Παραδείγματα : ΙCALL, ΙJMP

49 Στοίβα Η στοίβα χρησιμοποιείται από την αριθμητική λογική μονάδα (ALU) για αποθήκευση διευθύνσεων επιστροφής από ρουτίνες διακοπής-υπορουτίνες. Η στοίβα χρειάζεται έναν δείκτη στοίβας (SP) και χώρο μνήμης στην SRAM. Πρόκειται, λοιπόν, για δομή τύπου Last-In-First-Out (LIFO). Μια δ/νση SRAM έχει μήκος 16 bits, οπότε ο κατ/της SPL κρατά τα 8 LSB bits και ο SPH τα 8 MSB bits της δ/νσης. Μνήμη RAM Μνήμη RAM. RAMEND δείκτης στοίβας Διεύθυνση επιστροφής δείκτης στοίβας Ο SP τίθεται στη τελευταία θέση μνήμης (RAMEND) κατά την αρχικοποίηση

50 Παράδειγμα 4 ο : Εντολές ελέγχου ροής του προγράμματος και διακλάδωσης Το πρόγραμμα βρίσκει αν η τιμή (num) που δίνεται από το PORTD είναι σε περιοχή της μνήμης δεδομένων SRAM που η πρώτη διεύθυνση βρίσκεται στον καταχωρητή X= r27:r26 και το πλήθος τους, στον καταχωρητή r21 (count). Αν βρει τη τιμή, θέτει στον καταχωρητή r22 τιμή 1 και τη διεύθυνση που βρήκε το δεδομένο (μέσω του καταχωρητή δείκτη X), αλλιώς θέτει 0 στον καταχωρητή r22 (flag). ΑΡΧΗ num< PORTD data < (Χ) X < X+1 data=num? OXI count < count -1 NAI OXI count =0? NAI flag=1 flag=0 X < X-1 ΤΕΛΟΣ

51 Το πρόγραμμα βρίσκει αν η τιμή που δίνεται από τον χρήστη από το PORTD είναι σε περιοχή της μνήμης προγράμματος. Αν ναι επιστρέφει τη διεύθυνση, αλλιώς θέτει 0 στον r22..include "m16def.inc".def flag=r22.def count=r21.def num=r20.def data=r19 start: clr num ; το PORTD ορίζεται ως είσοδος out DDRD,num in num,pind ; ανάγνωση αριθμού από PORTD loop: ld data,x+ ; φόρτωση θέσης Χ μνήμης δεδομένων και αύξηση ; δείκτη για πρόσβαση στον επόμενο κύκλο σε επόμενη θέση cp data,num ; σύγκριση του εισαγώμενου αριθμού με θέση μνήμης breq found ; η τιμή βρέθηκε στον πίνακα not_found: dec count ; μειώνω τον μετρητή brne loop ; έλεγχος για να μην περάσουμε το δοσμένο πλήθος clr flag ; αν η τιμή δεν βρέθηκε μηδενίζουμε τον r22 rjmp end found: ; η τιμή βρέθηκε στον πίνακα οπότε ldi flag,1 ; θέτουμε τον r22 και επιστρέφουμε την αντίστοιχη sbiw r26,1 ; διεύθυνση στον X= r27 : r26 αφού το μειώσουμε κατά 1 end:

52 Παράδειγμα 5ο Να υπολογιστεί πόσες φορές εμφανίζεται ένας χαρακτήρας, που η τιμή του δίνεται από το PORTD, σε περιοχή της μνήμης δεδομένων SRAM που η πρώτη διεύθυνση βρίσκεται στον καταχωρητή X=r27:r26 και το πλήθος τους, στον καταχωρητή r21 (count1). Το πλήθος των εμφανίσεων του χαρακτήρα επιστρέφεται μέσω του καταχωρητή r22 (count2). ΑΡΧΗ num< PORTD Data (Χ) X X+1 data=num? NAI count2< count2 +1 OXI count1< count1-1 OXI count1 =0? NAI ΤΕΛΟΣ

53 Παράδειγμα 5 ο : Αναζήτηση ενός χαρακτήρα.include "m16def.inc".def count2=r22.def count1=r21.def num=r20.def data=r19 start: clr num ; το PORTD ορίζεται ως είσοδος out DDRD,num in num,pind ; ανάγνωση αριθμού από PORTD loop: ld data,x+ ; φόρτωση θέσης Χ μνήμης δεδομένων και ; αύξηση δείκτη (Χ Χ+1) για πρόσβαση στον επόμενο κύκλο σε επόμενη θέση cp data,num ; σύγκριση του εισαγόμενου αριθμού με θέση μνήμης brne not_found ; η τιμή δεν βρέθηκε στον πίνακα inc count2 not_found: dec count1 ; μειώνω τον μετρητή brne loop ; έλεγχος για να μην περάσουμε το δοσμένο πλήθος end:

54 Παράδειγμα 6 ο Το πρόγραμμα εντοπίζει τον μέγιστο και τον ελάχιστο σε περιοχή της μνήμης προγράμματος όπου έχουν αποθηκευθεί συνολικά 256 δεδομένα (των 8 bit). ΑΡΧΗ count=256? OXI data< (Z) Z < Z+1 NAI ΤΕΛΟΣ data>max? NAI OXI OXI data<min? NAI max< data min < data

55 Παράδειγμα 6 ο : Το πρόγραμμα εντοπίζει τον μέγιστο και τον ελάχιστο.include "m16def.inc".def count=r18.def data=r17.def max=r16.def min=r15 begin: ldi ZH,HIGH(Array *2) ldi ZL,LOW(Array *2) ; η διεύθυνση του πίνακα στον Ζ lpm data,z+ ; φόρτωση μνήμης προγράμματος mov max, data mov min, data clr count ; το count γίνεται 0 search: inc count breq end ; Έλεγχος αν μηδενίστηκε ο count ; Συνολικά 255 φορές θα εκτελεστεί ; ο βρόχος που ακολουθεί

56 Παράδειγμα 6 ο - συνέχεια lpm data,z+ cp data,max brge new_max cp data,min brlo new_min rjmp search new_max: mov max, data rjmp search new_min: mov min, data rjmp search end: ; πρόσβαση σε επόμενη θέση και αύξηση δείκτη Z ; σύγκριση με μέγιστο ; άλμα εφόσον βρεθεί μεγαλύτερη τιμή ; σύγκριση με ελάχιστο ; άλμα εφόσον βρεθεί μικρότερη τιμή ; επιστροφή στην αναζήτηση ; σώσιμο στο max της νέας μέγιστης τιμής ; επιστροφή στην αναζήτηση ; σώσιμο στο min της νέας ελάχιστης τιμής ; επιστροφή στην αναζήτηση Array: ; εισαγωγή πίνακα δεδομένων στη μνήμη προγράμματος.dw 0x0908,0x0706,0x1713,0x3326.DW 0x3042,0x7061,0x7205,0x7803

57 Παράδειγμα 7ο: Χρήση της εντολής LPM Στο παράδειγμα αυτό επιδεικνύεται η χρήση της εντολής LPM για ανάγνωση bytes από πίνακα δεδομένων στο τμήμα κώδικα (code segment). Συγκεκριμένα, διαβάζονται διακόπτες που υποθέτουμε ότι είναι συνδεδεμένοι στο PORTD και ανάβουν τα leds (PORTB ως έξοδος των Leds) που αντιστοιχούν στα δεδομένα του πίνακα δεδομένων στο τμήμα κώδικα (δηλαδή: sw0 ανάβει led0, sw1 ανάβει led0 και led1, sw2 ανάβει τα led0, led1 και led2, κοκ) : Απλούστερα θα μπορούσε να υπολογιστεί από τη σχέση: led=2*sw-1

58 Παράδειγμα 7ο: Χρήση της εντολής LPM (1).INCLUDE "m16def.inc" ; δήλωση μικροελεγκτή.list.def reg=r0 ; η εντολή LPM χειρίζεται τον καταχωρητή R0.DEF temp=r16 start: clr temp ; PORTD ως είσοδος των διακοπτών out DDRD,temp dec temp ; φόρτωση τιμής 0xFF στον καταχωρητή temp out DDRB,temp ; PORTB ως έξοδος των Leds out PORTD,temp ; ενεργοποίηση εσωτερικών αντιστάσεων πρόσδεσης ; χρήση καταχωρητή δείκτη Ζ: {ZL (R30) και ZH (R31)} ; που έχει οριστεί στο αρχείο m16def.inc loop: ldi ZL,LOW(array) ; ο Z δείχνει στο 1ο byte (FF) της λίστας ldi ZH,HIGH(array) in temp,pind ; ανάγνωση διακοπτών cpi temp,0xff ; αν όλοι οι διακόπτες off, τότε όλα τα Leds off breq diavasma ; άλμα στο diavasma αν όλοι οι διακόπτες είναι off inc_pointer: ; Προσοχή στην αρνητική λογική των διακοπτών! adiw ZL, 1 ; Αυξάνεται το Z μέχρι να βρεθεί η πρώτη μονάδα ror temp ; καθώς ολισθαίνει δεξιά η τιμή των διακοπτών. brlo inc_pointer ; Όσο το C=1 έχουμε άλμα και αύξηση του Z (επίσης η εντολή brcs).

59 Παράδειγμα 7ο: Χρήση της εντολής LPM (2) diavasma: ; Όταν C=0 γίνεται ανάγνωση του byte της λίστας. lpm ; Η θέση που δείχνει ο Ζ εγγράφεται στον R0. out PORTB,reg ; Μεταφορά του δεδομένου στα leds. rjmp loop ; Η χρήση του.db xx στη μνήμη προγράμματος πάντα προσθέτει ένα μηδενικό byte. ; Γι αυτό προτιμάται η χρήση του.dw ;xx,yy (2 δεδομένα ενώνονται σε μια λέξη). ; Αντίστοιχα ισχύει σε κείμενο χαρακτήρων, δηλ..db atmel αποδοτικότερα ; εγγράφεται ως.dw. Αν ο αριθμός των bytes ή χαρακτήρων είναι περιττός θα ; πρέπει να συμπληρωθεί η λίστα με ένα μηδενικό. ; Πίνακας με τους συνδυασμούς των leds, όπου κάθε byte αντιστοιχεί σε ένα ; διακόπτη. Οι τιμές τοποθετούνται κατά λέξεις για αποδοτικότερη χρήση της μνήμης table:.dw 0xFEFF ; 1 Led, 0 Leds.DW 0xF8FC ; 3 Leds, 2 Leds.DW 0xE0F0 ; 5 Leds, 4 Leds.DW 0x80C0 ; 7 Leds, 6 Leds ; Όταν προσθέτουμε μια λέξη όπως FEFFh σε λίστα, το 1ο byte της λίστας που ; λαμβάνεται μέσω της εντολής LPM είναι το LSB (FFh), και όχι το MSB (FEh). ; Η πρόσβαση στη λίστα γίνεται κατά byte, ενώ οι διευθ. οργανώνονται κατά λέξεις.equ array=table*2

60 8 ο Αναβοσβήνει τα leds παρεμβάλλοντας χρονική καθυστέρηση σε κάθε κατάσταση, για να γίνουν ορατές οι αλλαγές:.include "m16def.inc" ; δηλώνουμε μικροελεγκτή.def reg = R16.def Delay = r17 ; καταχωρητής μεταβλητής Delay.def Delay2 = r18 ; καταχωρητής μεταβλητής Delay2 main: ldi reg,0b out DDRB,reg DLY: dec Delay brne DLY dec Delay2 brne DLY ldi reg,0x00 out PORTB,reg DLY2: dec Delay brne DLY2 dec Delay2 brne DLY2 ldi reg,0xff out PORTB,reg rjmp main ; ορίζουμε το PORTB ως έξοδο ; Καθυστέρηση για να γίνουν ορατές οι αλλαγές ; (0=on, 1=off). ; άναμμα των leds ; Καθυστέρηση για να γίνουν ορατές οι αλλαγές ; σβήσιμο των leds και ατέρμων βρόχος ; για συνεχή επανάληψη της διαδικασίας

61 Παράδειγμα 9 ο : Χειρισμός στα leds με βάση τη τιμή των switches Στο παράδειγμα γίνεται χειρισμός στα leds με βάση τη τιμή των switches που συνδέονται στις θύρες PORTB και PORTD αντίστοιχα. Η συμπεριφορά των leds καθορίζεται με βάση ποιος διακόπτης πιέζεται ως εξής: Υποθέτουμε ότι δεν πιέζονται ταυτόχρονα περισσότεροι του ενός διακόπτες. Επίσης έχει τεθεί αρχική κατάσταση OFF για όλα τα LEDS. PORTD-switches pin0=1 pin1=1 pin2=1 pin3=1 pin4=1 pin5=1 pin6 =1 pin7= 1 PORTB - LEDS Μέτρηση LEDS κάτω Μέτρηση LEDS πάνω Ολίσθηση LEDS μία θέση δεξιά Ολίσθηση LEDS μία θέση αριστερά Αντιστροφή LEDS Συμπλήρωμα ως προς 2 των LEDS Εναλλαγή 4 LSB με τα 4 MSB Τα 4 LSB ON και τα 4 MSB OFF

62 Παράδειγμα 9 ο : Αρχικοποιήσεις.include "m16def.inc".def Temp =r16.def Delay =r17.def Delay2 =r18 ; προσωρινός καταχωρητής ; καταχωρητής μεταβλητής Delay ; καταχωρητής μεταβλητής Delay2 RESET: clr Temp ; αρχικοποίηση του PORTD out DDRD,Temp ; ως θύρας εισόδου ser Temp ; αρχικοποίηση του PORTB out DDRB,Temp ; ως θύρας εξόδου out PORTD,Temp ; ενεργοποίηση των αντιστάσεων πρόσδεσης ; Έλεγχος input/output

63 Παράδειγμα 9 ο : Κύριο πρόγραμμα LOOP: sbic PIND,0x00 ; Αν (Port D, pin0 = 1) inc Temp ; τότε μέτρηση LEDS μια μονάδα προς τα κάτω sbic PIND,0x01 ; Αν (Port D, pin1 = 1) dec Temp ; τότε μέτρηση LEDS μια μονάδα προς τα πάνω sbic PIND,0x02 ; Αν (Port D, pin2 = 1) ror Temp ; τότε ολίσθηση LEDS μία θέση δεξιά sbic PIND,0x03 ; Αν (Port D, pin3 = 1) rol Temp ; τότε ολίσθηση LEDS μία θέση αριστερά sbic PIND,0x04 ; Αν (Port D, pin4 = 1) com Temp ; τότε αντιστροφή LEDS sbic PIND,0x05 ; Αν (Port D, pin5 = 1) neg Temp ; τότε αντιστροφή LEDS και πρόσθεση 1 sbic PIND,0x06 ; Αν (Port D, pin6 = 1) τότε swap Temp ; εναλλαγή των τμημάτων high και low των LEDS sbic PIND,0x07 ; Αν (Port D, pin7 = 1) ldi Temp,0xF0 out PORTB,Temp ; ενημέρωση LEDS DLY: dec Delay ; καθυστέρηση για να γίνουν ορατές οι αλλαγές brne DLY dec Delay2 brne DLY rjmp LOOP ; επανάληψη βρόχου

64 Παράδειγμα 10 ο : Χειρισμός διακοπτών εισόδου και led εξόδου - 2 Με το πάτημα ενός διακόπτη (ή και περισσότερων) από τα 4 δεξιότερα switches (PORTD) ανάβει το αντίστοιχο led (PORTB) και όσο είναι πατημένο να το περιστρέφει κυκλικά προς τα δεξιά. Αντίστοιχα, πάτημα ενός διακόπτη από τα 4 αριστερότερα να προκαλεί αριστερή περιστροφή. Όταν δεν είναι πατημένο κανένα switch να σβήνουν όλα τα leds..include "m16def.inc".def temp=r16.def tempn=r17.def Delay1=r18.def Delay2=r19 RESET: ldi temp,low(ramend) ; αρχικοποίηση out SPL, temp ; δείκτη στοίβας ldi temp,high(ramend) out SPH,temp clr temp out DDRD,temp ; DDRD ως θύρα εισόδου ser temp ; DDRB ως θύρα εξόδου και out DDRB,temp ; τίθενται οι αντιστάσεις out PORTD,temp ; πρόσδεσης (pull-up) ΑΡΧΗ Read switches sw0-3=1? OXI delay sw4-7=1? OXI ΤΕΛΟΣ NAI NAI Rotate right Rotate left

65 Παράδειγμα 10 ο : Χειρισμός διακοπτών εισόδου και led εξόδου - 2 ARXH: in temp,pind mov tempn,temp com tempn RIGHT: andi tempn, 0x0F ; αντίγραφο των διακοπτών σε θετική λογική ; στον καταχωρητή tempn ; Αν οποιωσδήποτε των διακοπτών sw0-3 breq CONT ; πατηθεί έχουμε 0 και δεν εκτελειται άλμα ; Αν θέλουμε ο έλεγχος να γίνει σε αρνητική λογική τότε έχουμε τον κώδικα: ; ori temp, 0xF0 ; Αν πατηθεί ένα από τα sw0-3 έχουμε ; cpi temp, 0xFF ; κάποιο 0 και η σύγκριση τότε δεν δίνει ; breq CONT ; ισότητα οπότε δεν εκτελείται άλμα ror temp out PORTB,temp CONT: rcall DELAY LEFT: andi tempn, 0xF0 breq RIGHT rol temp out PORTB,temp rjmp ARXH DELAY: dec Delay2 brne DELAY dec Delay1 brne DELAY ret ; αλλά έχουμε περιστροφή δεξιά. ; Αν οποιοσδήποτε εκ των διακοπτών sw4-7 ; πατηθεί έχουμε 0 και δεν εκτελείται άλμα ; αλλά έχουμε περιστροφή αριστερά. ; Ρουτίνα χρονοκαθυστέρησης όπου ; οι 2 πρώτες εντολές εκτελούνται ; Delay2* Delay1 φορές

66 Παράδειγμα 11 ο : Χειρισμός θυρών I/O Συνεχής ανάγνωση θύρας PortD. Όταν διαπιστώνεται ότι άλλαξε η τιμή της, τότε κάθε νέα τιμή αποθηκεύεται σε διαδοχικές θέσεις μνήμης SRAM αρχίζοντας από τη διεύθυνση $0060 ως την $0150.

67 Παράδειγμα 11 ο : Χειρισμός θυρών I/O (1).include "m16def.inc" ; ορίζουμε ονόματα καταχωρητών.def temp=r16 ; καταχωρητής για προσωρινή αποθήκευση.def port_value=r17 ; αποθήκευση τιμής θύρας.def reg = r18.org 0x000 rjmp main ; παράκαμψη διανυσμάτων διακοπών.org 0x100 main: ; κυρίως πρόγραμμα ldi reg,low(ramend) ; αρχικοποίηση δείκτη στοίβας out SPL,reg ldi reg,high(ramend) out SPH,reg clr temp out DDRD, temp ; Port D ως είσοδος ser temp out PORTD, temp ; Port D ( ενεργοποίηση pull-ups)

68 Παράδειγμα 11 ο : Χειρισμός θυρών I/O (2) clr xh ldi xl, 0x60 in port_value, PIND diavasma: in temp,pind cp temp,port_value breq diavasma nop st x+,temp mov port_value,temp nop cpi xl,0x51 brne diavasma ; δήλωση διεύθυνσης αποθήκευσης στην SRAM ; θέτουμε διεύθυνση 0x60 στον καταχωρητή X ; 1η ανάγνωση θύρας ; βρόχος ανάγνωσης ; διάβασμα τρέχουσας τιμής ; έλεγχος εάν έχει αλλάξει η τιμή ; ίδιες τιμές, επιστροφή στο diavasma για ; ανάγνωση ; αλλιώς αποθήκευση τιμής & αύξηση καταχωρητή X ; ώστε να δείχνει στην επόμενη θέση μνήμης ; έλεγχος για να μην περάσουμε τη διεύθυνση 0x150 ldi xl,0x60 clr xh rjmp diavasma ; αν τη φτάσουμε, αρχίζουμε αποθηκεύσεις πάλι από 0x60

69 Παράδειγμα 12 ο : Μεταφορά δεδομένων Μεταφορά ενός πίνακα των 20 bytes από το τμήμα κώδικα (cseg) στο τμήμα δεδομένων (dseg). Εξετάζεται κάθε στοιχείο του πίνακα. Εάν πρόκειται για περιττό αποθηκεύεται στη διεύθυνση $0060, ενώ αν πρόκειται για άρτιο στη διεύθυνση $0074 του τμήματος δεδομένων..include "m16def.inc".def count=r18 ; Ορίζουμε όνομα καταχωρητή-μετρητή.equ Location1 = 0x0060 ; Διεύθυνση αποθήκευσης περιττών.equ Location2 = 0x0074 ; Διεύθυνση αποθήκευσης άρτιων start: ldi count,21 ldi ZH, HIGH(Table*2) ; Μετρητής για μεταφορά 20 στοιχείων ; Η διεύθυνση του πίνακα δεδομένων ; στη μνήμη προγράμματος στον Ζ ldi ZL,LOW(Table*2) ldi XH,HIGH(Location1) ; Η διεύθυνση του πίνακα περιττών στον Χ ldi XL,LOW(Location1) ldi YH,HIGH(Location2) ; Η διεύθυνση του πίνακα άρτιων στον Υ ldi YL,LOW(Location2)

70 Παράδειγμα 12 ο : Μεταφορά δεδομένων loop: lpm r20,z+ dec count breq end sbrs r20,0 rjmp even odd: ST X+, R20 rjmp loop even: ST Y+, R20 rjmp loop ; Φόρτωση μνήμης προγράμματος και ; αύξηση δείκτη πρόσβασης επόμενης θέσης. ; Μείωση μετρητή και άλμα ; όταν μεταφερθούν όλα τα στοιχεία. ; Αν πρόκειται για περιττό (R20.0=1) skip ; Αλλιώς άρτιος και άλμα στην ετικέτα even. ; Ο αριθμός είναι περιττός. ; Αποθήκευση περιττών και ; επανάληψη με φόρτωση νέου αριθμού. ; Αποθήκευση άρτιων και επανάληψη..cseg ; Στη μνήμη προγράμματος εισάγεται Table: ; πίνακας δεδομένων..dw 0x0100,0x0706,0x1713,0x3326,0x27C6.DW 0x5042,0x7A61,0xA2F1,0xE0D7,0x89FD end:.exit

71 Παράδειγμα 13 ο : Κατάταξη αριθμών Κατάταξη αριθμών που βρίσκονται στη μνήμη δεδομένων (διεύθυνση $0060) σε αύξουσα σειρά Εφαρμόζουμε τη μέθοδο των φυσαλίδων σύμφωνα με την οποία πραγματοποιούμε διαδοχικά περάσματα στην ακολουθία των αριθμών και αντιστρέφουμε τους διαδοχικούς αριθμούς που δεν βρίσκονται σε αύξουσα σειρά. Η διαδικασία επαναλαμβάνεται έως ότου να μην χρειαστεί εναλλαγή..include "m16def.inc".def reg1=r18.def reg2=r20.equ Location1 = 0x0060.DEF count=r16.equ numb= 0x100 X= data address count=data number T= 0 reg1< (X) reg2< (X+1) ΝΑΙ D(n+1) >Dn ΟΧΙ (X+1)< reg1 X< reg2 T=1 και X< (X+1) ΟΧΙ ΟΧΙ ΑΡΧΗ count< count-1 count = 0 ΝΑΙ T = 0 ΝΑΙ ΤΕΛΟΣ reg1 reg2 Dn D(n+1) Εναλλαγή θέσεων Dn, D(n+1) Σάρωση όλων των θέσεων ; Δεν έγινε εναλλαγή

72 Παράδειγμα 13 ο : Κατάταξη αριθμών sort: LDI XH, HIGH(Location1) ; διεύθυνση μνήμης δεδομένων LDI XL, LOW(Location1) ldi count, numb ; πλήθος αριθμών clt ; αρχικοποίηση δείκτης αλλαγής (Τ=0) loop: ld reg1,x+ ; φόρτωση διαδοχικών τιμών από μνήμη ld reg2,x ; δεδομένων σε δυο καταχωρητές cp reg2,reg1 ; σύγκριση διαδοχικών τιμών brge no_change st x,reg1 st -x,reg2 set no_change: dec count brne loop brbs 6,sort.exit ; εναλλαγή για αύξουσα διάταξη ; θέτουμε δείκτη αλλαγής (T=1) ; σάρωση όλου του πίνακα ; επανάληψη σε περίπτωση εναλλαγής (T=1)

73 Παράδειγμα 14 ο : Χειρισμός διακοπτών εισόδου και led εξόδου Δίνεται πρόγραμμα που όταν ένα από τα switches 0 και 1 είναι πατημένο ανάβουν τα αντίστοιχα leds, ενώ όταν είναι πατημένο ένα από τα switches 2-6 ανάβουν τα υπόλοιπα (leds 2-7). Το switch 7 σβήνει όλα τα leds..include "m16def.inc" ; δήλωση ελεγκτή.def reg = R16 ; ορίζουμε όνομα καταχωρητή rjmp main ; εντολή άλματος στη διεύθυνση 0:.org 0 ; κυρίως πρόγραμμα main: ldi reg,low(ramend) ; αρχικοποίηση δείκτη στοίβας στη out SPL,reg ldi reg,high(ramend) ; τελευταία θέση της SRAM (RAMEND) out SPH,reg clr reg ; PortD ως είσοδος out DDRD,reg ser reg out PORTD,reg ; Port D (pull-ups) out DDRB,reg out PORTB,reg ; PortB ως έξοδος ; σβήσιμο leds (ανάστροφη λογική

74 Παράδειγμα 14 ο : Χειρισμός διακοπτών εισόδου και led εξόδου loop: ; ανάγνωση switch 0, δηλαδή portd (PIND 0) και εντολή παράκαμψης (SBIS) της ; επόμενης εντολής αν το bit 0 είναι 1 που λόγω της ανάστροφης λογικής ; των διακοπτών σημαίνει ότι δεν πατήθηκε. ; Διαφορετικά κλήση (RCALL) της ρουτίνας Light0. sbis PIND,0 rcall Light0 ; Ανάγνωση switch 1 με ένα διαφορετικό τρόπο: ; Οι θύρες I/O αντιστοιχούν επίσης και σε χώρο της μνήμης SRAM. ; Η διεύθυνση SRAM είναι 32 bytes υψηλότερα από την αντίστοιχη διεύθυνση θύρας. ; Οπότε η πρόσβαση σε μια θύρα μπορεί να επιτευχθεί με εντολές διευθυνσιοδότησης ; της SRAM..EQU mem_name=pind + $20 ; διεύθυνση στην sram ; Ορίζουμε το ζεύγος καταχωρητών R27:R26 ως καταχωρητή δείκτη αυτής της θύρας. ; Με την εντολή LoaD φορτώνουμε την τιμή της θύρας σε καταχωρητή σαν να είναι ; ένα SRAM byte. ldi R26,LOW(mem_name) ldi R27,HIGH(mem_name) ld reg,x ; φόρτωσε καταχωρητή reg από καταχωρητή δείκτη sbrs reg,1 ; Έλεγχος Pin1 (switch 1- Bit 1 ). Αν είναι 0 που rcall Light1 ; σημαίνει ότι πατήθηκε, γίνεται κλήση της Light1. ; Αλλιώς παρακάμπτεται για να γίνει ο έλεγχος των Switches 2 ως 6

75 Παράδειγμα 14 ο : Χειρισμός διακοπτών εισόδου και led εξόδου in reg, PIND ; Ανάγνωση port D (Προσοχή στην ανάστροφη ori reg, 0b ; λογική των διακοπτών). cpi reg, 0b ; Εφαρμογή μάσκας στα switches 0, 1 και 7 breq sw7 ; αν κανένας διακοπτής 2-6 δεν είναι ΟΝ τότε άλμα στην ετικέτα sw7 in reg,pind ; Αλλιώς ανάγνωση τρέχουσας κατάστασης LEDs andi reg,0b ; άναμμα των LED 2 ως 7 out PORTB, reg ; χωρίς να πειραχθούν τα LED 0 και 1 sw7: in reg,pind ; ανάγνωση θύρας διακοπτών rol reg ; ολίσθηση 7ου bit στο κρατούμενο brcs endloop ; αν 7ο bit είναι 1 (BRanch Carry Set) καμία ldi reg, 0xFF ; αλλαγή. Αλλιώς (C=0) σβήσιμο όλων των LEDs. out PORTB, reg endloop: rjmp loop Light0: ; υπορουτίνα Light0: LED 0 ON in reg,pind ; ανάγνωση τρέχουσας κατάστασης port B andi reg,0b ; άναμμα του 1ου LED τα υπόλοιπα μένουν out PORTB,reg ; στην ίδια κατάσταση. ret Light1: ; Υπορουτίνα Light1: LED 1 ON in reg,pind ; ανάγνωση κατάστασης port B cbr reg,0b ; θέτει bit 2 στο μηδέν (η εντολή αυτή ισοδυναμεί out PORTB,reg ; με andi reg, 0b ). Ανάβει το 2ο LED και τα ret ; υπόλοιπα LED μένουν στην ίδια κατάσταση.

76 Μακροεντολές Παράδειγμα 15 ο : Άναμμα των LEDs 0, 1, 2 με χρήση μακροεντολής.include "m16def.inc".list.def temp=r18.macro FOUR_INC inc temp inc temp inc temp inc temp.endmacro ; δήλωση μακροεντολής Ορισμός μακροεντολής:.macro Delay4 ; όνομα NOP ; σώμα NOP NOP NOP.ENDMACRO ; Τέλος ; Κύριο πρόγραμμα ser temp ; ο καταχωρητής temp=0xff out DDRB,temp ; PortB (LEDs) ως έξοδος clr temp ; μηδενισμός καταχωρητή temp FOUR_INC ; εισαγωγή μακροεντολής (4 INCs) FOUR_INC ; ξανά εισαγωγή μακροεντολής (άλλα 4 INCs) Delay4 ; temp= Delay4 Delay4 dec temp ; temp= com temp ; αναστροφή για απεικόνιση στα LEDs out PORTB,temp ; άναμμα των leds LOOP: rjmp LOOP

77 Παράδειγμα 16 ο : Χρήσης ετικέτας εντός και άλματος σε ετικέτα έξω από μακροεντολή.include "m16def.inc".def temp=r18.macro TestMacro inc temp brne macro_jump rjmp OVERFLOW macro_jump:.endmacro ; δήλωση μακροεντολής ; αύξηση καταχωρητή temp ; παράκαμψη επόμενης εντολής αν δεν προκύψει υπερχείλιση ; άλμα σε περίπτωση υπερχείλισης σε ετικέτα εκτός μακροεντολής ; ετικέτα εντός μακροεντολής ser temp ; κύριο πρόγραμμα out DDRB,temp ; PortB (LEDs) ως έξοδος ldi temp,0xfe ; θέτουμε καταχωρητή=254 ΤestΜacro ; εισαγωγή μακροεντολής (ένα INC) ΤestΜacro ; ξανά εισαγωγή μακροεντολής (άλλο ένα INC) ; Η λειτουργία των μακροεντολών θα προκαλέσει υπερχείλιση (λόγω INC), ; οπότε η επόμενη εντολή δεν θα εκτελεστεί. Εάν εκτελείτο θα άναβε όλα τα LEDs. outp: out PORTB,temp ; άναμμα των leds LOOP: rjmp LOOP OVERFLOW: ser temp out PORTB,temp rjmp LOOP ; λόγω υπερχείλισης θα εκτελεστεί ο παρακάτω κώδικας και ; τα LEDs PB.0 - PB.7 θα σβήσουν

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό. Ερωτήσεις θεωρίας MY Μέρος Α. Υλικό. 1. Η μνήμη ROM είναι συνδυαστικό ή ακολουθιακό κύκλωμα; 2. α) Να σχεδιαστεί μία μνήμη ROM που να δίνει στις εξόδους της το πλήθος των ημερών του μήνα, ο αριθμός του

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ 4 ο Εξάμηνο Μαδεμλής Ιωάννης ΛΟΓΙΚΕΣ ΠΡΑΞΕΙΣ Οι λογικές πράξεις που υποστηρίζει η Assembly του 8088 είναι : Πράξη AND Πράξη OR Πράξη NOT Πράξη XOR Με τις λογικές πράξεις μπορούμε

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

Διαβάστε περισσότερα

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

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ 1.1 ΕΙΣΑΓΩΓΗ ΣΤΑ ΑΝΑΛΟΓΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ 1 1.1.1 Αναλογικά σήματα 1 1.1.2 Οι αντιστάσεις 3 1.1.3 Οι πυκνωτές 7 1.1.4 Τα πηνία 11 1.1.5 Οι δίοδοι 13 1.1.6

Διαβάστε περισσότερα

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

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

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 2: Καταχωρητές, HelloWorld σε 8086, emu8086 emulator Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

12. Διακοπές Interrupts (IRQ)

12. Διακοπές Interrupts (IRQ) 2. Διακοπές Interrupts (IRQ) Πίνακας Ι. Χειρισμός διακοπών στον ATmega6. A/A Program address Source Vector Interrupt definition External Pin, Power-on Reset, Brown-outReset, Watchdog Reset, and JTAG AVR

Διαβάστε περισσότερα

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

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών Θ. Ζαχαριάδης Αν. Καθηγητής Λ. Σαράκης Καθ. Εφαρμογών Στον debugger που χρησιμοποιούμε στο εργαστήριο, όταν γράφουμε δεκαεξαδικούς αριθμούς που το πιο σημαντικό ψηφίο τους είναι Α-F βάζουμε μπροστά από

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ 4 ο Εξάμηνο Μαδεμλής Ιωάννης ΥΠΟΡΟΥΤΙΝΕΣ ΕΡΓΑΣΤΗΡΙΟ 6 Οι υπορουτίνες αποτελούν αυτόνομα τμήματα κώδικα που διεκπεραιώνουν μία συγκεκριμένη εργασία και μπορούμε να τα καλούμε

Διαβάστε περισσότερα

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

Σημειώσεις για τον 80x86 Σημειώσεις για τον 80x86 Τι είναι η διεύθυνση; 16bits 0000h 0001h 0002h 8bits 20h 32h 30h Η μνήμη ενός μικροϋπολογιστικού συστήματος χωρίζεται σε μικρά τμήματα του ενός byte FFFEh 30h 2 16 =65,536 bytes

Διαβάστε περισσότερα

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

A 1. DDRA = 0b11110000; k = PINB; DDRC = 0xf0; PORTC = 0x0f;

A 1. DDRA = 0b11110000; k = PINB; DDRC = 0xf0; PORTC = 0x0f; μ : : - - A 1 / μ : : : _ _ : 1. μ μμ μ μ VR μ μ (STK200/CodeVision C). 2. - μ μ μμ C. _ _ μ - / μ μ μ STK200 8 8 LED. μ LED LEDn 0 Volt., SWn 5 Volt μ μ. μ ATmega16 32 -, μ 4 (ports) μ μ A,B,C D. μ 8-bit,

Διαβάστε περισσότερα

WDT και Power Up timer

WDT και Power Up timer Ο ΜΙΚΡΟΕΛΕΓΚΤΗΣ PIC O μικροελεγκτής PIC κατασκευάζεται από την εταιρεία Microchip. Περιλαμβάνει τις τρεις βασικές κατηγορίες ως προς το εύρος του δίαυλου δεδομένων (Data Bus): 8 bit (σειρές PIC10, PIC12,

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΕΛΕΓΚΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΕΛΕΓΚΤΩΝ ATMEL AVR8 ΠΟΡΛΙΔΑΣ ΔΗΜΗΤΡΙΟΣ ATMEL AVR Atmega16 Χαρακτηριστικά Μικροελεγκτής 8-bit υψηλής απόδοσης και χαμηλής κατανάλωσης Προοδευμένη αρχιτεκτονική RISC (Reduced instruction

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 5: Εντολές αλλαγής ροής. Διακλάδωση χωρίς συνθήκη. Διακλάδωση με συνθήκη. Δρ. Μηνάς Δασυγένης

Διαβάστε περισσότερα

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ ΕΙΣΑΓΩΓΗ Θέµατα ❸Συστήµατα Η/Υ (αναφορά) ❸Γλώσσα υπολογιστών ❸Γλώσσες προγραµµατισµού (low-high level) ❸Low level VS high level programming ❸Βασικά µέρη Η/Υ ❸Μικροϋπολογιστές (µc µp) ❸Αρχιτεκτονική µικροελεγκτών

Διαβάστε περισσότερα

ίοδοι Εκποµπής Φωτός

ίοδοι Εκποµπής Φωτός ΑΣΚΗΣΗ 2 ίοδοι Εκποµπής Φωτός Σκοπός της άσκησης Εξαγωγή δεδοµένων στο περιβάλλον µέσω LED (Light Emitter Diode) ιασύνδεση LED Έλεγχος κατάστασης LED Χρόνος εκτέλεσης εντολών της MCU Υλοποίηση τεχνητής

Διαβάστε περισσότερα

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

Στοιχεία από Assembly Γιώργος Μανής Στοιχεία από Assembly 8086 Γιώργος Μανής Καταχωρητές καταχωρητές γενικής φύσης καταχωρητές δείκτες καταχωρητές αναφοράς καταχωρητές τµηµάτων ειδικοί καταχωρητές Καταχωρητές γενικής φύσης 16 bit ax, bx,

Διαβάστε περισσότερα

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

Συστήματα Μικροϋπολογιστών Συστήματα Μικροϋπολογιστών Είσοδος / Έξοδος Δεδομένων Υπεύθυνος Μαθήματος: K. ΠΕΚΜΕΣΤΖΗ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

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

ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014 ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014 Καθηγητής:Νικολαΐδης Νικ. ΑΠΑΝΤΗΣΕΙΣ Ημ/νία εξέτασης:30-6-2014 ΘΕΜΑ 1 α) Να σχεδιαστεί μία μνήμη ROM που να δίνει στις εξόδους της το πλήθος των ημερών του

Διαβάστε περισσότερα

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

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Καταχωρητής STATUS. IRP: Bit επιλογής περιοχής μνήμης (Bank) για την έμμεση διευθυνσιοδότηση 1= Bank2, Bank3 0= Bank0, Bank1

Καταχωρητής STATUS. IRP: Bit επιλογής περιοχής μνήμης (Bank) για την έμμεση διευθυνσιοδότηση 1= Bank2, Bank3 0= Bank0, Bank1 Καταχωρητής STATUS bit 7 IRP: Bit επιλογής περιοχής μνήμης (Bank) για την έμμεση διευθυνσιοδότηση 1= Bank2, Bank3 0= Bank0, Bank1 bit 6-5 RP1:RP0: Bit επιλογής περιοχής μνήμης (Bank) για την άμεση διευθυνσιοδότηση

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Ευάγγελος Καρβούνης Παρασκευή, 15/01/2016 Τι είναι ομάδα εντολών;

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ 1. Υπορουτίνες Μαθηµατικών Πράξεων 1.1. Προσηµασµένοι και απροσήµαστοι αριθµοί 1.2. Μετατροπές προσηµασµένων και απροσήµαστων αριθµών

ΠΕΡΙΕΧΟΜΕΝΑ 1. Υπορουτίνες Μαθηµατικών Πράξεων 1.1. Προσηµασµένοι και απροσήµαστοι αριθµοί 1.2. Μετατροπές προσηµασµένων και απροσήµαστων αριθµών ΠΕΡΙΕΧΟΜΕΝΑ 1. Υπορουτίνες Μαθηµατικών Πράξεων 1.1. Προσηµασµένοι και απροσήµαστοι αριθµοί 1.2. Μετατροπές προσηµασµένων και απροσήµαστων αριθµών Cr0 Μετατροπή αριθµού 8 Bits από µορφή προσηµασµένου µε

Διαβάστε περισσότερα

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter 3 Kuo [2005]: Chapters 1 & 4-5 Lapsley [2002]: Chapter 4 Hayes [2000]: Κεφάλαιo 8

Διαβάστε περισσότερα

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

Ενσωµατωµένα Συστήµατα Ενσωµατωµένα Συστήµατα για εφαρµογές πραγµατικού χρόνου Μικροελεγκτής Arduino Ιωάννης Καλόµοιρος Αναπληρωτής Καθηγητής Τµήµα Μηχανικών Πληροφορικής Μάθηµα 7ο Τι είναι το Arduino... Ένα open-hardware σύστηµα

Διαβάστε περισσότερα

2. Δήλωση μεταβλητών. #include <avr/io.h> #include <util/delay.h> unsigned char i=0xa0; register unsigned char i asm("r3");

2. Δήλωση μεταβλητών. #include <avr/io.h> #include <util/delay.h> unsigned char i=0xa0; register unsigned char i asm(r3); 2. Δήλωση μεταβλητών Οι μεταβλητές είναι τα βασικά στοιχεία που διαπραγματεύεται ένα πρόγραμμα. Περιέχουν τιμές ή δεδομένα και μπορεί να έχουν μια σταθερή τιμή ή το περιεχόμενό τους να εξαρτάται από τις

Διαβάστε περισσότερα

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

Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1 Ένας υπολογιστής

Διαβάστε περισσότερα

Τελική Εξέταση, Απαντήσεις/Λύσεις

Τελική Εξέταση, Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 Τελική Εξέταση, Απαντήσεις/Λύσεις Άσκηση 1: Assembly για

Διαβάστε περισσότερα

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

Εφαρμογές μικροελεγκτών Μικροελεγκτές Έναν ορισμό που θα μπορούσαμε να δώσουμε για τους μικροελεγκτές είναι ο εξής: Μικροελεγκτής είναι ένα προγραμματιζόμενο ολοκληρωμένο κύκλωμα το οποίο διαθέτει επεξεργαστή, μνήμη, διάφορα

Διαβάστε περισσότερα

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

Εντολές γλώσσας μηχανής Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 3: Καταχωρητές, Τμήματα, Διευθυνσιοδότηση Μνήμης, SEGMENT, MOV, ADD, SUB, INT, TITLE, LEA

Διαβάστε περισσότερα

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

Διαβάστε περισσότερα

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

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών Άσκηση 1 (σύνοψη της εκφώνησης) [Εκτέλεση λογικών πράξεων]

Διαβάστε περισσότερα

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεματική Ενότητα Ακαδημαϊκό Έτος 2010 2011 Ημερομηνία Εξέτασης Κυριακή 26.6.2011 Ώρα Έναρξης Εξέτασης

Διαβάστε περισσότερα

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

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ Σκοπός της άσκησης Οι φοιτητές θα εξοικειωθούν με την πλακέτα του μικροελεγκτή και θα αναγνωρίσουν τα βασικά της στοιχεία. Επίσης θα εξοικειωθούν

Διαβάστε περισσότερα

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Μαθηµα 2 ηµήτρης Λιούπης 1 Intel SA-1110 µc StrongARM core. System-on-Chip. Εξέλιξη των SA-110 και SA-1100. 2 ARM cores ARM: IP (intellectual

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

Διαβάστε περισσότερα

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου Οργάνωση Η/Υ Ο Επεξεργαστής TRN Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου ΚMΕ Κυριότεροι Καταχωρητές της ΚΜΕ του υπολογιστή TRN IR (20 bits) X (20 bits) I

Διαβάστε περισσότερα

Εντολές PIC16F rrf <όνομα καταχωρητή>,a a=f ή a=w H εντολή πραγματοποιεί ολίσθηση προς τα δεξιά του καταχωρητή που ακολουθεί μέσω κρατουμένου

Εντολές PIC16F rrf <όνομα καταχωρητή>,a a=f ή a=w H εντολή πραγματοποιεί ολίσθηση προς τα δεξιά του καταχωρητή που ακολουθεί μέσω κρατουμένου Εντολές PIC16F887 20. rrf ,a a=f ή a=w H εντολή πραγματοποιεί ολίσθηση προς τα δεξιά του καταχωρητή που ακολουθεί μέσω κρατουμένου (Carry) και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή

Διαβάστε περισσότερα

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

Συστήματα Μικροϋπολογιστών Συστήματα Μικροϋπολογιστών Παραδείγματα προγραμματισμού του με Intel 8085 Υπεύθυνος Μαθήματος: K. ΠΕΚΜΕΣΤΖΗ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I

Διαβάστε περισσότερα

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

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

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

Διαβάστε περισσότερα

10. Πληκτρολόγιο matrix 4x4

10. Πληκτρολόγιο matrix 4x4 10. Πληκτρολόγιο matrix 4x4 Το πληκτρολόγιο matrix 4x4 αποτελείται από 16 πλήκτρα διακόπτες τα οποία είναι συνδεδεμένα μεταξύ τους ανά 4 σε τέτοια διάταξη ώστε, με το ένα άκρο τους να σχηματίζουν 4 σειρές

Διαβάστε περισσότερα

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

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών Θ. Ζαχαριάδης Αν. Καθηγητής Λ. Σαράκης Καθ. Εφαρμογών CMP REG, memory memory, REG REG, REG memory, immediate REG, immediate Compare. operand1 - operand2 result is not stored anywhere, flags are set (OF,

Διαβάστε περισσότερα

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 4: Ρουτίνες καθυστέρησης. [Συγγραφή ρουτίνας καθυστέρησης]

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 4: Ρουτίνες καθυστέρησης. [Συγγραφή ρουτίνας καθυστέρησης] Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών Βοήθημα εκτέλεσης εργαστηριακής άσκησης 4: Ρουτίνες καθυστέρησης Άσκηση 1 (σύνοψη της εκφώνησης) [Συγγραφή ρουτίνας καθυστέρησης] Γράψτε ένα πρόγραμμα

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

Διαβάστε περισσότερα

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

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4 ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 4 Διαδικασίες Ι Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Εισαγωγή στους Η/Υ (ΗΥ134) 1 Διευθυνσιοδότηση διακλαδώσεων

Διαβάστε περισσότερα

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

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη. Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης,

Διαβάστε περισσότερα

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

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας, Μικροεπεξεργαστές Σημειώσεις Μαθήματος 2013-14 Υπεύθυνος: Δρ Άρης Παπακώστας, Interrupts - Διακοπές Είναι ένας τρόπος για να διακοπεί η ροή ενός προγράμματος έτσι ώστε να εξυπηρετηθεί ένα έκτακτο γενογός

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ 4 ο Εξάμηνο Μαδεμλής Ιωάννης MSc Ηλεκτρονικός Φυσικός Αντικείμενο: ΠΡΟΦΙΛ ΜΑΘΗΜΑΤΟΣ Προγραμματισμός σε γλώσσα Assembly Σκοπός: Γνώση της assembly από τους απόφοιτους του τμήματος

Διαβάστε περισσότερα

Αρχιτεκτονικη υπολογιστων

Αρχιτεκτονικη υπολογιστων ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονικη υπολογιστων Τζαγκαράκης Χαράλαμπος hatzagarak@cs.teicrete.gr Εισαγωγη: ο επεξεργαστης και η γλωσσα του Eπεξεργαστής: MIPS Microprocessor Without Interlocked

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονικές Συνόλου Εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ο

Διαβάστε περισσότερα

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

Εντολές του MIPS (2) ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3

Διαβάστε περισσότερα

Ψηφιακά Συστήματα. 8. Καταχωρητές

Ψηφιακά Συστήματα. 8. Καταχωρητές Ψηφιακά Συστήματα 8. Καταχωρητές Βιβλιογραφία 1. Φανουράκης Κ., Πάτσης Γ., Τσακιρίδης Ο., Θεωρία και Ασκήσεις Ψηφιακών Ηλεκτρονικών, ΜΑΡΙΑ ΠΑΡΙΚΟΥ & ΣΙΑ ΕΠΕ, 2016. [59382199] 2. Floyd Thomas L., Ψηφιακά

Διαβάστε περισσότερα

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

Διαβάστε περισσότερα

Όταν το πρόγραμμα φτάσει σε αυτή την εντολή και ο καταχωρητής PINA έχει την τιμή

Όταν το πρόγραμμα φτάσει σε αυτή την εντολή και ο καταχωρητής PINA έχει την τιμή 5. Εντολή while() Η εντολή while() είναι ίσως η πιο πολυχρησιμοποιούμενη εντολή κατά τη σύνταξη κώδικα σε γλώσσα προγραμματισμού C για μικροελεγκτές. Το κυρίως μέρος του προγράμματος κλείνεται σχεδόν πάντα

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αρχιτεκτονική υπολογιστών Ενότητα 11 : Δομή και Λειτουργία της CPU 1/2 Φώτης Βαρζιώτης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

10. Πληκτρολόγιο matrix 4x4

10. Πληκτρολόγιο matrix 4x4 10. Πληκτρολόγιο matrix 4x4 Το πληκτρολόγιο matrix 4x4 αποτελείται από 16 πλήκτρα διακόπτες τα οποία είναι συνδεδεμένα μεταξύ τους ανά 4 σε τέτοια διάταξη ώστε, με το ένα άκρο τους να σχηματίζουν 4 σειρές

Διαβάστε περισσότερα

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

Συστήματα Μικροϋπολογιστών Συστήματα Μικροϋπολογιστών Ο Μικροεπεξεργαστής 8085 K. ΠΕΚΜΕΣΤΖΗ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Y Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3 = &A[0] = 0x0001080 &A[8]

Διαβάστε περισσότερα

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 3-4: Προγραμματισμός MIPS Προγραμματισμός σε Συμβολική Γλώσσα Η συμβολική γλώσσα: δεν έχει τύπους, δεν έχει δηλώσεις μεταβλητών, δεν έχει δομές ελέγχου, δεν έχει εντολές βρόχων,

Διαβάστε περισσότερα

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 Αρης Ευθυμίου Το σημερινό μάθημα! Λυση του lab02! Αρχιτεκτονική ARM σε τι μοιάζει και σε τι διαφέρει από τον MIPS! Αρχιτεκτονική x86 μια γρήγορη ματιά στη

Διαβάστε περισσότερα

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

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

Διαβάστε περισσότερα

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

Εισαγωγή στην πληροφορική -4 Εισαγωγή στην πληροφορική 6 (, 64) bits Μνήµη Θέση (κύτταρο cell) µνήµης, χωράει λέξεις (words) εντολές (πρόγραµµα), αριθµοί (δεδοµένα) Αριθµοί: δυαδική (binary) αναπαράσταση = = = 4 = 4 = 5 = 7 Εισαγωγή

Διαβάστε περισσότερα

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

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Α Γενικού Λυκείου Κεφάλαιο 1 1.1 Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Ιδιαίτερη θέση έχουν οι Υπολογιστικές συσκευές. Μηχανισμός

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal Display

Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal Display Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal Display Σχηματικό Διάγραμμα μιας Οθόνης Υγρών Κρυστάλλων To Lcd εσωτερικά έχει έναν controller που είναι υπεύθυνος για την επεξεργασία τον δεδομένων

Διαβάστε περισσότερα

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

Διαβάστε περισσότερα

Είναι το πρωτόκολλο RS232 που χρησιμοποιείται στις σειριακές θύρες COM με τη διαφορά ότι εκτελείται σε επίπεδο τάσεων TTL. 2

Είναι το πρωτόκολλο RS232 που χρησιμοποιείται στις σειριακές θύρες COM με τη διαφορά ότι εκτελείται σε επίπεδο τάσεων TTL. 2 16. USART Οι AVR διαθέτουν ενσωματωμένη διάταξη για υποστήριξη σειριακής επικοινωνίας USART 1 (Universal Synchronous and Asynchronous serial Receiver and Transmitter). Η ενσωματωμένη διάταξη μας εξυπηρετεί

Διαβάστε περισσότερα

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

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 1: Εισαγωγή στα ενσωματωμένα συστήματα (embedded systems) Εργαστήριο Αυτομάτου Ελέγχου Ενσωματωμένα συστήματα (Embedded Systems) Ενσωματωμένα συστήματα (Embedded

Διαβάστε περισσότερα

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

Διαβάστε περισσότερα

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly Αρης Ευθυμίου Το σημερινό μάθημα! Σύνταξη εντολών! Θέματα σχετικά με τη προσπέλαση, οργάνωση μνήμης διευθύνση για κάθε byte διευθύνσεις λέξεων

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

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

Διαβάστε περισσότερα

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

1. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ Μ/Ε ΕΣΩΤΕΡΙΚΟΙ ΚΑΤΑΧΩΡΗΤΕΣ 1. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ Μ/Ε 6502 - ΕΣΩΤΕΡΙΚΟΙ ΚΑΤΑΧΩΡΗΤΕΣ Ο 8-bit µ/ε 6502 είναι ένα ολοκληρωµένο κύκλωµα (LSI) µε 40 ακροδέκτες από τους οποίους οι 16 αντιστοιχούν σε γραµµές διευθύνσεων (Α 0 - Α 15 ) και

Διαβάστε περισσότερα

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

ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε., ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ, ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΙΙ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε., ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ, ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΙΙ Μικροεπεξεργαστής AVR, Εργαστηριακές Ασκήσεις Δρ. Τοπάλης Ευάγγελος (Δρ. Ηλεκτρολόγος Μηχανικός

Διαβάστε περισσότερα

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

Διαβάστε περισσότερα

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 2 ο Σύνολα Εντολών Οι εντολές που εκτελεί ο κάθε επεξεργαστής (ή οικογένεια επεξεργαστών) MIPS ARM SPARC PowerPC IA-32 Αρχιτεκτονικές συνόλου εντολών Βασικές Έννοιες Εντολές μηχανής

Διαβάστε περισσότερα

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

Διαβάστε περισσότερα