Ηλεκτρολογία (Ε.Ε.) (Επαγγελματικό Λύκειο)
Κατεβάστε σε μορφή PDF
 3 ώρες

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

30 λεπτά

Βασικές εντολές σε γλώσσα Assembly

Φύλλα Εργασίας

 Οι εντολές της γλώσσας Assembly του PIC

Ο πίνακας  παραθέτει τις 35 εντολές που αποτελούν τη γλώσσα Assembly των μιρκοελεγκτών PIC.

Οι εντολές των ελεγκτών PIC μπορούν να χωριστούν σε τέσσερις κατηγορίες.

  1. Αριθμητικές εντολές
  2. Ελέγχου εκτέλεσης
  3. Ελέγχου του μικροεπεξεργαστή
  4. Χειρισμού των bit των καταχωρητών

Η πρώτη κατηγορία αποτελείται από τις «αριθμητικές» εντολές, που περιλαμβάνουν τη πράξη της πρόσθεσης και της αφαίρε­σης ανάμεσα στα περιεχόμενα καταχωρητών, καθώς και πράξεις αύξησης ή μείω­σης των τιμών τους και πράξεις σε επίπεδο bit.

Στην επόμενη κατηγορία εντολών, ανήκουν οι εντολές «ελέγχου εκτέλεσης».  Αυτές, τις αποτελούν οι εντολές άλματος (goto), κλήσης υπορουτίνας (call) και οι εντολές επιστροφής (return) από κάποια υπορουτίνα, καθώς επίσης και οι εντολές διακλάδωσης υπό όρους.

Στην επόμενη κατηγορία ανήκουν οι εντολές «ελέγχου του μικροεπεξεργα­στή». Οι εντολές αυτές επηρεάζουν βασικά τη λειτουργία του επεξεργαστή και τα κυκλώματα που συσχετίζονται με αυτόν.

Η τελευταία κατηγορία αποτελείται από τις εντολές «χειρισμού των bit των καταχωρητών» (τοποθέτηση ή μηδενισμός bit). Με τις εντολές αυτές ελέγχουμε άμεσα, κάθε ένα ξεχωριστό bit των καταχωρητών. Η πιο προφανής χρήση των εντολών αυτών είναι ο άμεσος έλεγ­χος επιμέρους κυκλωμάτων και ακροδεκτών του μικροελεγκτή.

Μνημονικό

Τελεστής

Λειτουργία

Σημαία - Flag

 
 

Εντολές χειρισμού ψηφιολέξεων -  Byte oriented file register operations

 

ADDWF

f, d

Πρόσθεσε το W και το f

C, DC, Z

 

ANDWF

f, d

Κάνε την λογική πράξη AND ανάμεσα στο W και το f

Z

 

CLRF

f

Μηδένισε το f

Z

 

CLRW

-

Μηδένισε το W

Z

 

COMF

f, d

Φτιάξε το συμπλήρωμα του f και αποθήκευσέ το στο d

Z

 

DECF

f, d

Μείωσε την τιμή του f

Z

 

DECFSZ

f, d

Μείωσε την τιμή του f, παρέκαμψε την επόμενη εντολή αν ο f γίνει 0

 

 

INCF

f, d

Αύξησε την τιμή του f

Z

 

INCFSZ

f, d

Αύξησε την τιμή του f, παρέκαμψε την επόμενη εντολή αν ο f γίνει 0

 

 

IORWF

f, d

Κάνε την λογική πράξη IOR ανάμεσα στο W και το f

Z

 

MOVF

f, d

Μετέφερε το περιεχόμενο του f

Z

 

MOVWF

f

Μετέφερε το περιεχόμενο του W στο f

 

 

NOP

-

Εντολή δίχως λειτουργία (απλή χρονική καθυστέρηση ενός κύκλου μηχανής)

 

 

RLF

f, d

Μετέφερε προς τα αριστερά το περιεχόμενο του f μέσο του ψηφίου Carry

C

 

RRF

f, d

Μετέφερε προς τα δεξιά το περιεχόμενο του f μέσο του ψηφίου Carry

C

 

SUBWF

f, d

Αφαίρεσε το W από το f

C, DC, Z

 

SWAPF

f, d

Αντιμετάθεσε τα δύο μισά της ψηφιολέξης (Byte) στο f

 

 

XORWF

f, d

Λογική πράξη XOR ανάμεσα στο W και το f

 

Z

 

 

 

Εντολές χειρισμού ψηφίων - Bit oriented file register operations

 

BCF

f, b

Μηδένισε το ψηφίο b του καταχωρητή f

 

 

BSF

f, b

Κάνε λογικό 1 το ψηφίο b του καταχωρητή f

 

 

BTFSC

f, b

Εξέτασε το ψηφίο b του καταχωρητή f, παρέκαμψε την επόμενη εντολή αν είναι 0

 

 

BTFSS

f, b

Εξέτασε το ψηφίο b του καταχωρητή f, παρέκαμψε την επόμενη εντολή αν είναι 1

 

 

Εντολές πράξεων με σταθερούς  αριθμούς. Εντολές ελέγχου προγράμματος

 

ADDLW

k

Πρόσθεσε τον σταθερό αριθμό k με το W

C, DC, Z

 

ANDLW

k

Κάνε την λογική πράξη AND ανάμεσα στο k και το W

Z

 

CALL

k

Κάλεσε την υπορουτίνα k

 

 

CLRWDT

-

Μηδένισε τον επιτηρητή Watchdog Timer

 

 

GOTO

k

Πήγαινε και εκτέλεσε την εντολή που υπάρχει στην διεύθυνση k

 

 

IORLW

k

Κάνε την λογική πράξη IOR ανάμεσα στο k και το W

Z

 

MOVLW

k

Μετέφερε το περιεχόμενο του k στο W

 

 

RETFIE

-

Επέστρεψε στην διεύθυνση που ήσουν πριν συμβεί η διακοπή (interrupt)

 

 

RETLW

k

Επέστρεψε από υπορουτίνα και φόρτωσε τον σταθερό αριθμό k στο  W

 

 

RETURN

-

Επέστρεψε από υπορουτίνα

 

 

SLEEP

-

Ενεργοποίησε την λειτουργία χαμηλής κατανάλωσης (Sleep - κατανάλωση 2μA)

 

 

SUBLW

k

Αφαίρεσε το περιεχόμενο του  W από το σταθερό αριθμό k

C, DC, Z

 

XORLW

k

Κάνε την λογική πράξη XOR ανάμεσα στο k και το W

Z

 
: Οι εντολές του μικροελεγκτή PIC

Οι PIC υποστηρίζουν τρία είδη διευθυνσιοδότησης: την άμεση, την έμμεση και την απευθείας.  Με την απευθείας διευθυνσιοδότηση, μεταφέρουμε τα δεδομένα από ένα καταχωρητή σε μια θέση μνήμης. Με την άμεση διευθυνσιοδότηση μεταφέρουμε αριθμητικά δεδομένα (literals) στον καταχωρητή εργασίας W. Τέλος, στην έμμεση διευθυνσιοδότηση, προσπελαύνουμε ένα καταχωρητή μέσω ενός βοηθητικού, ο οποίος περιέχει την διεύθυνση του καταχωρητή που θέλουμε να εγγράψουμε ή να διαβάσουμε. 

 
           

 

 

 

 

Γλώσσα χαμηλού επιπέδου Assembly

Διευκρίνιση: 
Ερμηνεία των εντολών της assembly
Δημιουργός Σεναρίου: ΕΛΕΥΘΕΡΙΟΣ ΝΑΘΑΝΑΗΛΙΔΗΣ (Εκπαιδευτικός)