Inštrukcie PIC 16F84/62x
Pri simulácii PIC v programe KTechLab je možné napísať program aj v jazyku Assembler, preto som sa rozhodol spísať a popísať všetkých 35 inštrukcií, ktoré tieto (tento) mikroradiče poznajú. Mikroradiče 16F84, 16F627 aj 16F628 (vrátane ich novších verzií s A na konci) majú rovnakú sadu inštrukcií...
Aritmetické
ADDLW
ADDLW konštanta
Súčet konštanty a obsahu registra W a výsledok uloží do W.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | C, DC, Z |
ADDWF
ADDWF f,d
Súčet obsahu registra W a obsahu registra f a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | C, DC, Z |
DECF
DECF f,d
Odpočíta jedna od obsahu registra f a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
INCF
INCF f,d
Pripočíta jedna k obsahu registra f a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
SUBLW
SUBLW konštanta
Odpočíta konštantu od obsahu registra W a výsledok uloží do W.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | C, DC, Z |
SUBWF
SUBWF f,d
Odpočíta od obsahu registra W obsah registra f a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | C, DC, Z |
Logické
ANDLW
ANDLW konštanta
Logické AND obsahu registra W a konštanty a výsledok uloží do W.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
ANDWF
ANDWF f,d
Logické AND obsahu registra W a obsahu registra f a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
COMF
COMF f,d
Negácia obsahu registra f a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
IORLW
IORLW konštanta
Logické OR obsahu registra W a konštanty a výsledok uloží do W.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
IORWF
IORWF f,d
Logické OR obsahu registra W a obsahu registra f a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
XORLW
XORLW konštanta
Logické XOR obsahu registra W a konštanty a výsledok uloží do W.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
XORWF
XORWF f,d
Logické XOR obsahu registra W a obsahu registra f a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
Nulovanie
CLRF
CLRF f
Vynuluje register f.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
CLRW
CLRW
Vynuluje register W.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
CLRWDT
CLRWDT
Vynuluje WDT (WatchDog časovač).
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | TO, PD |
Presun dát
BCF
BCF f,b
Nastaví bit b registra f na hodnotu 0.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |
BSF
BSF f,b
Nastaví bit b registra f na hodnotu 1.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |
MOVF
MOVF f,d
Uloží obsah registra f do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | Z |
MOVLW
MOVLW konštanta
Uloží konštantu do registra W.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |
MOVWF
MOVWF f
Presunie obsah registra W do registra f.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |
RLF
RLF f,d
Rotácia doľava cez bit C a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | C |
RRF
RRF f,d
Rotácia doprava cez bit C a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | C |
SWAPF
SWAPF f,d
Výmena dolného a horného polbajtu registra f a výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |
Podporgramy a prerušenia
CALL
CALL adresa
Skok do podprogramu.
| Cyklov | 2 |
|---|---|
| Ovplyvňuje | - |
RETLW
RETLW konštanta
Návrat z podprogramu a naplnenie registra W konštantou.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |
RETURN
RETURN
Návrat z podprogramu.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |
RETFIE
RETFIE
Návrat z prerušenia.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |
Skoky
BTFSC
BTFSC f, b
Ak je bit b registra f nulový, tak preskočí nasledujúcu inštrukciu.
| Cyklov | 1 (2 pri skoku) |
|---|---|
| Ovplyvňuje | - |
BTFSS
BTFSS f,b
Ak je bit b registra f nenulový, preskočí nasledujúcu inštrukciu.
| Cyklov | 1 (2 pri skoku) |
|---|---|
| Ovplyvňuje | - |
DECFSZ
DECFSZ f,d
Odpočíta od registra f jedna, ak je výsledok nulový, preskočí nasledujúcu inštrukciu, výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 (2 pri skoku) |
|---|---|
| Ovplyvňuje | - |
GOTO
GOTO adresa
Skočí na adresu.
| Cyklov | 2 |
|---|---|
| Ovplyvňuje | - |
INCFSZ
INCFSZ f,d
K registru f pripočíta jedna, ak je výsledok nulový (pretečenie), preskočí nasledujpcu inštrukciu, výsledok uloží do:
- f, ak d=1
- W, ak d=0
| Cyklov | 1 (2 pri skoku) |
|---|---|
| Ovplyvňuje | - |
Ostatné
NOP
NOP
Prázdna inštrukcia, nerobí nič, len zaberie jeden procesorový cyklus.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |
SLEEP
SLEEP
Uvedie procesor do režimu SLEEP.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | TO, PD |
Zvláštne
Inštrukcie pre spätnú kompatibilitu, nepoužívať do nových programov!!!
OPTION
OPTION
Obsah registra W je prenesený do registra OPTION.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |
TRIS
TRIS f
Obsah registra W je prenesený do registra TRIS, patriacemu k registru f.
| Cyklov | 1 |
|---|---|
| Ovplyvňuje | - |

