pic'e ait komut adreslerini nasıl bulabiliriz?

Başlatan parametre, 23 Ağustos 2010, 00:44:23

parametre

pic'e ait komut adreslerini nasıl bulabiliriz? Bize sunun için lazım biliyorsunuzki pic bir komutu cagırdıgında o komuta ait ilk once o adresi cagirip daha sonra verilen gorevi yapmaktadır ben bunu hızlandırmak amacıyla direk vereceğim bilgi ve işlemleri belirlenecek adreslere yonlendirip işlemleri daha hızlı yapmak istiyorum ama bu konuda nasıl komut bulabileceğim konusunda kaynak sıkıntısı cekiyorum . bize yardımcı olunursa sevinirim şimdiden tesekkur ederim


Maxim


erhanzeynel

Siz asembler ile programı .hex dosyasına çevirdiğinizde bu işlem gerçekleşmiş oluyor zaten. örnek olarak bir programımın hex dosyasından örnekler vereyim.

01B2 = clrf 0x32
2879 = goto 0x79
2873 = goto 0x73
00A7 = movwf 0x27
1385 = bcf 0x05 ,7

Örnek koddan görülebileceği gibi 28 goto komutunun adresi. Ve pice komut adresi şeklinde yüklenmekte.
Winpic800 isimli programlayıcı programı bu hex kodlarının anlamlarını gösterebilmekte hatta disasembly bile yapabilmekte. Yalnız değişken ve etiket isimleri kayboluyor o ayrı.

parametre

bunlari elbette biliyorum ama bunun şoyle bir kolaylıgı mevcut direk adrese dallanarak yapılan işlemlerde gotonun adresi ve verecegin parametreler ile birlikte o adresi gostererek dalanıldıgında komutlar daha hızlı calısmakta programlama komutlarında bunlar çok hızlı işlemektedir picte denemedim ama oradada aynı olacağını dusunuyorum . yardımcı olan arkadaslara tesekkurler

drmp

ben bir şey anlamadım  biraz daha açık olabilirmisin bu arada bu dediklerin ne işe/işimize yarar

erhanzeynel

Alıntı yapılan: parametre - 06 Eylül 2010, 01:07:10
... direk adrese dallanarak...

pic dahasheetlerini mimari yapı bölümünden başlayarak inceleyiniz. 4 adımlı işlem zamanlaması ile ilgili bilgi edininiz. Bu sayede pic çalışırken osilatör frekansını neden 4e böldüğünü ve komutları ne şekilde işlediğini inceleyiniz.

Benim bildiğim kadarıya, yukarıda yazdığım gibi hex kodlarda komut adresi ve işlenecek değer birlikte yer alır.

Pic programlamada en hızlı çalışan programlama dili assemblerdir. bu dil picin desteklediği her bir işlem için bir kelime eşleştirilerek oluşturulmuştur.

Yani her bir işlem için bir komut bulunmaktadır. Herbir işlem için birer adres olduğuna göre ker bir assembler komutu için bir adres vardır. Durum tersi için de geçerli "her bir işlem adresi için bir assembler komutu vardır." (iki komut çevriminde çalışan işlemler hariç.)

Assembler, pic ürünlerini üreten Microchip firması tarafından desteklenen tek dildir. Diğer diller, örneğin pic basic başka bir firma tarafından geliştirilmiş aracı bir dildir. Picte çalıştırılmak üzere basic programı derlenirken önce assemblera çevrilir. Daha sonra assembler derleyicisiyle hex koda çevirilir.

Kısacası; assemblerda yazdığınız her komut için bir adres vardır ve hex koda çevrilirken yazdığınız komut işlem adresine çevrilir.

Assembler ile kod yazarken komut adı yerine komut adresi yazmak picin çalışma hızına etki etmez. Zaten assembler derleyicisi bu işi sizin yerinize yapmakta.

Ancak parametreleri de hexe çevirirseniz ve bunları hex dosyalarındaki düzende yazarsanız, kod yazarken klavyenizdeki alfabe tuşlarındaki aşınmayı durdurabilirsiniz ve assembler derleyicisine ihtiyacınız olmaz.