Forum: Projekte & Code ASCII-Bereich filtern mit 89C2051


von Jens Zeitler (Gast)


Lesenswert?

Hallo zusammen,
ich habe erst angefangen mit Programmieren und habe folgendes
Problem:Wie muss ich das programmieren, dass nur die ASCII-Zeichen A-Z
(41h-5Ah) und die Zahlen 0-9 (30h-39h) durchgelassen werden ? Alle
anderen Zeichen werden ignoriert. Ich schreibe ein Assembler-Programm
für den 89C2051 (8051).

Danke Jens

von peter dannegger (Gast)


Lesenswert?

Guck Dir mal den CJNE- und den JC/JNC-Befehl an.

Damit kann man prima vergleichen.


Peter

von Jens Zeitler (Gast)


Lesenswert?

CJNE  A,#41h,Prüfen6  ;prüfe weiter und springe weiter
      SJMP  Bu_Code_holen  ;es ist ein großes A
Prüfen6:    JC  Error1    ;es ist kleiner als 41h, also nicht erwünscht
      CJNE  A,#5Ah,Prüfen7  ;prüfe weiter
      SJMP  BU_Code_holen  ;es ist ein "Z"
Prüfen7:    JC   Bu_Code_holen  ;es muss ein Groß-Buchstabe sein

von peter dannegger (Gast)


Lesenswert?

1
;
2
        cjne    a, #'0', $
3
        jc      tst1
4
        cjne    a, #'9' + 1, $
5
        jc      ziffer
6
tst1:   cjne    a, #'A', $
7
        jc      ignore
8
        cjne     a, #'Z' + 1, $
9
        jnc     ignore
10
grossbuchstabe:
11
12
ziffer:
13
14
ignore:


Peter

von peter dannegger (Gast)


Lesenswert?

Mist, das $ ist natürlich falsch !!!

Das muß ein Sprung in die nächste Zeile sein, z.B. $+3 oder mit
Sprungmarken.


Peter

von Jens Zeitler (Gast)


Lesenswert?

Danke allen für die schnelle Hilfe, Problem gelöst.
Jens

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
Noch kein Account? Hier anmelden.