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

