"goto $+1" ile yapılan işlem nedir?

Başlatan OG, 03 Nisan 2007, 23:53:04

OG

4MHz de çalışma için 2usn gecikme sağlıyormuş. Birçok nop sıralamaktan kurtarıyor.  goto $+1 ile yapılan işlem nedir? Süre değiştirmek için bu komutla oynamak istiyorum, mümkünmüdür?
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

SpeedyX

$ bulunulan satırı ifade eder.
goto $+1 demek bir alt satıra git demek.

decfsz x,f
goto $-1
goto labelxxx
burada ise bir üst satıra git demek

goto $
burada ise sonsuz döngüye gir demek...

goto $+120
120 satır aşağı git demek...

gibi...

gecikme için özel bir esprisi yok...

mp3dragon

SpeedyX in söylediklerine ilave; goto komutu 2 komut zamanı alır. 4 mhzde pic 1 mips olacağından 2 us gecikme hassas döngülerde göz önüne alınmalıdır.
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

XX_CİHAN_XX

Bir başka değişle program counter a müdahale edilir.
goto $+2
dediğimizde program counterın ıcerıgı 2 ile toplanır ve program iki komut satırını atlıyarak aşağı iner.

goto $-2
dediğimizde program counterın ıcerıgı 2 den çıkarılır ve program iki komut satırını atlıyarak yukarı çıkar.

Bu komut goto ile etkite dallanma ile tamamen aynıdır sedece burada etiket ismi değil etikete olan uzaklık sayısal olarak verilir hepsi bu.
Devamlı kopyalanarak çoğaltılacak bir alt program düşünürsek her seferinde etiket ismi değiştireceğimize $+x şeklinde kullanmak daha avantajlı olmaktadır ancak bu şekilde çok uzun dallanmalar önermiyorum.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

Ziya

Deatylı bilgi için MPLAB ASM talimatlarına bakın.

Bulunulan satırdaki adresin high kısmını bile tutabilirsiniz. Bu talimatlar gerçekten çok kullanışlı.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

Macera

Bence iki NOP komutudur.
GOTO komutu iki işlem komutu zamanına ihtiyaç duyar
"Art without engineering is dreaming; engineering without art is calculating." -- Steven K. Roberts

OG

ASM bilmediğimden bir an için "süresi kesin bir delay komutu" zannettim.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Eagle_Tim

$ ile ilgili birşey yok tamamen goto komutunun işlenme süresi ile alakalı bir durum 2 komut saykılında işlenen bir komut olduğu için 2 us
Bundan başka
CALL
RETURN
RETLW
RETFIE da 2 komut saykılında işlenir diğer komutlar 1 komut saykılında işlenir yani 1 us de.

sorgu komutlarından sonra konulan goto komutlarıyla toplam sorgu 3 komut saykılana yükselir bu yüzden sorgu komutlarını 1 komut saykılı saymayabiliriz çünki genelde goto ile dallandırma yapılıyor..
Software and Hardware Design...