16F84 ve 16F87X ailesinde aynı komut seti kullanılır. Sette 35 komut vardır. Komutlar üç grupta incelenir; bit, byte ve sabit/kontrol işlemleri.
Komut Biçimleri (Formatları)
Genel Komut Biçimleri:
- Byte Yönlendirmesi Yapan Kaydedici İşlemleri
(d=0 için hedef W, d=1 için hedef f, f=7 bit kaydedici adresi)
13 8 | 7 | 6 0 |
İŞLEM KODU | d | f (kaydedici) |
- Bit Yönlendirmesi Yapan Kaydedici İşlemleri
(b=3 bit adres, f=7 bit kaydedici adresi)
13 10 | 9 7 | 6 0 |
İŞLEM KODU | b (bit no) | f (kaydedici) |
- Denetim veya Sabit/Sayısal (literal) İşlemleri
13 8 | 7 0 |
İŞLEM KODU | k (sabit) |
Yalnızca call ve goto komutlarında kullanılan biçim
13 11 | 10 0 |
İŞLEM KODU | k (sabit) |
KOMUTLARIN KULLANILIŞI
ADDLW Bir sayı/sabit ile W’nin içeriğini topla
Söz dizim kuralı : [etiket] ADDLW k
İşleçler : 0 ≤ k ≤ 255
İşlevi : (W) + k à (W)
Status etkisi : C, DC, Z
Tanımı : W’nin içeriğini 8 bitlik k sabiti ile toplar ve sonucu W’ye aktarır.
Örnek:
ADDLW h’FF’ ; Komuttan önce k=h’FF’ ve W=h’01’ ise,komut çalıştırıldıktan sonra
; W=00h olur. Toplam sonucu, FFh’tan büyük olduğu zaman, elde
; biti, STATUS kaydedicisinin içinde C-Carry bitinde (STATUS, 0)
; tutulur. W kaydedicisinin içeriği (değeri) sıfırsa, status
; kaydedicisinin zero biti de 1 (set zero flag) yapılır.
ADDWF Bir kaydedici içeriği ile W’nin içeriğini topla
Söz dizim kuralı : [etiket] ADDWF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (W) + f à (hedef)
d=0 ise hedef W kaydedicisidir, d=1 ise f kaydedicisidir.
Status etkisi : C, DC, Z
Tanımı : W’nin içeriğini, 7 bitlik f ile toplar ve sonucu; d=0 ise W’ye, d=1
ise f’ye aktarır.
Örnek:
ADDLW f,0 ; Bu komuttan önce W=h’10’, f=h’10’ ise komuttan sonra
; W=20h ve f=10h olur.
ADDWF f,1 ; Bu komuttan önce W=h’10’, f=h’10’ ise komuttan sonra
; W=10h ve f=20h olur.
ANDLW Bir sayı ile W’nin içeriğine AND (ve) işlemini uygula
Söz dizim kuralı : [etiket] ANDLW k
İşleçler : 0 ≤ k ≤ 255
İşlevi : (W) AND k à (W)
Status etkisi : Z
Tanımı : W’nin içeriğini k ile AND’le ve sonucu W’ye aktar.
Örnek:
ANDLW h’01’ ; Bu komuttan önce W=h’01’ ise, komut VE işlemini uygular. Komut
; sonucu W=h’01’ olur. İşlem sonucunda, 0 değeri elde edilirse, ; status kaydedicisinin zero biti 1 yapılır.
ANDWF Kaydedici içeriğini, W’nin içeriği ile AND’le
Söz dizim kuralı : [etiket] ANDWF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (W) AND f à (hedef)
d=0 ise hedef W kaydedicisidir, d=1 ise f kaydedicisidir.
Status etkisi : Z
Tanımı : W’nin içeriğini f kaydedicisinin içeriği ile AND’le ve sonucu; d=0 ise
W’ye, d=1 ise f’ye yükle.
Örnek:
ANDLW f,0 ; Bu komuttan önce W=h’03’, f=h’07’ ise komuttan sonra
; W=02h ve f=07h olur.
ANDWF f,1 ; Bu komuttan önce W=h’03’, f=h’07’ ise komuttan sonra
; W=03h ve f=02h olur.
Not 1 : AND işlemi sonucu, h’00’ olsaydı STATUS register’ının 2.biti olan Z
biti 1 (Set) yapılırdı.
Not 2 : AND mantıksal işleminin maskeleme özelliği vardır. Mantıksal
durumunun değişmesini istemediğimiz bitleri, 1 ile AND’lersek,
diğer bitler 0 olurken maskelediğimiz bitler değişmez.
BCF Kaydedicinin belirlenen bitini sıfırla
Söz dizim kuralı : [etiket] BCF f,b
İşleçler : 0 ≤ f ≤ 127 0 ≤ b ≤ 7
İşlevi : 0 à f(b)
Status etkisi : Yok
Tanımı : f kaydedicisinin b.bitini 0 yap.
Örnek:
BCF PORTD,0 ; Komutu çalışınca PORTD kaydedicisinin ilk biti 0 yapılır. PORTD’nin ; 0.bitine bağlı bir led yanıyorsa, bu komutla söndürülür.
BSF Kaydedicinin belirlenen bitini bir (set) yap
Söz dizim kuralı : [etiket] BSF f,b
İşleçler : 0 ≤ f ≤ 127 0 ≤ b ≤ 7
İşlevi : 1 à f(b)
Status etkisi : Yok
Tanımı : f kaydedicisinin b.bitini 1 (set) yap.
Örnek:
BSF PORTD,0 ; Komutu çalışınca PORTD kaydedicisinin ilk biti 1 yapılır. PORTD’nin ; 0.bitine bağlı bir led yanıyorsa, bu komutla yakılabilir.
BTFSC Kaydedicinin belirlenen biti 0 ise, bundan sonraki komutu atla
Söz dizim kuralı : [etiket] BTFSC f,b
İşleçler : 0 ≤ f ≤ 127 0 ≤ b ≤ 7
İşlevi : 0 à f(b)
Status etkisi : Yok
Tanımı : f kaydedicisinin b.bitinin 0 olup olmadığı kontrol edilir. Eğer 0 ise
bu komutun altındaki komut işlemez, bir sonraki komuta sapılır.
Aksi durumda ise sıradaki komut uygulanır.
Örnek:
Basla
BTFSC PORTB,0 ; Komut çalışınca PORTB kaydedicisinin ilk bitinin 0 olup olmadığı
; kontrol edilir. Eğer 0 ise komutun hemen altındaki komut işlenmez
; bir sonraki komuta sapılır. Aksi durumda ise sıradaki komut
; uygulanır.
GOTO Basla ; PORTB’nin 0.biti 0 değilse işlenecek, tekrar başa dönecek.
BSF PORTB,1 ; PORTB’nin 0.biti 0 olunca işlenecek, aynı bit bu komutla 1
; yapılacak. Eğer pinde led varsa yanacak. Böylece pinde; bir kare
; dalga (sinyal) oluşur.
BTFSS Kaydedicinin belirlenen biti 1 ise, bundan sonraki komutu atla
Söz dizim kuralı : [etiket] BTFSS f,b
İşleçler : 0 ≤ f ≤ 127 0 ≤ b ≤ 7
İşlevi : 1 à f(b)
Status etkisi : Yok
Tanımı : f kaydedicisinin b.bitinin 1 olup olmadığı kontrol edilir. Eğer 1 ise
bu komutun altındaki komut işlemez, bir sonraki komuta sapılır.
Aksi durumda ise sıradaki komut uygulanır.
Örnek:
Basla
BTFSS PORTA,0
GOTO Basla
BSF PORTB,1
BTFSC STATUS,0
BTFSC STATUS,2
CALL Altprogramı çağır
Söz dizim kuralı : [etiket] CALL k
İşleçler : 0 ≤ k ≤ 2047
İşlevi : (PC) + 1 à TOS
PC: Program Sayacı (Program Counter)
TOS: Yığının üstü (Top of Stack)
k à (PC <10:0>)
PCLATH <4:3> à PC <12:11>
Status etkisi : Yok
Tanımı : Altprogramı çağırır. Önce PC’yi bir artırır ve yığının (stack) üstüne
koyar. Sonra altprogram adresi PC’nin <10:0> bitlerine yüklenir.
PCLATH’ın <4:3> bitlerindeki değerler, PC’nin üst bitleri olan
<12:11> arasındaki bitlere yüklenir. CALL işlemi iki saat
çevriminde uygulanan bir dallanma komutudur.
Örnek:
REF1 CALL Gonder ; Bu komuta gelindiğinde PC bir artırılarak TOS’e konur. TOS’da
; REF1’in adresi vardır. Böylece, TOS’te komut uygulandıktan sonra
; dönülecek adres oluşturulmuş olur. Bundan sonraki aşamada
; PC’ye Gonder altprogramının adresi oluşturulur yani altprograma
; sapılır. Altprogram komutları sırası geldikçe uygulanacak
; altprogramı sonlandıran RETURN ile birlikte, TOS’teki değer PC’ye
; geri yüklenecektir ki bundan sonraki komut uygulanabilsin.
; RETURN uygulandığında, TOS’deki adres PC’ye yüklenir.
; PCLATH’ın <4:3> bitleri ise bellek sayfalarının değerini içerdiği için
; üst bitlere yüklenerek altprogramın bulunduğu adrese doğru
; sapılması sağlanır.
CLRF Kaydedici içeriğini sil (sıfırla)
Söz dizim kuralı : [etiket] CLRF f
İşleçler : 0 ≤ f ≤ 127
İşlevi : h’00’ à f 1 à Z
Status etkisi : Z
Tanımı : f kaydedicisinin içeriği sıfırlanır ve değeri sıfır olduğu için STATUS
kaydedicisinin zero biti 1 (set) yapılır.
Örnek:
CLRF TRISD ;D Portunun yönlendiricisi olan TRISD kaydedicisinin tüm bitleri sıfır
; yapılmıştır. Böylece D portu çıkış olarak belirlenmiştir. TRISD’nin
; sıfırlanması sonucu STATUS kaydedicisinin zero biti de set
; edilmiştir.
CLRW W Kaydedicisinin içeriğini sil (temizle)
Söz dizim kuralı : [etiket] CLRW
İşleçler : Yok
İşlevi : h’00’ à (W) 1 à Z
Status etkisi : Z
Tanımı : W kaydedicisinin içeriği sıfırlanır ve değeri sıfır olduğu için STATUS
kaydedicisinin zero biti 1 (set) yapılır.
Örnek:
CLRW ; W kaydedicisi temizlendi. STATUS kaydedicisinin zero biti de set
; edilmiştir.
CLRWDT Watchdog Timer içeriğini sil (temizle)
Söz dizim kuralı : [etiket] CLRWDT
İşleçler : Yok
İşlevi : h’00’ à WDT 0 à WDT (ön bölücü sabit)
1 à TO 1 à PD
Status etkisi : TO, PD
Tanımı : W kaydedicisinin içeriği sıfırlanır ve değeri sıfır olduğu için STATUS
kaydedicisinin zero biti 1 (set) yapılır.
Örnek:
CLRWDT ; Komut uygulanmadan önce WDT’nin içeriği ne olursa olsun, komut
; çalıştırıldıktan sonra WDT sayacı ve ön bölücüsü 0’lanır (reset).
; Aynı zamanda TO, PD (Time Out ve Power Down) bitleri 1 olur.
COMF Kaydedici içeriğinin tersini (komplementini) al
Söz dizim kuralı : [etiket] COMF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : f à (hedef)
Status etkisi : Z
Tanımı : f kaydedicisinin içeriği terslenir ve d=0 ise sonuç W’ye, d=1 ise
f’ye yüklenir.
Örnek:
COMF f,0 ; Bu komuttan önce W=h’02’, f=h’01’ ise komuttan sonra
; W=h’FE’ ve f=h’01’ olur.
COMF f,1 ; Bu komuttan önce W=h’02’, f=h’01’ ise komuttan sonra
; W=h’02’ ve f=h’FE’olur.
DECF Kaydedici içeriğini bir azalt
Söz dizim kuralı : [etiket] DECF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (f) – 1 à (hedef)
Status etkisi : Z
Tanımı : f kaydedicisinin içeriği bir azaltılır ve d=0 ise sonuç W’ye, d=1 ise
f’ye yüklenir.
Örnek:
DECF SAYAC,0 ; Sayacın içindeki değer her ne ise, bir azaltılır ve sonuç d=0 ise
; W’ye, d=1 ise SAYAC kaydedicisine yüklenir.
DECFSZ Kaydedici içeriğini bir azalt, 0 oldu ise bir komut atla
Söz dizim kuralı : [etiket] DECFSZ f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (f) – 1 à (hedef) sonuç=0 ise atla
Status etkisi : Yok
Tanımı : f kaydedicisinin içeriği bir azaltılır ve sonuçta oluşan değer sıfır ise,
bu komutu izleyen komut atlanır. Sonuçta d=0 ise W’ye, d=1 ise
f’ye yüklenir. Komut atlamayla sonuçlanırsa, ikinci çevrim
süresinde NOP uygulayarak, toplam iki saat çevrim süresinde
işlenir. Atlama olmadığı durumda uygulanması bir saat çevrimi
süredir.
Örnek:
Azalt
DECFSZ SAYAC,1 ; SAYAC 1 azaltılır, sonuç 0 ise BSF komutuna atlanır.
GOTO Azalt ; Sonuç 0 değilse Azalt etiketine sapılır.
BSF PORTB,1 ; Sonuç 0 ise PORTB’nin 1.biti set (1) edilir.
GOTO Adrese git
Söz dizim kuralı : [etiket] GOTO k
İşleçler : 0 ≤ k ≤ 2047
İşlevi : k à PC <10:0>
PCLATH <4:3> à PC <12:11>
Status etkisi : Yok
Tanımı : GOTO koşulsuz bir sapma komutudur. k’nın adresi neyse PC’ye
<10:0> bitlerine yüklenir. Bellek sayfası neyse PCLATH’ın <4:3>
bitleri PC’nin üst bitlerine yüklenir ve adrese sapılır. Bu komut iki
saat sürede uygulanır.
Örnek:
Tası GOTO Bas ; Komuttan önce PC’da Tası etiketinin adresi vardır. Komut
; çalıştırıldıktan sonra ise PC’de Bas etiketinin adresi oluşur.
INCF Kaydedici içeriğini bir arttır
Söz dizim kuralı : [etiket] INCF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (f) + 1 à (hedef)
Status etkisi : Z
Tanımı : f kaydedicisinin içeriği bir arttırılır ve d=0 ise W’ye, d=1 ise f’ye
yüklenir.
Örnek:
INCF SAYAC,0 ; Sayacın içindeki değer her ne ise bir arttırılır ve sonuç d’nin 0
; olması durumunda W’ye, aksi halde f’ye yüklenir. Sonucun kendisi
; 0 ise Z biti 1 yapılır.
INCFSZ Kaydedici içeriğini bir arttır, 0 oldu ise bir komut atla
Söz dizim kuralı : [etiket] INCFSZ f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (f) + 1 à (hedef) sonuç=0 ise atla
Status etkisi : Yok
Tanımı : f kaydedicisinin içeriği bir arttırılır ve sonuçta oluşan değer sıfır ise,
bu komutu izleyen komut atlanır. Sonuçta d=0 ise W’ye, d=1 ise f’ye yüklenir. Komut atlamayla sonuçlanırsa, ikinci çevrim süresinde NOP uygulayarak, toplam iki saat çevrim süresinde işlenir. Atlama olmadığı durumda uygulanması bir saat çevrimi süredir.
Örnek:
Artır
INCFSZ SAYAC,1 ; SAYAC 1 artar, sonuç 0 ise BSF komutuna atlanır.
GOTO Artır ; Sonuç 0 değilse Artır etiketine sapılır.
BSF PORTB,1 ; Sonuç 0 ise PORTB’nin 1.biti set (1) edilir.
IORLW Bir sayı ile W’nin içeriğine OR (veya) işlemini uygula
Söz dizim kuralı : [etiket] IORLW k
İşleçler : 0 ≤ k ≤ 255
İşlevi : (W) OR k à (W)
Status etkisi : Z
Tanımı : W kaydedicisinin içeriği k sabiti ile OR’lanır. Sonuç W’ye yüklenir.
Mantıksal işlem sonunda oluşan değer 0 ise, Z biti 1 yapılır.
Örnek:
IORLW h’0F’ ; Komut öncesi W=h’F0’ ise, komut sonrası W=h’FF’ olur.
IORWF Kaydedici içeriği ile W’nin içeriğine OR (veya) işlemini uygula
Söz dizim kuralı : [etiket] IORWF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (W) OR (f) à (hedef)
Status etkisi : Z
Tanımı : W kaydedicisinin içeriği f kaydedicisinin içeriği ile OR’lanır. Sonuç
d=0 ise W’ye, d=1 ise f’ye yüklenir. Mantıksal işlem sonunda
oluşan değer 0 ise, Z biti 1 yapılır.
Örnek:
IORWF f,0 ; Komuttan önce W=h’10’ ve f=h’01’ ise, komuttan sonra W=h’11’,
f=h’01’ olur.
IORWF f,1 ; Komuttan önce W=h’10’ ve f=h’01’ ise, komuttan sonra W=h’10’,
f=h’11’ olur.
MOVLW W’ye bir sayı/sabit yükle
Söz dizim kuralı : [etiket] MOVLW k
İşleçler : 0 ≤ k ≤ 255
İşlevi : k à (W)
Status etkisi : Yok
Tanımı : W kaydedicisinin içeriği k olur.
Örnek:
MOVLW k ; Komut öncesi W’nin değeri ne olursa olsun, komuttan sonra k
sabitinin değeri ile yüklenir.
MOVF Kaydedici içeriğini hedefe taşı
Söz dizim kuralı : [etiket] MOVF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (f) à (hedef)
Status etkisi : Z
Tanımı : f kaydedicisinin içeriği; d=0 ise W kaydedicisine, d=1 ise kendisine
yüklenir.
Örnek:
MOVF f,0 ; Komuttan önce W=h’0F’ ve f=h’01’ ise, komuttan sonra W=h’01’,
f=h’01’ olur.
MOVF f,1 ; Komuttan önce W=h’0F’ ve f=h’01’ ise, komuttan sonra W=h’0F’,
f=h’01’ olur.
MOVWF W’nin içeriğini f kaydedicisine taşı
Söz dizim kuralı : [etiket] MOVWF f
İşleçler : 0 ≤ f ≤ 127
İşlevi : (W) à (f)
Status etkisi : Yok
Tanımı : W kaydedicisinin içeriği; f kaydedicisine taşınır.
Örnek:
MOVWF SAYAC ; Komutu uygulamadan önce SAYAC kaydedicisinin içeriği ne olursa
; olsun komut uygulandıktan sonra W kaydedicisinin içeriği SAYAC’a
; yüklenir.
NOP İşlem yapma
Söz dizim kuralı : [etiket] NOP
İşleçler : Yok
İşlevi : Yok
Status etkisi : Yok
Tanımı : Hiçbir şey yapılmadan bir saat çevrimi süre alır.
Örnek:
NOP ; Hiçbir işlem yapılmadan, bir çevrimlik süre geçirir.
RETFIE Kesme (interrupt) altprogramından geri dön
Söz dizim kuralı : [etiket] RETFIE
İşleçler : Yok
İşlevi : TOS à PC 1 à GIE
Status etkisi : Yok
Tanımı : Kesme altyordamından dönmek için kullanılır. Dönüş yapılacak
adres TOS’da olduğu için, TOS değeri PC’ye yüklenir. INTCON
kesme kaydedicisinin, GIE biti set edilir. Komut iki saat çevriminde
işlenir.
Örnek:
RETFIE ; Bu komut uygulanınca PC=TOS ve GIE=1 olur.
RETLW Altprogramdan W’ye bir sayı/sabit yükle ve geri dön
Söz dizim kuralı : [etiket] RETLW k
İşleçler : 0 ≤ k ≤ 255
İşlevi : k à (W) TOS à PC
Status etkisi : Yok
Tanımı : Altyordamdan; W’ye k sabiti yüklenmiş olarak dönmek için
kullanılır. Dönüş yapılacak adres TOS’da olduğu için, TOS değeri
PC’ye yüklenir. Komut iki saat çevriminde işlenir.
Örnek:
RETLW h’21’ ; Bu komut uygulandıktan sonra W kaydedicisine h’21’ yüklenir. PC’ye
; TOS değeri yerleştirilir. Özellikle altprogramdan değerler dizisinden
; biri ile dönmesi istendiğinde kullanılır.
RETURN Altprogramdan geri dön
Söz dizim kuralı : [etiket] RETURN
İşleçler : Yok
İşlevi : TOS à PC
Status etkisi : Yok
Tanımı : Altprogramdan TOS’taki adrese geri döner. Komut iki saat çevrimi
sürede çalışır.
Örnek:
RETURN ; Bu komut uygulanınca PC’ye TOS değeri yerleştirilir.
RLF Kaydedici bitlerini sola doğru döndür
Söz dizim kuralı : [etiket] RLF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : Tanım kısmında açıklanmaktadır.
Status etkisi : C
Tanımı : f kaydedicisindeki bitleri bir bit sola doğru yerleştir. Böylece 0.bitin
değeri 1.bite, 1.bitin değeri 2.bite,…, 6.bitin değeri 7.bite yerleşir.
Kaydedici 8 bitlik olduğundan 7.bitin değeri status kaydedicisinin
Carry bitine yerleştirilir. Daha sonra Carry bitindeki değer, f
kaydedicisinin 0.bitine aktarılır. Böylece hiçbir bit bozulmadan sola
doğru kaymış olur. d=0 ise, sonucu W’ye, aksi durumda f’ye taşır.
C biti f kaydedicisinin en üst bitinin değerini taşır.

Örnek:
RLF SOL,1 ; Komuttan önce SOL=h’01’, STATUS taşma (Carry) biti olan C=0
; ise, komut çalışınca SOL=b’0000 0010’ ve C=0 olur.
RLF SOL,1 ; Komut bir kez daha çalışınca, SOL=b’0000 0100’ ve C=0 olur.
RRF Kaydedici bitlerini birer bit sağa aktar
Söz dizim kuralı : [etiket] RRF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : Tanım kısmında açıklanmaktadır.
Status etkisi : C
Tanımı : f kaydedicisindeki bitleri bir bit sağa doğru yerleştir. Böylece
7.bitin değeri 6.bite, 6.bitin değeri 5.bite,…, 1.bitin değeri 0.bite
yerleşir. Kaydedici 8 bitlik olduğundan 0.bitin değeri status
kaydedicisinin Carry bitine yerleştirilir. Daha sonra Carry bitindeki
değer, f kaydedicisinin 7.bitine aktarılır. Böylece hiçbir bit
bozulmadan sağa doğru kaymış olur. d=0 ise, sonucu W’ye, aksi
durumda f’ye taşır. C biti f kaydedicisinin en üst bitinin değerini
taşır.

Örnek:
RRF SAG,1 ; Komuttan önce SAG=h’02’, STATUS taşma (Carry) biti olan C=0
; ise, komut çalışınca SAG=b’0000 0001’ ve C=0 olur.
RRF SAG,1 ; Komut bir kez daha çalışınca, SAG=b’0000 0000’ ve C=1 olur.
SLEEP Uyu
Söz dizim kuralı : [etiket] SLEEP
İşleçler : Yok
İşlevi : h’00’ à WDT 0 à WDT ön bölücü sabiti
1 à TO 0 à PDStatus etkisi : TO, PD
Tanımı : PD, güç kesim ( power-down) biti temizlenir. TO süre aşımı (time- out) biti set (1) olur. WDT ve ön bölücü sabit de sıfırlanır.
Osilatörün de durmasıyla, işlemci uyuma moduna geçer. PIC bu
durumda çok az güç harcar.
Örnek:
Uyu SLEEP ; PIC bu durumda çok az güç harcar. Arada bir kontrol gereken
; güvenlik işlerinde, ya da belirli sürelerde yapılacak işler bittiğinde
; PIC, uyuma moduna sokulur.
SUBLW Bir sayı/sabitten W’nin içeriğini çıkar
Söz dizim kuralı : [etiket] SUBLW k
İşleçler : 0 ≤ k ≤ 255
İşlevi : k – (W) à (W)
Status etkisi : C, DC, Z
Tanımı : k sabit değerinden,W’nin içeriği çıkarılır (2’lik tümleyen ile) ve
sonucu W’ye yüklenir.
Örnek:
SUBLW h’01’ ; Komuttan önce W=h’02’ ve C=1 ise, komuttan sonra W=h’FF’ ve
; C=0 olur. (Sonuç negatif)
SUBWF W’den f’yi çıkar
Söz dizim kuralı : [etiket] SUBWF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (f) – (W) à (hedef)
d=0 ise hedef W kaydedicisidir, d=1 ise f kaydedicisidir.
Status etkisi : C, DC, Z
Tanımı : f kaydedicisinin içeriğinden W çıkarılır (2’lik tümleyen ile). d=0 ise
sonuç W’ye, d=1 ise f kaydedicisine yüklenir.
Örnek:
SUBLW f,0 ; Bu komuttan önce W=h’01’, f=h’02’ ise komuttan sonra
; W=h’01’ ve C=1 olur.
SUBWF f,0 ; İkinci komut çalışınca W=h’00’, C=1 ve Z=1 olur (sonuç pozitif).
SUBWF f,0 ; Üçüncü komut da çalışınca W=h’FF’ ve C=0 olur (sonuç negatif).
SWAPF Kaydedici içeriğinde 4’lülerin (digit) yerini değiştirir
Söz dizim kuralı : [etiket] SWAPF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (f<3:0>) à (Hedef<7:4>)
(f<7:4>) à (Hedef<3:0>)
Status etkisi : Yok
Tanımı : f kaydedicisinin üst dörtlü biti ile alt dörtlü biti yer değiştirirler.
Sonuç d=0 ise W’ye, d=1 ise f kaydedicisine yüklenir.
Örnek:
SWAPF CAPRAZ,1 ; Komuttan önce CAPRAZ=h’03’, W=h’02’ ise komuttan sonra
; CAPRAZ=h’30’, W=h’02’ olur.
XORLW Sayı ile W’nin içeriğini EXOR’la
Söz dizim kuralı : [etiket] XORLW k
İşleçler : 0 ≤ k ≤ 255
İşlevi : (W) XOR k à (W)
Status etkisi : Z
Tanımı : W kaydedicisinin içeriği k sabiti ile XOR’lanır. Sonuç W’ye
yüklenir. Mantıksal işlem sonunda oluşan değer 0 ise, Z biti 1
yapılır.
Örnek:
XORLW h’03’ ; Komut öncesi W=h’01’ ise, komut sonrası W=h’02’ olur.
XORWF Kaydedici içeriği ile W’nin içeriğini EXOR’la
Söz dizim kuralı : [etiket] XORWF f,d
İşleçler : 0 ≤ f ≤ 127 d Є (0,1)
İşlevi : (W) XOR (f) à (hedef)
Status etkisi : Z
Tanımı : W kaydedicisinin içeriği f kaydedicisinin içeriği ile XOR’lanır. Sonuç
d=0 ise W’ye, d=1 ise f’ye yüklenir. Mantıksal işlem sonunda
oluşan değer 0 ise, Z biti 1 yapılır.
Örnek:
XORWF f,0 ; Komuttan önce W=h’09’ ve f=h’0F’ ise, komuttan sonra W=h’06’,
f=h’0F’ olur.
Bir yanıt bırakın
Yorum yapabilmek için giriş yapmalısınız.