PIC 16F877 KOMUT SETİ

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:

  1. Byte Yönlendirmesi Yapan Kaydedici İşlemleri

(d=0 için hedef W, d=1 için hedef f, f=7 bit kaydedici adresi)

13             876            0
İŞLEM KODUdf (kaydedici)
  1. Bit Yönlendirmesi Yapan Kaydedici İşlemleri

(b=3 bit adres, f=7 bit kaydedici adresi)

13           109          76            0
İŞLEM KODUb (bit no)f (kaydedici)
  1. Denetim veya Sabit/Sayısal (literal) İşlemleri
13               87           0
İŞLEM KODUk (sabit)

Yalnızca call ve goto komutlarında kullanılan biçim

13           1110                 0
İŞLEM KODUk (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.

İlk yorum yapan olun

Bir yanıt bırakın