PIC Komutları 2
GOTO Koşulsuz Dallanma
Yazılış : GOTO k
İşleçler: 0 £ k £ 2047
İşlem: k ® PC<10:0> PCLATH<4:3> ® PC<12:11> d Î [0,1]
Etkilenen Yazmaçlar : YOK
Kodlama : 10 1kkk kkkk kkkk
Tanım : GOTO koşulsuz dallanma komutudur. İlk 11 bit PC<10:0>' ye yüklenir. Yüksek bitler PCLATH<4:3>' yüklenir. GOTO iki çevrimlik komuttur.
Word: 1
Saat Çevrimi (Cycle) : 2
Q çevrimi (Q Cycle Activity) :
Q1 |
Q2 |
Q3 |
Q4 |
Kod çöz |
"k" literalini oku |
İşlemi yap |
PC'ye yaz |
İşlem Yapma |
İşlem Yapma |
İşlem Yapma |
İşlem Yapma |
Örnek : GOTO adres
İşlemden önce PC =
İşlemden sonra PC = adres
INCF f'yi bir artır
Yazılış : INCF f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (f) + 1 ® (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 1010 dfff ffff
Tanım : "f" yazmacının içeriğini 1 artır. Eğer "d" 0 ise sonucu W 'ye, 1 ise "f" yazmacına yaz.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1 |
Q2 |
Q3 |
Q4 |
Kod çöz |
"f" yazmacını oku |
İşlemi yap |
Sonucu hedefe yaz |
Örnek : INCF CNT, 1
İşlemden önce CNT = 0xFF, Z = 0
İşlemden sonra CNT = 0x00, Z = 1
INCFSZ f'yi bir artır, sonuç 0 ise atla.
Yazılış : INCFSZ f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (f) + 1 ® (destination)
Etkilenen Yazmaçlar : Yok
Kodlama : 00 1111 dfff ffff
Tanım : "f" yazmacının içeriğini eğer sonuç 0 değilse 1 artır, yoksa komutu atla. Eğer "d" 0 ise sonucu W 'ye, 1 ise "f" yazmacına yaz.
Word: 1
Saat Çevrimi (Cycle) : 1 (2 Eğer atlama yapılırsa)
Q çevrimi (Q Cycle Activity) :
Q1 |
Q2 |
Q3 |
Q4 |
Kod çöz |
"f" yazmacını oku |
İşlemi yap |
Sonucu hedefe yaz |
Q(2) çevrimi (Q Cycle Activity) : (Eğer sonuç "0" ise)
Q1 |
Q2 |
Q3 |
Q4 |
İşlem Yapma |
İşlem Yapma |
İşlem Yapma |
İşlem Yapma |
Örnek : INCF CNT, 1
İşlemden önce CNT = 0xFF, Z = 0
İşlemden sonra CNT = 0x00, Z = 1
IORLW W ile "k"' ile mantıksal VEYA işlemi uygula
Yazılış : IORLW k
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (W) .OR. (f) ® (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 0100 dfff ffff
Tanım : W yazmacı ile "f" yazmacına VEYA işlemi uygula. Sonucu W 'ye yaz.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1 |
Q2 |
Q3 |
Q4 |
Kod çöz |
"k" literalini oku |
İşlemi yap |
Sonucu yaz |
Örnek : IORLW 0x35
İşlemden önce W = 0x9A, Z = 0
İşlemden sonra W = 0xBF, Z = 1
IORWF W ile "f"' ile mantıksal VEYA işlemi uygula
Yazılış : IORWF f,d
İşleçler: 0 £ k £ 255
İşlem: (W) .OR. k ® (W)
Etkilenen Yazmaçlar : Z
Kodlama : 11 1000 kkkk kkkk
Tanım : W yazmacı ile "k" literaline VEYA işlemi uygula. Eğer "d" 0 ise sonucu W 'ye, 1 ise "f" yazmacına yaz.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1 |
Q2 |
Q3 |
Q4 |
Kod çöz |
"f" yazmacını oku |
İşlemi yap |
Sonucu yaz |
Örnek : IORWF 0x35,0
İşlemden önce W = 0x9A, Z = 0
İşlemden sonra W = 0xBF, Z = 1
MOVF "f" yazmacını içeriğini taşı
Yazılış : MOVF f,d
İşleçler: 0 £ f £ 127, d Î [0,1] < BR > İşlem: (f) ® (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 1000 dfff ffff
Tanım : "f" yazmacının içeriğini hedefe taşı.Hedef "d"'ye bağlıdır. Eğer "d" 0 ise sonucu W 'ye, 1 ise "f" yazmacına taşır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1 |
Q2 |
Q3 |
Q4 |
Kod çöz |
"f" yazmacını oku |
İşlemi yap |
Hedefe Yaz |
Örnek : MOVF FSR, 0
İşlemden sonra W = FSR'deki değer, Z = 1
MOVLW "k" literalini W'ya taşı
Yazılış : MOVLW k
İşleçler: 0 £ k £ 255
İşlem: k ® W
Etkilenen Yazmaçlar : Yok
Kodlama : 11 00xx kkkk kkkk
Tanım : Sekiz bitlik "k" literali "W" yazmacına yüklenir.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1 |
Q2 |
Q3 |
Q4 |
Kod çöz |
"k" literalini oku |
İşlemi yap |
"W"yazmacına Yaz |
Örnek : MOVLW 0x5A
İşlemden Sonra W = 0x5A
MOVWF W yazmacının içeriğini "f"e taşı
Yazılış : MOVWF f
İşleçler: 0 £ f £ 127 < BR > İşlem: (W) ® (f)
Etkilenen Yazmaçlar : Yok
Kodlama : 00 0000 1fff ffff
Tanım : "W" yazmacının içeriğini "W" yazmacına taşı.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1 |
Q2 |
Q3 |
Q4 |
Kod çöz |
"W" yazmacını oku |
İşlemi yap |
Hedefe Yaz |
Örnek : MOVWF OPTION_REG
İşlemden Önce :
OPTION = 0xFF W = 0x4F
İşlemden Sonra :
OPTION = 0x4F W = 0x4F