sayı karşılaştırma

Başlatan mesmert, 13 Ocak 2007, 22:08:06

mesmert

arkadaşalar 6  adet regıster 3 er olarak iki grup yaptım bu registerleri iki grup şeklinde en yüksek olan değer hangisi ise onu alıp diğerini işlem yapmıyacak şekilde program yazacam yalnız benim takıldığım konu bu registerlerdan en yüksek değerli grup hangisi ise nasıl bulacam asm örnek veya fikirlerinizi bekliyorum

GRUP1: 195
G1_SAYI1=1
G1_SAYI2=9
G1_SAYI3=5

GRUP2: 567
G2_SAYI1=5
G2_SAYI2=6
G2_SAYI3=3

yalnayak

ilk aklima gelen soru su oldu..
bu sayilar degiskenmi?
degiskense neye gore degisecek?
yani devamli artan yada devamli eksilen yada bi yerden okunup gosterilen rakamlar mi?
Kızımın iffeti batmakta rezîlin gözüne... Acırım tükürüğe billâhi, tükürsem yüzüne..! MEHMED AKİF ERSOY  Kardan Adaminla,GUNES'e calim mi satiyorsun?

XX_CİHAN_XX

Alıntı yapılan: "mesmert"arkadaşalar 6  adet regıster 3 er olarak iki grup yaptım bu registerleri iki grup şeklinde en yüksek olan değer hangisi ise onu alıp diğerini işlem yapmıyacak şekilde program yazacam yalnız benim takıldığım konu bu registerlerdan en yüksek değerli grup hangisi ise nasıl bulacam asm örnek veya fikirlerinizi bekliyorum

GRUP1: 195
G1_SAYI1=1
G1_SAYI2=9
G1_SAYI3=5

GRUP2: 567
G2_SAYI1=5
G2_SAYI2=6
G2_SAYI3=3
Orudugun sorunun cevabı basit bir karsılastırma işlemdir.
Fata benım sormak istediğim sey bu degıskenler bır sayınn basamakları mı yoksa bırbırınden bagımsız sayı gurupları mı.
Şimdi normal sayı gurupları ıse G1 leri toplarsın sonucu bı yere yazarsın.
G2 ler toplarsın sonucu bı yere yazarsın.Bu iki sonucu birbirinden cıkartırsın ve carry flag ın durumuna gore hangısı buyuk anlarsın.
Ama bu guruplar bir sayının basmakları ıse (verdıgın ornekle boylmeymıs gıbı anladım) iş degısır.Cunku ozaman  1  2  3 sayılı gurup ıle    3  2  1 degerlerını ıceren dıger gurup buyukluk kucukluk bakımından esıt degerde olmasına ragmen bunlar bırere basamaksa ve bırlestıgınde bır sayı olusturuyorsa 2.grup  , 1. guruptan buyuk gelır.Sen bunu mu anlamak ıstıyorsun yoksa toplam ıcerıgın hangısı buyuktur onu anlamak ısttıyorsun.Toplam ıcerıgı anlamak ıstıyorsan cok kolaydrı yukarıda yapman gerekenı soledım.
Bu sekılde soruyorsan en buyuk basamaktan baslıyarak kucuge dogru karsıalstırma yapıcaksın. en buyuk basamagı buyuk olan sayı dıger gruuptakı sayıdan buyuktur. seklınde sonuca varıcaksın .
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.

mesmert

Mrb  arkadaşlar

bu sayılar değişken sayılardır

G1_SAYI=123

G2_SAYI=321

grup sayı değerleri yukardaki gibi olduğunda grupları kontrol ettiğimde G2_SAYI değerinin büyük olduğunu anlamak istiyorum yapmak istediğim bu arkadaşlar

XX_CİHAN_XX

Sayıyı basamak basamak karsılastıracaksın.
önce her iki sayının yüzler basamagını karsılastır.(her bir basamagın bır regısterde oldugunu varsayarak acıklama yapıyorum)
yüzler basamagı buyuk olan sayı direk en buyuk guruptur.Yuzler esıt ıse onlar basamagını karsılastır.bu durumdada onlar buyuk olan sayı gurubu en buyuk gruptur.onlarda esıt ıse gerıye bırler basamagı kalıyor.onuda karsılastırdıgında buyuk olan gurubu elde etmıs oluyorsun.bırler basamagıda esıt ıse zaten ıkı sayı bırbırıne esıt demektır.Gelelım asm de karsılastırmayı nasıl yapıcaksın.Sana ıkı gurubunda yuzler basamagını karsılastıran kodları vereyım sen aynısını dıger basamaklara uygula.
bırıncı guruptakı sayının yuzler basamagı G1_SAYI1 olsun
ıkıncı gurubunkıde G2_SAYI1 olsun.Bu durumda hangı degıskenın buyuk oldugunu ogrenmek ıcın su kodları kullanamlısın.
    MOVF     G1_SAYI1,W
     SUBWF   G2_SAYI1,W
     BTFSS    STATUS,C
     GOTO     GURUP1_BUYUK
     BTFSS    STATUS,Z
     GOTO     GURUP2_BUYUK
     GOTO     YUZLER_BASMAGI_ESIT   ;DIGER BASAMAGA GEC

Kolay gelsın..
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.