Set instruksi 12-bit

Rincian

ADDWF [Add W and f]
Sintaks: [ label ] ADDWF f,d
Operasi: d = W + f
Flag yang dipengaruhi: C, DC, Z
Penjelasan: Tambahkan W dan f, simpan di d
ANDLW [AND literal with W]
Sintaks: [ label ] ANDLW k
Operasi: W = W AND k
Flag yang dipengaruhi: Z
Penjelasan: hasil operasi AND antara W dan k disimpan di W
ANDWF [AND W with f]
Sintaks: [ label ] ANDWF f,d
Operasi: d = W AND f
Flag yang dipengaruhi: Z
Penjelasan: hasil operasi AND antara W dan f disimpan di d
BCF [Bit Clear f]
Sintaks: [ label ] BCF f,b
Operasi: 0 -> (f)
Flag yang dipengaruhi: -
Penjelasan: Bit b dari register f direset

BSF [Bit Set f]
Sintaks: [ label ] BSF f,b
Operasi: 1 -> (f)
Flag yang dipengaruhi: -
Penjelasan: Bit b dari register f diset

BTFSC [Bit Test f, Skip if Clear]
Sintaks: [ label ] BTFSC f,b
Operasi: Loncat jika (f) = 0
Flag yang dipengaruhi: -
Penjelasan: Jika bit ke b register f bernilai "0" maka loncati baris selanjutnya

BTFSS [Bit Test f, Skip if Set]
Sintaks: [ label ] BTFSS f,b
Operasi: loncat jika (f) = 1
Flag yang dipengaruhi: -
Penjelasan: Jika bit ke b register f bernilai "1" maka loncati baris selanjutnya

CALL [Subroutine Call]
Sintaks: [ label ] CALL k
Operasi: TOS = (PC) + 1; PC<7:0> = k; PC<10:9> = Status<6:5> ; PC<8> = 0
Flag yang dipengaruhi: -
Penjelasan: Pemanggilan Subrutin pada alamat k
CLRF [Clear f]
Sintaks: [ label ] CLRF f
Operasi: f = 0x00
Flag yang dipengaruhi: Z
Penjelasan: Isi register f dengan 0x00
CLRW [Clear W]
Sintaks: [ label ] CLRW
Operasi: W = 0x00
Flag yang dipengaruhi: Z
Penjelasan: Isi register W dengan 0x00
CLRWDT [Clear Watchdog Timer]
Sintaks: [ label ] CLRWDT
Operands: -
Operasi: WDT = 0x00;
Flag yang dipengaruhi: TO, PD
Penjelasan: bersihkan timer watchdog dan preskalarnya jika ditetapkan.
COMF [Complement f]
Sintaks: [ label ] COMF f,d
Operasi: d = inv(f)
Flag yang dipengaruhi: Z
Penjelasan: Komplemenkan register f, simpan di d
DECF [Decrement f]
Sintaks: [ label ] DECF f,d
Operasi: d = f - 1
Flag yang dipengaruhi: Z
Penjelasan: Kurangi f, simpan di d
DECFSZ [Decrement f, Skip if 0]
Sintaks: [ label ] DECFSZ f,d
Operasi: d = f - 1 ; loncat jika hasilnya 0
Flag yang dipengaruhi: -
Penjelasan: Jika hasil pengurangan register f nilainya 0, loncati baris selanjutnya
GOTO [Unconditional Branch]
Sintaks: [ label ] GOTO k
Operasi: PC<8:0> = k ; PC<10:9> = Status<6:5>
Flag yang dipengaruhi: -
Penjelasan: Loncat ke alamat k (percabangan tak bersyarat)
INCF [Increment f]
Sintaks: [ label ] INCF f,d
Operasi: d = f + 1
Flag yang dipengaruhi: Z
Penjelasan: Tambahkan f, simpan hasilnya di d
INCFSZ [Increment f, Skip if 0]
Sintaks: [ label ] INCFSZ f,d
Operasi: d = f + 1 ->; loncati jika hasilnya 0
Flag yang dipengaruhi: -
Penjelasan: Jika hasil penambahan register f nilainya 0, loncati baris selanjutnya
IORLW [Inclusive OR literal with W]
Sintaks: [ label ] IORLW k
Operasi: W = W OR k
Flag yang dipengaruhi: Z
Penjelasan: Hasil opersi OR antara W dan k disimpan di W
IORWF [Inclusive OR W with f]
Sintaks: [ label ] IORWF f,d
Operasi: d = W OR f
Flag yang dipengaruhi: Z
Penjelasan: Hasil operasi OR antara W dan f disimpan di d
MOVF [Move f]
Sintaks: [ label ] MOVF f,d
Operasi: d = f
Flag yang dipengaruhi: Z
Penjelasan: salin register f ke d
MOVLW [Move literal to W]
Sintaks: [ label ] MOVLW k
Operasi: W = k
Flag yang dipengaruhi: -
Penjelasan: Salin literal 8 bit ke W
MOVWF [Move W to f]
Sintaks: [ label ] MOVWF f
Operasi: f = W
Flag yang dipengaruhi: -
Penjelasan: Salin register W ke register f
NOP [No Operation]
Sintaks: [ label ] NOP
Operasi: -
Flag yang dipengaruhi: -
Penjelasan: Diam selama 1 siklus instruksi
OPTION [Load Option Register]
Sintaks: [ label ] Option
Operasi: OPTION_REG = W
Flag yang dipengaruhi: -
Penjelasan: Salin W ke register OPTION_REG
RETLW [Return with literal in W]
Sintaks: [ label ] RETLW k
Operasi: W = k; PC = TOS
Flag yang dipengaruhi: -
Penjelasan: Kembali dari subrutin dengan membawa nilai k di register W
RLF [Rotate Left f through Carry]
Sintaks: [ label ] RLF f,d
Operasi: d = Geser Kiri (f)
Flag yang dipengaruhi: C
Penjelasan: Geser kiri register f, simpan di d
RRF [Rotate Right f through Carry]
Sintaks: [ label ] RRF f,d
Operasi: d = Geser Kanan (f)
Flag yang dipengaruhi: C
Penjelasan: Geser kanan register f, simpan di d
SLEEP [Enter SLEEP Mode]
Sintaks: [ label ] SLEEP
Operasi: WDT = 0x00;
Flag yang dipengaruhi: TO, PD, RBWUF
Penjelasan: Masuki modus SLEEP
SUBWF [Subtract W from f]
Sintaks: [ label ] SUBWF f,d
Operasi: d = f – W
Flag yang dipengaruhi: C, DC, Z
Penjelasan: Ambil W dari f, simpan di d
SWAPF [Swap Nibbles in f]
Sintaks: [ label ] SWAPF f,d
Operasi: (f<3:0>) -> (dest<7:4>); (f<7:4>) -> (dest<3:0>)
Flag yang dipengaruhi: -
Penjelasan: tukarkan nibble atas dan bawah, simpan di d
TRIS [Load TRIS Register]
Sintaks: [ label ] TRIS f
Operasi: TRIS = W
Flag yang dipengaruhi: -
Penjelasan: Salin W ke register TRIS
XORLW [Exclusive OR literal with W]
Sintaks: [ label ] XORLW k
Operasi: W = W XOR k
Flag yang dipengaruhi: Z
Penjelasan: XOR-kan k dan W, simpan di W
XORWF [Exclusive OR W with f]
Sintaks: [ label ] XORWF f,d
Operasi: d = W XOR f
Flag yang dipengaruhi: Z
Penjelasan: XOR-kan W dan f, simpan di d