Assembly de karsılastırma sorunu

Başlatan protech06, 06 Kasım 2007, 20:05:45

protech06

iyi calışmalar arkadaşlar.Assemblyde sayı karşılaştırmada sorunlar yaşıyorum  iki ayrı degişkendeki sayıyı karsılastırıp işlem yapıcam.

"sayı"  adlı degişken icerisindeki deger 10 sayısından buyuk 50 den kucukse BSF  LED1  ama bu deger 10 sayısından kucuk 50 dende buyuk ise BCF  LED1   bu karsılastırmayı nasıl yapabilirim _?


sayı >10  ve   <50   =  BSF LED1
sayı <10  ve   >50   =  BCF LED1

omenek

movf sayı,w
sublw d'10'
btfsc status,0
goto  $+7
movlw  d'50'
subwf  sayı,w
btfsc  status,0
goto  $+3
bsf  led1
goto  $+2
bcf  led1

protech06

Hocam bu sekilde bir uyarlama yaptım fakat her sekildede led yanık kalıyor 10 sayısından kucukte olsa buyukte olsa calısıyor 10 sayısından kucuk bir deger oldugunda yada 50 sayısından buyuk bir deger oldugunda ledin yanmaması lazım 10 ile 50 arasında bir sayı olursa led yanacak

elmaalma

Alıntı yapılan: "protech06"ama bu deger 10 sayısından kucuk 50 dende buyuk ise BCF  LED1   bu karsılastırmayı nasıl yapabilirim _?

sayı <10  ve   >50   =  BCF LED1
10 ile 50 aralığında olup olmadığını mı belirlemek istiyorsunuz?

Çünkü 10'dan küçük 50'den büyük sayı ?
SAYI_DENETLE	
	movlw		10				;
	subwf		SAYI,w				;10
	btfss		STATUS,C			;
	goto		LED_SONDUR			;
	movlw		50
	subwf		SAYI,w				;10
	btfss		STATUS,C			;
	goto		LED_YAK			;
	btfss		STATUS,Z			;
	goto		LED_SONDUR			;
	goto		LED_YAK			;
LED_YAK
	XXXX
LED_SONDUR
	WWW

protech06

Evet hocam amacım sayının 10 ile 50 arasında olup olmadıgını denetlemek bunuda led ile anlıyacam. gelen sayı 0-9 arasında olursa led geri sönecek  veya 51 veya  büyüğü gelirse de yine  sönecek  ama 10 ile 50 arasında oldugu surece yanık kalması lazım

omenek

Sanırım başka bir problemin var kodları denedim çalışıyor örnek dosya aşağıdaki linkte.Kolay gelsin.

http://rapidshare.com/files/67911279/deneme.rar

protech06

İlginize Teşekkurler hocam sorunu çözdüm.. Sorunsuz Calısıyor su an