Εντολές PIC16F887. Reg1=b'00110011' b'00000010'



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

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

Αρχιτεκτονική και προγραμματισμός του μικροελεγκτή PIC 16F877

1. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΟΥ ΜΙΚΡΟΕΛΕΓΚΤΗ PIC16F877

2. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΘΥΡΩΝ ΕΙΣΟ ΟΥ/ΕΞΟ ΟΥ ΤΟΥ PIC16F877-ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΤΟΛΕΣ

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

Αρχές Προγραμματισμού Πραγματικού Χρόνου

Εισαγωγή στους μικροελεγκτές PIC

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

Δυαδικό Σύστημα Αρίθμησης

LCD_LINE0 equ 0x000 ; Διεύθυνση της γραμμής 0 του LCD LCD_LINE1 equ 0x040 ; Διεύθυνση της γραμμής 1 του LCD

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

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

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

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

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

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

; Έλεγχος σημαίας λήψης (RCIF=0: άδειος buffer)

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 5 Ανάπτυξη Προγράμματος σε Γλώσσα Λίστας Εντολών

ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: Παράσταση Προσημασμένων Αριθμών Συμπληρώματα

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

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

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

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

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

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

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

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

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

a -j a 5 a 4 a 3 a 2 a 1 a 0, a -1 a -2 a -3

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

ΠΛΗΡΟΦΟΡΙΚΗ I. 4 η ΔΙΑΛΕΞΗ Αριθμητικά Συστήματα

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Παράρτηµα Γ. Τα Βασικά της Λογικής Σχεδίασης. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

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

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

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ : Κ. ΠΕΚΜΕΣΤΖΗ

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

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

Ελίνα Μακρή

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

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

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

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

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

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

Διαδικασιακός Προγραμματισμός

ΑΠΟ ΤΑ ΘΕΜΑΤΑ ΤΩΝ ΠΑΝΕΛΛΗΝΙΩΝ ΕΞΕΤΑΣΕΩΝ ΚΕΦΑΛΑΙΟ 7-8 (ΚΑΤΑΧΩΡΗΤΕΣ & ΑΠΑΡΙΘΜΗΤΕΣ)

Λύσεις Ασκήσεων ΣΕΙΡΑ 1 η. Πρόσημο και μέγεθος

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

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

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

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

Δεδομένα & Αναπαράσταση Πληροφορίας

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

ΕΙΣΑΓΩΓΗ. 1. Το λογισμικό MPLAB. 2. Υλικό προγραμματισμού και αποσφαλμάτωσης

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

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.

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

Ενότητα 9 ΑΡΙΘΜΗΤΙΚΑ & ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ

Προγραμματισμός Υπολογιστών

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

Περίληψη. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο υαδική Αφαίρεση. υαδική Αφαίρεση (συν.) Ακόµη ένα παράδειγµα Αφαίρεσης.

Τρόποι Διευθυνσιοδότησης

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 4 : Πράξεις με bits. Δρ. Γκόγκος Χρήστος

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

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

ΠΑΡΟΡΑΜΑΤΑ (ενημέρωση )

ΠΑΡΟΥΣΙΑΣΗ ΤΟΥ ΕΡΓΑΣΤΗΡΙΑΚΟΥ ΜΑΘΗΜΑΤΟΣ «ΣΥΣΤΗΜΑΤΑ ΨΗΦΙΑΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ» ή ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΣ ΤΟΝ ΜΙΚΡΟΕΛΕΓΚΤΉ PIC16F877 ΤΗΣ MICROCHIP TECHNOLOGY INC

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

ΔΙΑΚΟΠΕΣ PΙC16F887(INTERRUPTS) Όταν σηματοδοτηθεί μια διακοπή στον PIC16F887, ο έλεγχος του προγράμματος μεταφέρεται στο τμήμα κώδικα που βρίσκεται

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

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

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

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

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

Χριστοφορίδης Ιωάννης Ραφαήλ 368

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2017

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

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

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

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

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

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 3. Αριθµητική για υπολογιστές

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

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

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

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

Transcript:

Εντολή αφαίρεσης: Η αφαίρεση στο μικροελεγκτή γίνεται με τη βοήθεια του συμπληρώματος ως προς 2 του αφαιρέτη και αναγάγεται σε πρόσθεση. 8. sublw <αριθμητική τιμή> H εντολή αφαιρεί τα περιεχόμενα του W από την αριθμητική τιμή που ακολουθεί (literal) και αποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Carry flag (C) και το Zero flag (Z). Αν το αποτέλεσμα είναι θετικό τότε C=1, Z=0 Αν το αποτέλεσμα είναι αρνητικό τότε C=0, Z=0 Αν το αποτέλεσμα είναι μηδέν τότε C=1, Z=1 αρχική τιμή: W=b'00001010' (=d'10') sublw d'25' τελική τιμή: W=b'00001111' (=d'15'), C=1, Ζ=0

9. subwf <όνομα καταχωρητή>,a a=f ή a=w H εντολή αφαιρεί τα περιεχόμενα του W από τον καταχωρητή που ακολουθεί και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή ενώ αν a=w αποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Carry flag και το Zero flag. Αν το αποτέλεσμα είναι θετικό τότε C=1, Z=0 Αν το αποτέλεσμα είναι αρνητικό τότε C=0, Z=0 Αν το αποτέλεσμα είναι μηδέν τότε C=1, Z=1 Αρχικές τιμές: Reg1=b'00001010' (=d'10'), W=b'00001111' (=d'15') subwf Reg1,w τελικές τιμές: W=b'11111011' (=d'251'), Reg1=d'10', C=0, Ζ=0

10. andlw <αριθμητική τιμή> H εντολή κάνει την πράξη 'λογικό ΑΝD' αντίστοιχα στα bit της αριθμητικής τιμής που ακολουθεί και στα bit του καταχωρητή W. Aποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Zero flag. αρχική τιμή: W=b'10001010' εκτέλεση andlw b'00001111' τελική τιμή: W=b'00001010', Ζ=0

11. andwf <όνομα καταχωρητή>,a a=f ή a=w H εντολή κάνει την πράξη 'λογικό ΑΝD' αντίστοιχα στα bit του καταχωρητή που ακολουθεί και στα bit του W και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή ενώ αν a=w αποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Zero flag. αρχική τιμή: W=b'10001010', Reg1=b'00110011' εκτέλεση andwf Reg1,f τελική τιμή: W=b'10001010', Reg1=b'00000010', Ζ=0 Επεξήγηση: W=b'10001010' Reg1=b'00110011' b'00000010'

12. iorlw <αριθμητική τιμή> H εντολή κάνει την πράξη 'λογικό OR' αντίστοιχα στα bit της αριθμητικής τιμής που ακολουθεί και στα bit του καταχωρητή W. Aποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Zero flag. αρχική τιμή: W=b'10001010' εκτέλεση iorlw b'00001111' τελική τιμή: W=b'10001111', Ζ=0

13. iorwf <όνομα καταχωρητή>,a a=f ή a=w H εντολή κάνει την πράξη 'λογικό OR' αντίστοιχα στα bit του καταχωρητή που ακολουθεί και στα bit του W και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή ενώ αν a=w αποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Zero flag. αρχική τιμή: W=b'10001010', Reg1=b'00110011' εκτέλεση iorwf Reg1,f τελική τιμή: W=b'10001010', Reg1=b'10111011', Ζ=0 Επεξήγηση: W=b'10001010' Reg1=b'00110011' b'10111011'

14. xorlw <αριθμητική τιμή> H εντολή κάνει την πράξη 'λογικό XOR' αντίστοιχα στα bit της αριθμητικής τιμής που ακολουθεί και στα bit του καταχωρητή W. Aποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Zero flag. αρχική τιμή: W=b'10001010' εκτέλεση xorlw b'00001111' τελική τιμή: W=b'10000101', Ζ=0

15. xorwf <όνομα καταχωρητή>,a a=f ή a=w H εντολή κάνει την πράξη 'λογικό XOR' αντίστοιχα στα bit του καταχωρητή που ακολουθεί και στα bit του W και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή ενώ αν a=w αποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Zero flag. αρχική τιμή: W=b'10001010', Reg1=b'00110011' εκτέλεση iorwf Reg1,f τελική τιμή: W=b'10001010', Reg1=b'10111001', Ζ=0 Επεξήγηση: W=b'10001010' Reg1=b'00110011' b'10111001'

16. incf <όνομα καταχωρητή>,a a=f ή a=w H εντολή αυξάνει κατά 1 τα περιεχόμενα του καταχωρητή που ακολουθεί και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή ενώ αν a=w αποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Zero flag. αρχική τιμή: Reg1=d'40' incf Reg1,f τελική τιμή: Reg1=d'41', Z=0 αρχική τιμή: Reg1=d'255' incf Reg1,f τελική τιμή: Reg1=d'0', Z=1

17. incfsz <όνομα καταχωρητή>,a a=f ή a=w H εντολή αυξάνει κατά 1 τα περιεχόμενα του καταχωρητή που ακολουθεί και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή ενώ αν a=w αποθηκεύει το αποτέλεσμα στον W. Επιπλέον σε περίπτωση που το αποτέλεσμα είναι μηδέν τότε παρακάμπτει την επόμενη εντολή. αρχική τιμή: Reg1=d'255' incfsz Reg1,f εντολή 1 εντολή 2 Τελική τιμή: Reg1=d'0' Η επόμενη εντολή που θα εκτελεστεί θα είναι η 'εντολή 2' (η 'εντολή 1' θα παρακαμφθεί)

18. decf <όνομα καταχωρητή>,a a=f ή a=w H εντολή μειώνει κατά 1 τα περιεχόμενα του καταχωρητή που ακολουθεί και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή ενώ αν a=w αποθηκεύει το αποτέλεσμα στον W. Επηρεάζει το Zero flag. αρχική τιμή: Reg1=d'40' decf Reg1,f τελική τιμή: Reg1=d'39', Z=0 αρχική τιμή: Reg1=d'0' decf Reg1,f τελική τιμή: Reg1=d'255', Z=0

19. decfsz <όνομα καταχωρητή>,a a=f ή a=w H εντολή μειώνει κατά 1 τα περιεχόμενα του καταχωρητή που ακολουθεί και αν a=f αποθηκεύει το αποτέλεσμα στον καταχωρητή ενώ αν a=w αποθηκεύει το αποτέλεσμα στον W. Επιπλέον σε περίπτωση που το αποτέλεσμα είναι μηδέν τότε παρακάμπτει την επόμενη εντολή. αρχική τιμή: Reg1=d'1' decfsz Reg1,f εντολή 1 εντολή 2 Τελική τιμή: Reg1=d'0' Η επόμενη εντολή που θα εκτελεστεί θα είναι η 'εντολή 2' (η 'εντολή 1' θα παρακαμφθεί)

Παραδείγματα Ασκήσεις 1. Να υπολογιστεί η παράσταση Α=23+15-12-10+8=24 και να αποθηκευτεί το αποτέλεσμα στον καταχωρητή Reg1 o οποίος να οριστεί στη θέση μνήμης h'20'. ΛΥΣΗ: Reg1 equ h'20' movlw d'23' (W <= d'23') addlw d'15' (W <= d'23'+d'15'=d'38') movwf Reg1 (Reg1 <= W, άρα Reg1<=d'38') movlw d'12' (W <= d'12') subwf Reg1,f (Reg1 <= Reg1-W, άρα Reg1<=d'26') movlw d'10' (W <= d'10') subwf Reg1,w (W <= Reg1-W, άρα W<=d'16') addlw d'8' (W <= W+d'8', άρα W<=d'24') movwf Reg1 (Reg1 <= W, άρα Reg1<=d'24')

Παραδείγματα Ασκήσεις 2. Να υπολογιστεί η παράσταση Α=5-22-50+30=-37 (ή b'11011011'=h'db'=d'219' συμπλήρωμα ως προς 2 του 37) και να αποθηκευτεί το αποτέλεσμα στον καταχωρητή Reg1 o οποίος να οριστεί στη θέση μνήμης h'25'. ΛΥΣΗ: Reg1 equ h'25' movlw d'5' (W <= d'5') movwf Reg1 (Reg1 <= d'5') movlw d'22' (W <= d'22') subwf Reg1,f (Reg1<=d'5'-d'22'=h'EF'=d'239') movlw d'50' (W <= d'50') subwf Reg1,f (Reg1 <= Reg1-W, άρα Reg1<=h'BC') movlw d'30' (W <= d'30') addwf Reg1,f (Reg1 <= Reg1+W, άρα Reg1<=h'DB')

Παραδείγματα Ασκήσεις 3. Να μηδενιστούν τα τέσσερα σημαντικότερα bit του καταχωρητή Reg1 o οποίος να οριστεί στη θέση μνήμης h'30'. Τα τέσσερα λιγότερο σημαντικά να παραμείνουν αμετάβλητα. Στη συνέχεια να γίνει '1' το LSB του καταχωρητή Reg1. ΛΥΣΗ: Reg1 equ h'30' movlw b'00001111' (W <= h'0f') andwf Reg1,f (Reg1 <= b'0000uuuu') movlw b'00000001' (W <= h'01') iorwf Reg1,f (Reg1 <= b'0000uuu1') Σημ.: U=Unchanged

Παραδείγματα Ασκήσεις 4. Να φορτωθεί στον καταχωρητή Reg1 ο αριθμός h'aa', να υπολογιστεί το συμπλήρωμα ως προς δύο του αριθμού αυτού και να αποθηκευτεί επίσης στον καταχωρητή Reg1 o οποίος να οριστεί στη θέση μνήμης h'40'. ΛΥΣΗ: Reg1 equ h'40' movlw h'aa' (W <= h'aa') movwf Reg1 (Reg1 <= W, άρα Reg1<=h'AA') movlw b'11111111'(w <= h'ff') xorwf Reg1,f (Reg1 XOR W, άρα Reg1<=h'55') incf Reg1,f (Reg1 <= Reg1+1, άρα Reg1=h'56')

Παραδείγματα Ασκήσεις 5. Να γίνει η πρόσθεση Α=1+2+3+4+...+20+21 και να αποθηκευτεί το αποτέλεσμα στον καταχωρητή Reg1 o οποίος να οριστεί στη θέση μνήμης h'60'. ΛΥΣΗ 1η: Reg1 equ h'60' movlw d'21' (W <= h'21') movwf Reg1 (Reg1 <=d'21') movlw d'0' (W <= d'0') LOOP addwf Reg1,w (W <= W + Reg1) decfsz Reg1,f (Reg1 <= Reg1-1) goto LOOP

Παραδείγματα Ασκήσεις ΛΥΣΗ 2η: Reg1 equ h'60' movlw d'1' (W <= d'1) movwf Reg1 (Reg1 <= d'1') movlw d'0' (W <= d'0') addwf Reg1,w (W <= W + Reg1) incf Reg1,f (Reg1 <= Reg1 + 1 = d'2') addwf Reg1,w (W <= W + Reg1) incf Reg1,f (Reg1 <= Reg1 + 1 = d'3') addwf Reg1,w (W <= W + Reg1)...άλλες 17 φορές αυτές οι δύο εντολές... incf Reg1,f (Reg1 <= Reg1 + 1) addwf Reg1,w (W <= W + Reg1) Ποιος τρόπος λύσης εκ των 1ης, 2ης είναι καλύτερος και γιατί;

Παραδείγματα Ασκήσεις Η σωστή απάντηση είναι: ΕΞΑΡΤΑΤΑΙ! ΑΝΑΛΥΣΗ: Η 1η λύση απαιτεί 6 εντολές άρα και 6 θέσεις μνήμης προγράμματος ενώ εκτελείται σε 4*21+3=87 παλμούς ρολογιού. Η 2η λύση απαιτεί 44 εντολές άρα και 44 θέσεις μνήμης προγράμματος ενώ εκτελείται σε 44 παλμούς ρολογιού. Υπενθυμίζεται ότι όλες οι εντολές στον PIC16F887 εκτελούνται σε 1 παλμό ρολογιού πλην των εντολών διακλάδωσης που εκτελούνται σε 2 παλμούς. Αν προέχει η εξοικονόμηση μνήμης προγράμματος τότε καλύτερη λύση είναι η 1η ενώ αν προέχει η ταχύτητα εκτέλεσης καλύτερη λύση είναι η 2η.