PIC Komutları
Yazılış : ADDLW k
İşleçler: 0 £ k £ 255
İşlem: (W) + k → (W)
Etkilenen Yazmaçlar : C, DC, Z
Kodlama : 11 111x kkkk kkkk
Tanım : W yazmacının içeriği sekiz bitlik k literali ile toplanır, sonuc W yazmacına yerleştirilir.
Word: 1
Saat Çevrimi (Cycle) : 1
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "k" literalini oku | İşlemi yap | W'ye yaz |
İşlemden önce W = 0x10
İşlemden sonra W = 0x25
Yazılış : ADDWF f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (W) + (f) → (destination)
Etkilenen Yazmaçlar : C, DC, Z
Kodlama : 00 0111 dfff ffff
Tanım : W yazmacının içeriğiyle "f" yazmacının içeriğini topla. Eğer "d" 0 ise sonucu W 'ye, 1 ise "f" yazmacına yaz.
Word: 1
Saat Çevrimi (Cycle) : 1
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "f" yazmacını oku | İşlemi yap | Sanucu hedefe yaz |
İşlemden önce W = 0x17 FSR = 0xC2
İşlemden sonra W =0xD9 FSR = 0xC2
Yazılış : ANDLW k
İşleçler: 0 £ k £ 255
İşlem: (W) .AND. (k) → (W)
Etkilenen Yazmaçlar : Z
Kodlama : 11 1001 kkkk kkkk
Tanım : W yazmacı ile sekiz bitlik "k" literaline VE işlemi uygulanır. Sonuç W'ye yazılır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "k" literalini oku | İşlemi yap | W'ye yaz |
İşlemden önce W =0xA3
İşlemden sonra W = 0x03
Yazılış : ANDWF f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (W) .AND. (f) → (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 0101 dfff ffff
Tanım : W yazmacı ile "f" yazmacına VE işlemi uygula. Eğer "d" 0 ise sonucu W 'ye, 1 ise "f" yazmacına yaz.
Word: 1
Saat Çevrimi (Cycle) : 1
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "f" yazmacını oku | İşlemi yap | Sonucu yaz |
İşlemden önce W = 0x17, FSR = 0xC2
İşlemden sonra W = 0x17, FSR = 0x02
Yazılış : BCF f,b
İşleçler: 0 £ f £ 127, 0 £ b £ 7
İşlem: 0 → (f[b])
Etkilenen Yazmaçlar : yok
Kodlama : 01 00bb bfff ffff
Tanım : "f" yazmacının "b" biti sıfırlanır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "f" yazmacını oku | İşlemi yap | "f" yazmacına yaz |
İşlemden önce FLAG_REG = 0xC7
İşlemden sonra FLAG_REG = 0x47
Yazılış : BSF f,b
İşleçler: 0 £ f £ 127, 0 £ b £ 7
İşlem: 1 -rarr; (f[b])
Etkilenen Yazmaçlar : Yok
Kodlama : 01 01bb bfff ffff
Tanım : "f" yazmacının "b" biti 1 yapılır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "f" yazmacını oku | İşlemi yap | "f" yazmacına yaz |
İşlemden önce FLAG_REG = 0x0A
İşlemden sonra FLAG_REG = 0x8A
Yazılış : BTFSC f,b
İşleçler: 0 £ f £ 127, 0 £ b £ 7
İşlem: eğer (f[b]) = 0 ise bir sonraki komutu atla
Etkilenen Yazmaçlar : Yok
Kodlama : 01 10bb bfff ffff
Tanım : Eğer "f" yazmacının "b" biti 1 ise sıradaki komut işletilir, 0 ise bir sonraki komut atlanır ve yerine NOP işletilir ve 2 çevrimli komut olur.
Word: 1
Saat Çevrimi (Cycle) : 1 (2)
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "f" yazmacını oku | İşlemi yap | İşlem yapılmaz |
Q1 | Q2 | Q3 | Q4 |
İşlem yapılmaz | İşlem yapılmaz | İşlem yapılmaz | İşlem yapılmaz |
Yazılış : BTFSS f,b
İşleçler: 0 £ f £ 127, 0 £ b £ 7
İşlem: eğer (f[b]) = 1 ise bir sonraki komutu atla
Etkilenen Yazmaçlar : Yok
Kodlama : 01 11bb bfff ffff
Tanım : Eğer "f" yazmacının "b" biti 0 ise sıradaki komut işletilir, 1 ise bir sonraki komut atlanır ve yerine NOP işletilir ve 2 çevrimli komut olur.
Word: 1
Saat Çevrimi (Cycle) : 1 (2)
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "f" yazmacını oku | İşlemi yap | İşlem yapılmaz |
Q1 | Q2 | Q3 | Q4 |
İşlem yapılmaz | İşlem yapılmaz | İşlem yapılmaz | İşlem yapılmaz |
Yazılış : CALL k
İşleçler: 0 £ k £ 2047
İşlem: (PC)+ 1 → TOS, k → PC<10:0>, (PCLATH<4:3>) ® PC<12:11>
Etkilenen Yazmaçlar : Yok
Kodlama : 10 0kkk kkkk kkkk
Tanım : Bir altrutin çağırır. Önce dönüş adresi (PC+1) yığın (stack) hafızaya kaydedilir. 11 bitlik adres PC<10:0>'a yüklenir. PC'nin üst bitleri PCLATCH'den yüklenir. CALL 2 çevrimlik bir komuttur.
Word: 1
Saat Çevrimi (Cycle) : 2
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "k" literalini oku PC'yi yığına kaydet | Veriyi işle | PC'ye yaz |
Q1 | Q2 | Q3 | Q4 |
İşlem yapılmaz | İşlem yapılmaz | İşlem yapılmaz | İşlem yapılmaz |
Yazılış : CLRF f
İşleçler: 0 £ f £ 127
İşlem: 00h → (f), 1 → Z
Etkilenen Yazmaçlar : Z
Kodlama : 00 0001 1fff ffff
Tanım : "f" yazmacının içeriği temizlenir(0) ve "Z" biti kurulur(1).
Word: 1
Saat Çevrimi (Cycle) : 1
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "f" yazmacını oku | Veriyi işle | "f" yazmacına yaz |
İşlemden önce WDT counter = ?
İşlemden sonra WDT counter = 0x00,
WDT prescaler= 0, TO =1, PD =1
Yazılış : COMF f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (f) → (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 1001 dfff ffff
Tanım : "f" yazmacının içeriğinin tümleyeni alınır. Eğer d 0 ise, sonuc "w", 1 ise "f" yazmacına yazılır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "f" yazmacını oku | Veriyi işle | Hedefe yaz |
İşlemden önce REG1 = 0x13
İşlemden sonra REG1 = 0x13
Yazılış : DECF f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (f) - 1 → (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 0011 dfff ffff
Tanım : "f" yazmacının içeriğini bir(1) azalt. Eğer d 0 ise, sonuc "w", 1 ise "f" yazmacına yazılır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q1 | Q2 | Q3 | Q4 |
Kod çöz | "f" yazmacını oku | Veriyi işle | Hedefe yaz |
İşlemden önce CNT = 0x01, Z =0
İşlemden sonra CNT = 0x00, Z =1
Hiç yorum yok:
Yorum Gönder