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 à PD
Status
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.
Kaynak: http://www.oocities.org/tascoskun/komut.htm
Kaynak: http://www.oocities.org/tascoskun/komut.htm
thank you ....
YanıtlaSilالموقع الأول