 | Elektrotekno.com Elektronik ve Teknoloji Merkezi
| | Yazar | Mesaj | pasha43 | | Tarih: 10.03.2006, 23:53 Mesaj konusu: PIC16cxxx PIC16Fxxx ailesi için Komut seti | |
| PIC16cxxx PIC16Fxxx ailesi KOMUT SETİ
Asembly programlama komutları kullanılırken komutlarla beraber bazı semboller kullanılacaktır. İlgili sembolik değerler ve anlamları aşağıda sıralanmıştır.
W: 8 bitlik çalışma saklayıcısı (working register)
F: bellek haritasındaki özel veya genel amaçlı saklayıcı (file register)
d: işlem sonucunun W saklayıcısına (d=0) mı, F saklayıcısına (d=1) mı kaydedileceğini belirtir.
b: işlenecek F saklayıcısının ilgilenilen bit numarasını gösterir (3 bitlik ikili sayıdır)
k: 8 bitlik sabit değerleri ve dallanma ve alt programlar için 10bitlik sabit adresleri gösterir
C: elde bayrağı (toplama işleminden gelen elde ve çıkarma işleminden gelen borç)
DC: ondalık elde bayrağı, düşük anlamlı 4 bitten gelen elde ve borç
Z: sıfır bayrağı, işlem sonucunun sıfır olduğunu gösterir
Alfabetik sırasıyla asembly komutlar:
ADDWF F,d W saklayıcısı ile F saklayıcısını topla, sonucu d bitine bağlı olarak W saklayıcısına veya F saklayıcısına yerleştir. Bu işlemden C,DC, Z bayrakları etkilenir
ADDWF 022H,0 W ile 22H adresindeki değeri topla sonucu W saklayıcısına (d=0 olduğu için) kaydet. İşem sonucunda bayraklar yeni değer alacaktır.
Başlangıçta 022H adresinde 36H verisi ve W’da CAH verisi varsa, komut çalıştıktan sonra W = 36H + CAH = 00H olacaktır. Toplama işleminden elde geldiği için durum saklayıcısı elde bayrağı C=1 dir, düşük anlamlı 4 bit değerler toplamından da elde geldiği için hane elde bayrağı DC =1 dir, sonuç sıfır olduğu için sıfır bayrağı Z=1 dir. (elde nedeniyle aslında sonucun 100H olduğunu anlıyoruz)
Bu komut asembler dilinde daha anlaşılır olsun diye aşağıdaki tanımlamalar yapılıp
VERI1 EQU 022H ;VERI1 değeri 022H adresinde yer alıyor veya VERI1 değeri 022H sabit değerini alıyor anlamında
W EQU 0
F EQU 1
Sonra komut
ADDWF VERI1,W şeklinde yazılabilir. Böylece programın okunabilirliği ve takip edilebilirliği artmaktadır. Program satırından kolayca VERI1 adresindeki değerin W’daki değerle toplanacağı ve sonucun W’da yer alacağı anlaşılabilmektedir.
Komut çalışmadan önce W = CAH = 1100 1010
Etiket Adres Veri İkili
VERI1 22H 36H 0011 0110
SAYI 23H EDH 1110 1101
W = W+[22H] = CAH+36H = 00H = 0000 0000
Komut çalıştıktan sonra W=00H = 0000 0000
Etiket Adres Veri İkili
VERI1 22H 36H 0011 0110
SAYI 23H EDH 1110 1101
Aynı başlangıç durumu için komut aşağıdaki şekilde yazarsak işlem sonucu VERI1 adresinde yer alacaktır
http://rapidshare.de/files/15184380/Mik...2.rar.html
|
|
|
|
ado | | Tarih: 31.03.2006, 09:41 Mesaj konusu: | |
| kardeş çok saolasın bilmediğim komutlarda var içinde
|
|
mühendis34 | | Tarih: 10.04.2006, 04:57 Mesaj konusu: | |
| teşekkürler.çok gerekliydi hemen çıktısını aldım.eline sağlık kardeş.
|
|
cnrszr | | Tarih: 22.10.2006, 01:13 Mesaj konusu: | |
| Devamını bekliyoruzzzz
|
|
|
|