Mnemonika (PIC procesoriams)- jei ko nors nežinai, pamiršai ar tiesiog reikia konkrečių pavyzdžių. Čia rasi visko.

Mnemonika

 Aprašymas

Ciklai

Požymiai

Pastabos

Duomenų siuntimo operacijos

MOVLW   k

k konstantos įrašymas į darbinę atmintį

1

A1

MOVWF   f

Iš darbinės atminties siuntimas į f registrą

1

A2

MOVF       f,d

Registro f persiuntimas 

1

Z

A3

CLRF         -

f registro išvalymas

1

Z

A4

CLRW        -

w darbinio registro išvalymas

1

Z

A5

SWAPF      f,d

Tetradų (pusbaičių) sukeitimas f registre

1

A6

Loginės ir aritmetinės operacijos

ADDLW     k

Sudėti konstanta su w                  (k+w→w)

1

C, DC, Z

A7

ADDWF     f,d

Sudėti w su f                                 (w+f→d)

1

C, DC, Z

A8

SUBLW      k

Atimti w iš konstantos                  (k-w→w)

1

C, DC, Z

A9

SUBWF      f,d

Atimti w iš f                                  (f-w→d)

1

C, DC, Z

A10

ANDLW     k

Loginis „IR“ konstantos su w

1

Z

A11

ANDWF     f,d

Loginis „IR“ w su f

1

Z

A12

IORLW       k

Loginis „ARBA“ konstantos su w

1

Z

A13

IORWF       f,d

Loginis „ARBA“ w su f

1

Z

A14

XORLW      k

Išskirtinis „ARBA“ konstantos su w

1

Z

A15

XORWF     f,d

Išskirtinis „ARBA“ w su f

1

Z

A16

INCF          f,d

f registras padidinamas 1              (f+1→d)

1

Z

A17

DECF         f,d

f registras sumažinamas 1              (f-1→d)

1

Z

A18

RLF            f,d

1

C

A19

RRF            f,d

1

C

A20

COMF        f,d

Registro f inversija

1

Z

A21

Bitų operacijos ir tiesioginės operacijos

BCF            f,b

Registre f, išvalyti b bitą

1

A22

BSF             f,b

Registre f, nustatyti b bitą

1

A23

BTFSC        f,b

Praleisti komanda jeigu bitas b=0

1(2)

A24

BTFSS        f,b

Praleisti komanda jeigu bitas b=1

1(2)

A25

DECFSZ     f,d

Sumažinti registrą 1-etu ir praleisti komanda jeigu 0

1(2)

A26

INCFSZ      f,d

Padidinti registrą 1-etu ir praleisti komanda jeigu 0

1(2)

A27

GOTO         k

Pereiti prie adreso k,                            (atmaina b  k)

2

A28

CALL          k

k  paprogramės iškvietimas

2

A29

RETURN     -

Grįžimas iš paprogramės

2

A30

RETLW       k

Grįžimas iš paprogramės įrašant konstanta į w reg.

2

A31

RETFIE        -

Grįžimas iš pertraukimo

2

A32

Kitos operacijos

NOP              -

Tuščios eigos komanda

1

TO,PD

A33

CLRWDT     -

Watchdog taimerio numetimas

1

A34

SLEEP          -

Perėjimas į SLEEP režimą

1

TO,PD

A35

A1

Komanda:              MOVLW   k   - k konstantos įrašymas į darbinę atmintį (mov litera data).

Operacija:             k > w 

Pavyzdys 1            movlw 0x01

Po instrukcijos      w=0x01

Pavyzdys 2            movlw regist

Prieš instrukcija:   w=0x12 ir regist=0x39

Po instrukcijos:     w=0x39

 

A2

Komanda:              MOVWF   f  - w darbinio registro kopijavimas registrą f.

Operacija:             w > f 

Pavyzdys 1            movwf regist

Prieš instrukcija:   w=0x12 ir regist=0x39

Po instrukcijos:     w=0x12 ir regist=0x12

 

Pavyzdys 2            movwf INDF

Prieš instrukcija:   w=0x20 ir FSR=0x15, ląstelės adrese 0x15 įrašyta 0x01

Po instrukcijos      w=0x20 ir FSR=0x15, ląstelės adrese 0x15 įrašyta 0x20

 

A3

Komanda:              MOVF       f,d  -  registro kopijavimas į d registrą (mov f).

Operacija:             f > d

Pavyzdys 1            movf FSR,w

Prieš instrukcija:   FSR=0x0C, w=0x00

Po instrukcijos:     FSR=0x0C, w=0x0C

Pavyzdys 2            movf INDF,w

Prieš instrukcija:   FSR=0x2C, w=0x15, atminties ląstelėje, kurios adresas 0x2C įrašyta 0x00

Po instrukcijos:     FSR=0x2C, w=0x00, Z=1

 

A4

Komanda:              CLRF  -  f darbinio registro išvalymas (clear f)

Operacija:             0 > f

Pavyzdys 1            CLRF STATUS

Prieš instrukcija:   STATUS=0X0C

Po instrukcijos:     STATUS=0X00, Z=1

Pavyzdys 2            CLRF INDF

Prieš instrukcija:   FSR=0x2C, atminties ląstelėje, kurios adresas 0x2C įrašyta 0x01, Z=x

Po instrukcijos:     FSR=0x2C, atminties ląstelėje, kurios adresas 0x2C įrašyta 0x00, Z=1

 

A5

Komanda:              CLRW   -  wregistro išvalymas. (clear w)

Operacija:             f > d

Pavyzdys 1            CLRW

Prieš instrukcija:   w=0x05

Po instrukcijos:     w=0x00, Z=1

 

A6

Komanda:              SWAPF      f,d -  Tetradų (pusbaičių) sukeitimas f registre.

Operacija:             f <0:3>, d<4:7>→f <4:7>, d<0:3>

Pavyzdys 1            SWAPF REG,w

Prieš instrukcija:   REG=0x0C, w=0x00

Po instrukcijos:     FSR=0x0C, w=0xC0

Pavyzdys 2            SWAPF REG,f

Prieš instrukcija:   REG=0x2C

Po instrukcijos:     REG=0xC2

A7

Komanda:              ADDLW k   -  sudėti konstanta su w ir įrašo į w registrą (add litera and w register)

Operacija:             (w)+k > w

Pavyzdys 1            ADDLW 0x15  

Prieš instrukcija:   w=0x10

Po instrukcijos:     w=0x25

Pavyzdys 2            ADDLW REG  

Prieš instrukcija:   REG=0x11, w=0x15

Po instrukcijos:     REG=0x11, w=0x26,

 

A8

Komanda:              ADDWF     f,d   -  w registrą sudėti su f registru (add w register with f register)

Operacija:             (w)+f > d

Pavyzdys 1            ADDWF     FSR,w

Prieš instrukcija:   FSR=0x17, w=0x10

Po instrukcijos:     FSR=0x17, w=0x27

Pavyzdys 2            ADDWF     INDF,f  

Prieš instrukcija:   FSR=0x21, w=0x15, atminties ląstelėje, kurios adresas 0x21 įrašyta 0x01

Po instrukcijos:     FSR=0x21, w=0x15, atminties ląstelėje, kurios adresas 0x21 įrašyta 0x36

 

A9

Komanda:              SUBLW      k   -  Atimti w iš konstantos k                 

Operacija:             k-(w) > w

Pavyzdys 1            SUBLW      0x03  

Prieš instrukcija:   w=0x01, C=x, Z=x

Po instrukcijos:     w=0x02, C=1, Z=0,                rezultatas >0

Prieš instrukcija:   w=0x03, C=x, Z=x

Po instrukcijos:     w=0x00, C=1, Z=1,                rezultatas =0

Prieš instrukcija:   w=0x04, C=x, Z=x

Po instrukcijos:     w=0xFF, C=0, Z=0,               rezultatas <0

 

Pavyzdys 2            SUBLW      REG  

Prieš instrukcija:   REG=0x36, w=0x11,C=x

Po instrukcijos:     REG=0x36, w=0x25, C=1

 

A10

Komanda:              SUBWF      f,d   -  f registro atimti w registrą ir įrašyti į d.

Operacija:             f – (w) > d

Pavyzdys 1            SUBWF      REG,f  

Prieš instrukcija:   REG=0x03, w=0x02, C=x, Z=x

Po instrukcijos:     REG=0x01, w=0x02, C=1, Z=0             rezultatas >0

Prieš instrukcija:   REG=0x02, w=0x02, C=x, Z=x

Po instrukcijos:     REG=0x00, w=0x02, C=1, Z=1             rezultatas =0

Prieš instrukcija:   REG=0x01, w=0x02, C=x, Z=x

Po instrukcijos:     REG=0xFF, w=0x02, C=0, Z=0             rezultatas <0

A11

Komanda:              ANDLW     k   -  Loginis „IR“ konstantos su w .

Operacija:             (w) „IR“ k> w

Pavyzdys 1            ANDLW     0x5F

Prieš instrukcija:   w=0xA3                                  ;0101 1111 (0x5F)

Po instrukcijos:     w=0x03                                  ;1010 0011 (0xA3)

                                                                           ;0000 0011 (0x03)

Pavyzdys 2            ANDLW     REG

Prieš instrukcija:   w=0xA3                                  ;1010 0011 (0xA3)

REG=0x37                                                          ;0011 0111 (0x37)

Po instrukcijos:     REG=0x37, w=0x23               ;0010 0011 (0x23)

 

A12

Komanda:              ANDWF     f,d  -  Loginis „IR“ w su f  ir įrašo į d.

Operacija:             (w) „IR“ f > d

Pavyzdys 1            ANDWF     FSR,f

Prieš instrukcija:   FSR=0xC2, w=0x17               ;0001 0111 (0x17)

Po instrukcijos:     FSR=0x02, w=0x17               ;1100 0010 (0xC2)

                                                                           ;0000 0010 (0x02)

Pavyzdys 2            ANDWF     FSR,w

Prieš instrukcija:   FSR=0x2C, w=0x17                ;0001 0111 (0x17)

Po instrukcijos:     FSR=0x2C, w=0x02               ;1100 0010 (0xC2)

                                                                            ;0000 0010 (0x02)

 

A13

Komanda:              IORLW       k  -  Loginis „ARBA“ konstantos su w ir įrašo į w registrą

Operacija:             (w) „AR“ k > w

Pavyzdys 1            IORLW  0x35

Prieš instrukcija:   w=0x9A, Z=x                  &nb