hangi register?

Başlatan dombilik, 25 Nisan 2005, 00:14:11

dombilik

16f84 de bu komutu kullandığımızı var sayarak;


rectime var word
pause rectime/10


yazılımındaki gecikme birimi pic içerisinde hangi registerde tutuluyor acaba?
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

HEXF2

rectime word tipi değişken rectime de tutuluyor dostum

SpeedyX

Otomatik olarak başka bir register atanıyor ve orada tutuluyor. çünkü rectime word tipi olduğu için w da tutulması imkansız ve pause rectime/10 demekle de rectime değişkeninin değerini değiştirmenin hiç bir alakası yoktur. sadece bekleme değeri olarak rectime/10 sayısını vermek anlamına gelir.
başka birşey daha düşünürsek;
pause fonksiyonunun maximum yapabileceği gecikmeyi bilirsek, mesela 100000 olsun, bu değer word tipinden büyüktür. yani sonuçta rectime/10 direkt olarak pause fonksiyonunun kendi kullandığı değişkenlere aktarılarak kullanılabilir. bu daha mantıklı geldi.

birde acaba bu pbp, bir tane pause rutini olauşturarak sabit değişkenlere gecikme değerlerini yükleyerek tek rutinden mi yapıyor bu gecikmeyi yoksa birden fazla pause xxx komutu yazdığımızda asm olarak birden fazla mı gecikme rutini oluşturuyor?
Eğer birden fazla ise ilk dediğim, tek ise ikinci dediğim doğru diye düşünüyorum.

Saygılar.

dombilik

Alıntı yapılan: "SpeedyX"Otomatik olarak başka bir register atanıyor ve orada tutuluyor. çünkü rectime word tipi olduğu için w da tutulması imkansız ve pause rectime/10 demekle de rectime değişkeninin değerini değiştirmenin hiç bir alakası yoktur. sadece bekleme değeri olarak rectime/10 sayısını vermek anlamına gelir.
başka birşey daha düşünürsek;
pause fonksiyonunun maximum yapabileceği gecikmeyi bilirsek, mesela 100000 olsun, bu değer word tipinden büyüktür. yani sonuçta rectime/10 direkt olarak pause fonksiyonunun kendi kullandığı değişkenlere aktarılarak kullanılabilir. bu daha mantıklı geldi.

birde acaba bu pbp, bir tane pause rutini olauşturarak sabit değişkenlere gecikme değerlerini yükleyerek tek rutinden mi yapıyor bu gecikmeyi yoksa birden fazla pause xxx komutu yazdığımızda asm olarak birden fazla mı gecikme rutini oluşturuyor?
Eğer birden fazla ise ilk dediğim, tek ise ikinci dediğim doğru diye düşünüyorum.

Saygılar.
Sevgili speedy;
rectime değişkeninin değeri elbette değişmiyor.Zaten benim merak ettiğimde oluşan yeni değerin geçici de olsa hangi registerde saklandığıydı?dediğin gibi word oldugundan dolayı w registerine olamaz..
Bu arada birden fazla pause komutu pbp de kullanılıyorsa hepsi ayrı ayrı asm lere çevrilir ve dolayısı ile hafızada bolca bir yer kaplar.ben alt rutin kullanmak sureti ile tek bir gecikme komutuna call ile ulaşarak kullanıyorum.
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

SpeedyX

Alıntı yapılan: "dombilik"ben alt rutin kullanmak sureti ile tek bir gecikme komutuna call ile ulaşarak kullanıyorum.
bunları organize etmek derleyicinin işidir, pbp de bu optimizasyonun çok düşük seviyelerde olduğunu görüyorum fakat pause komutunu asm yaparken tek bir rutin yapıyordur diye düşünüyorum. onun özel değişkenine atanan değer kadar gecikme sağlıyordur bence. bu doğruysa senin yukarıda dediğini yapmana gerek yok. eğer birden fazla pause için birden fazla asm rutini oluşturuyorsa bu derleyicinin kalitesini ortaya koyar.
şahsen ben pbp yi tasnif etmiyorum, kullananlara saygım sonsuz, sevmememin 2 nedeni var; optimizasyonun kötü olması ve bazı komutlar içerisinde işlemcinin kesme özelliklerini saklı olarak kullanıyor olmasıdır.

hangi değişken sorusuna gelince; bunu kendi otomatik olarak tanımladığı ve bazı şeylerin bir öncelik sırasına göre programlandığını düşünürsek bunun hangi register(ler) olduğunu bilmek imkansız gibi. programı bir defa derleyip hex i asm yapıp, araştırıp uğraşım bu register(ler)in hangi adreste olduğunu buluruz ama programa birkaç komut daha eklediğimizde bu register(ler)in adresi tekrar değişecektir. pbp gibi gelişmiş dillerde register mantığıyla değilde, değişken mantığıyla hareket etmek gerekir.
register ve değişkenin farklı olduğunu ve farklarını söylememe gerek yok sanıyorum.
aslında bunu ne için istediğini bilsek belki çözüm için farklı bir yol bulabiliriz.

Saygılar.

dombilik

özel bişey yapacağımdan değil speedy kardeşim...
program yazarken birden merakımı celp etti.haniii..Aklıma takıldı aga derlerya :D
ondan sordum. ve varsa cevabı  öğrenelim diye...
yinede çok teşekkürler sağol..
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

psikokabus

illa ogrenmek istiyorsan atama işlemin den hemen sonra pclatch registerinin icerigini okut... bu register komut işleyişinin hangi reg de kaldıgını tutar ama programı her calıstırdıgında farklı sonuclar verecektir
bu regi asm ile ugrastıysan biliyor olmalısın