ilgilenenler için assemblyde for_next döngüsü makrosu

Başlatan bsivgin, 10 Mart 2005, 16:42:49

bsivgin

aşağıdaki makroyu kullanarak assambly'de

for etiket,d'...',d'...'
----
----
---
next etiket

şeklinde for-next döngüsü yapabilirsiniz

----------------------------------------------
for macro x,y,u
temp4 set h'20'

h=y
movlw u
movwf temp4
x
endm

next macro a
decf temp4
movf temp4,0
xorlw h
btfss status,z
goto a
endm
----------------------------------

yukardaki makroyu kullanarak basit bir for-next döngüsü yapabilirsiniz.

Örnek

clrf sayac
for bir,0,d'200'
incf sayac
movf sayac,0
movwf portb
next bir

for iki,d'5',d'130'
incf portb
next iki

daha değişik yöntem bilen arkadaşların tavsiyelerini beklerim

Saygılarımla
Bülent ŞIVGIN
www.diyot.com

elektromer

Merhaba Bülent Bey,

Yukarıda yazdığın örnekleri tam olarak anlayamadım. Biraz açabilirsen, öncelikle ben ve belkide birçok arkadaş memnun olacaktır.

Saygılarımla...
Her şey gönlünüzce olsun..

bsivgin

şimdi bu örnekte c ve benzeri yüksek seviyeli dillerin en faydalı aracı olan for-next döngüsünü kurmaya çalıştım. programınızın en başına bu makroyu koyuyorsunuz. Daha sonra bu makroyu kullanarak program içinde istediğiniz kadar for-next döngüsü yapabiliyorsunuz (iç-içe olmamak şartı ile)

yani;

for etiket,d'0',d'12'
incf portb
next etiket

bu programcık portb'nin içeriğini 12 kez artırır. Yada aşağıdaki gibi bir 10ms lik delay altprogramcığınız var. bunu istediğiniz adette çağırabilirsiniz

for tekrar,d'0',d'20'
call msdelay
incf portb
next tekrar


Macrolar ile ilgilenen arkadaşlar var ise değişik fikirlerim var önerileri olan arkadaşları beklerim.

Saygılarımla
Bülent ŞIVGIN
www.diyot.com