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
Guck Dir mal den CJNE- und den JC/JNC-Befehl an. Damit kann man prima vergleichen. Peter
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
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
Mist, das $ ist natürlich falsch !!! Das muß ein Sprung in die nächste Zeile sein, z.B. $+3 oder mit Sprungmarken. Peter
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.