You are on page 1of 22

Bit Kaydırma

• SOLA KAYDIRMA : RLF komutu, belirlenen bir saklayıcı içerisindeki bit lerin
pozisyonunu defasında bir sola kaydırmak için kullanılır. Saklayıcı içerisindeki bitl’er
sola kaydığında MSB bit ‘i , STATUS saklayıcıda bulunan cary (taşıma ) bayrağı
içerisine yazılır. Cary bayrağı içeriği ise saklayıcının LSB bit ine yazılır.

• MSB (Most Significant Bit – en soldaki bit )


• LSB( Least Signicificant Bit - en sağdaki bit)

RLF Saklayıcı d

Hedef olarak W belirtilmişse kaydırma sonucu elde edilen bit paterni W saklayıcıya,
F ise genel amaçlı saklayıcıya yazılır.

MOVLW h’86’
MOVWF MEM
RLF MEM , F
RRF
MSB
CARRY LSB
TAŞIMA

1 1 0 0 0 0 1 1 0
ÖRNEK:
• PortB , ye bağlı 8 LED üzerindeki bir LED ‘nin yanışını belirli aralıklarla kaydıran ve
kayan LED en sone geldiğinde tüm LED’ler sönük kalan programı yazınız.
SAYAC1 EQU H’20’

SAYAC2 EQU H’21’

CLRF PORTB

BCF STATUS,0

BAKSEL TRISB

CLRF TRISB

BAKSEL PORTB

MOVLW H’01’

MOVWF PORTB

TEKRAR

CALL GECİKME ; Gecikme Yao

RLF PORTB,F ; PortB deki sola kaydır

BTFSS STATUS,O ; Cary bayrağı 1 mi

GOTO TEKRAR ;Hayır


DONGU
GOTO DONGU
GECİKME
MOVLW h’FF’
MOVWF SAYAC1
DONGU1
MOVLW h’FF’
SAYAC2
DONGU2
DECFSZ SAYAC2,F
GOTO DONGU2
DECFSZ SAYAC1,F
GOTO DONGU1
RETURN
END
Bit Kaydırma

• SAĞA KAYDIRMA : RRF komutu, belirlenen bir saklayıcı içerisindeki bit lerin
pozisyonunu defasında birsağakaydırmak için kullanılır. Saklayıcı içerisindeki bitl’er
sağa kaydığında LSB bit ‘i , STATUS saklayıcıda bulunan cary (taşıma ) bayrağı
içerisine yazılır. Cary bayrağı içeriği ise saklayıcının MSB bit ine yazılır.

• MSB (Most Significant Bit – en soldaki bit )


• LSB( Least Signicificant Bit - en sağdaki bit)
COMF

• Comf komutu secilen bir genel amaçlı saklayıcının içerisindeki bitleri


tersine çevirir.
• Comf Saklayıcı, d (w,F )
• Örnek : MOVLW h’0F’
MOVWF MEM
10 10 00 0 11 1 1 1
COMF MEM,F
11 1 01 1 10 0 0 0
Örnek : PortB deki LED’leri dönüşümlü olarak ilk önce ilk dört bit’indeki sonrada son dört
bitindeki LED’leri yakan programı yazınız.

SAYAC1 EQU H’20’


SAYAC2 EQU H’21’
CLRF PORTB
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
BASLA
MOVLW h’0F’
MOVWF PORTB
TERSLE
COMF PORTB,F
CALL GECİKME
GOTO TERSLE
GECİKME
SWAPF
• Seçilen bir genel amaçlı saklayıcı içerisindeki verinin
ilk dört bit’iyle son dört bit’ini yer değiştirir.
• SWAPF saklayıcı,d (W veya F)
MOVLW h’C6’
MOVWF MEM 1 1 0 0 0 1 1 0
SWAPF MEM,F
10 1 1 0 1 1 0 0
MANTIKSAL İŞLEMLER
• ANDLW : W saklayıcı içerğini istenen bir sabit veri ile
AND’ler,elde edilen sonucu W saklayıcıya yazar.
• ANDLW Sabit
MOVLW b’11010111’ 1 1 0 1 0 1 1 1
ANDLW b’01111011’ 10 1 1 1 1 0 1 1
MOVWF PORTB
0 1 0 1 0 0 1 1
ANDWF SAKLAYICI , d
MOVLW b’11011111’
ANDWF PORTA,W
MOVWF PORTB
IORLW
• IORLW istenilen biti 1 yapmak için kullanılır.
• IORLW sabit
MOVLW b’00000011’
0 0 0 0 0 0 1 1
IORLW b’11000000’
11 1 0 0 0 0 0 0
MOVWF PORTB
1 1 0 0 0 0 1 1
XORLW
• XORLW : “0” ile XOR bitlerin değeri değişmez
“1” ile XOR lamada bit’in değerinin tersini
alır.
MOVLW b’11110000’
XORLW b’100000001’
MOVWF PORTB
Bir Byte’lik iki veriyi karşılaştırmak için kullanılır.
Verile aynı ise XOR sonucu Z bayrağı 1 olur.
Veriler aynı değil ise Z bayrağı 0 olur.
XORLW
MOVLW b’00000110’
TEST_PORTA
XORWF PORTA,F
BTFSS STATUS,2
GOTO TEST_PORTA
Örnek: PortA nın 0. ve 4. bitlerine bağlı olan RA0 ve RA4
butonlarının her ikisine basılı olduğunda PortB nin 0.bitine bağlı LED li yakan
programı yazınız.
CLRF PORTB GOTO TEST_PORTA
BANKSEL TRISB YAK
CLRF TRISB MOVLW h’01’
MOVLW H’FF’ MOVWF PORTB
MOVWF TRISA DONGU
BANKSEL PORTB GOTO DONGU
MOVLW h’07’ END
MOVWF CMCON

TEST_PORTA

MOVF PORTA,W

ANDLW
b’00010001’
MOVWF MASK

MOVLW
b’00000000’
XORWF MASK,W

BTFSS STATUS,2
ARİTMETİK İŞLEMLER
• PIC16 Toplama ve çıkarma işleminde kullanılacak
komutlar.

KOMUT SATIR
ADDLW SABİTİ W SAKLAYICISINDAN ÇIKARIR
ADDWF W SAKLAYICISIYLA File SAKLAYICISINI TOPLAR
SUBLW SABİTTEN W SAKLAYICISINI ÇIKARIR
SUBWF F SAKLAYICISINDA W SAKLAYICISINI ÇIKARIR

EĞER CARRY BAYRAĞI =0 İSE , SONUÇ 8 BİTTEN FAZLA DEĞİLDİR


EĞER CARRY BAYRAĞI =1 İSE , SONUÇ 8 BİTTEN FAZLADIR.
8 Bit Toplama

• ADDLW h’02’ ; h’02’ sayısı W saklayıcıya eklenir


• ADDWF MEM,F ;W ile MEM toplanıp, MEM’e yazılır.
8 Bit Çıkarma
• SUBLW h’02’
• SUBWF MEM,F
• Eğer , Carry bayrağı =1 ise sonuç pozitiftir
• Eğer, Carry bayrağı =0 ise sonuç negatiftir.
Çevrim Tablosu
• Bazı programlarda program kodları içerisine yazılan veriler
kullanılması istenebilir. Bu durumda RETLW veri biçiminde
yazılan bir dizi komut program içerisinde yazıldığından veriler
de program belleği içerisinde yerleşmiş olur. Bir dizi RETLW
komutuyla belirlenmiş veriler topluluğuna çevrim tablosu
denilir.
• Çevrim tabloları bir kodu başka bir koda çevirmek için
kullanılabilir. 7 segment display üzerinde heksadesimal
karakterleri göstermek için kullanılabilir.
PIC ASSEMBLY
PIC ASSEMBLY
PIC ASSEMBLY
PIC ASSEMBLY

RETLW : Altprogramndan W ‘ye bir sayı / sabit yükle ve geri dön

CALL : Alt programı çağırır.

ADDWF : W ve f kayıtçılarını topla.

PCL (Program Counter Low Byte): bir sonra çalıştırılacak komutun program
belleğindeki adresini tutar.
PIC ASSEMBLY

You might also like