Ich schreibe gerade ein Programm mit 8051er-Befehlssatz und dazu habe ich eine Häufigkeitsverteilung von Stichproben programmiert; jetzt bin ich gerade dabei, die Stichproben mit der jeweiligen Häufigkeit so zu sortieren, daß die kleinste Stichprobe am Anfang der Tabelle steht, die größte Stichprobe am Ende der Tabelle; dazu erforderlich ist ein 16bit-Vergleich zweier Stichproben (10bit-Werte): z.B. mov DPTR,#6fffh ;Anfang der Häufigkeitsverteilungstabelle movx A,@DPTR ;Low-Byte der Stichprobe - Nr.1 laden mov R2,A ;und retten inc DPTR movx A,@DPTR mov R3,A ;High-Byte der Stichprobe - Nr.1 laden inc DPTR ;überspringen der Häufigkeiten inc DPTR inc DPTR movx A,@DPTR ;Low-Byte der Stichprobe - Nr.2 laden mov R4,A inc DPTR movx A,@DPTR ;High-Byte der Stichprobe - Nr.2 laden cjne A,3,ungleich mov A,R4 cjne A,2,ungleich ungleich jc Stichprobe - Nr.1 ist größer Stichprobe - Nr.1 ist kleiner ... ;Aktion2 Stichprobe - Nr.1 ist größer ... ;Aktion1 Die Tabelle enthält nur verschieden große Stichproben mitsamt der jeweiligen Häufigkeit, abgelegt im Speicher (externem RAM) in der Reihenfolge (Stichprobe)-Lowbyte-Highbyte-(Häufigkeit)-Lowbyte-Highbyte ... (Stichprobe)-Lowbyte-Highbyte-(Häufigkeit)-Lowbyte-Highbyte usw., um diese später statistisch auszuwerten. Gleiche Werte kommen nicht vor. Es sind nur wenige Befehle nötig, um festzustellen, welche der beiden 16bit-Werte der kleinere ist. Ich habe allerdings das Schema noch nicht mit dem Simulator getestet.
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.