Hallo, ich möchte gern aus 8 werten die im Ram einen Mega 16 liegen jewals aus den 4 grössten werten den Mittelwert bilden. Gibt es dafür Lösungen in Assembler?
Nachdenkung? also das mein Problem ist die jewals 4 grössten werte herrauszufinden. das müsste mit vergleichen oder sortieren gehen denke ich wie sortiert man mit einem AVR.
Wie sortierst du denn 8 Zahlen? 'jewals' Paarweise vergleichen und entsprechend tauschen. google mal Sortierverfahren.
Wie ich den Grössten wert bekomme ist jetzt klar. mir fehlen jetzt nur noch "Platz 2-4"
1 | sort: clr templ |
2 | clr temph |
3 | clr templ1 |
4 | clr temph1 |
5 | ldi YL,low(matrix) |
6 | ldi YH,high(matrix) |
7 | |
8 | ldd templ,y+0 |
9 | ldd temph,y+9 |
10 | cp templ,temph |
11 | brsh sort_2 |
12 | mov templ,temph ; den Höheren wert in den niedriegeren schieben |
13 | sort_2:ldd temph,y+18 |
14 | cp templ,temph |
15 | brsh sort_3 |
16 | mov templ,temph |
17 | sort_3:ldd temph,y+27 |
18 | cp templ,temph |
19 | brsh sort_4 |
20 | mov templ,temph |
21 | sort_4:ldd temph,y+36 |
22 | cp templ,temph |
23 | brsh sort_5 |
24 | mov templ,temph |
25 | sort_5:ldd temph,y+45 |
26 | cp templ,temph |
27 | brsh sort_6 |
28 | mov templ,temph |
29 | sort_6:ldd temph,y+54 |
30 | cp templ,temph |
31 | brsh sort_7 |
32 | mov templ,temph |
33 | sort_7:ldd temph,y+63 |
34 | cp templ,temph |
35 | brsh sort_8 |
36 | mov templ,temph |
37 | |
38 | sort_8:ret |
nur dann wie weiter?
> nur dann wie weiter?
Jetzt suchst den größten Wert von 7,
dann den größten von 6,
dann den größten von 5.
Und dann suchst du in Google mal nach Quicksort, Bubblesort und anderen
Sortieralgorithmen und schaust nach, was du da gerade programmiert
hast... ;-)
Also merk ich mir die stelle an der der höste wert stand schließ die aus und suche den zweit hösten wert?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.