Hallo, ich versuche in Assempler eine Stück Code zu schreiben. Aber ich bekomme es einfach nicht hin. Vielleicht könnt ihr mir helfen? ich habe ein char, welches überpruft werden soll, ob zwischen 0x30-0x39 und 0x41-0x46 hex liegt. Sollte es in diesem Bereich sein, dann soll in der Variable erg=1 sein, ansonsten erg=0 geschrieben werden. Hat jemand eine ahnung? Gruß Hans
Hans wrote:
> Hat jemand eine ahnung?
Nein, solange Du uns nicht sagt für welchen Controller.
Eikn Wort Assempler gibt es nicht. Das Zeugs heißt Assembler, von "to assemble", zusammensetzen Versuch doch erst mal den Algorithmus NICHT in Assembler, sondern in einer dir genehmen Hochsprache zu formulieren. Und dann machst du dir Gedanken darüber, welchen Assemblerbefehl du nutzen könntest, um dieses zu codieren.
> Ja, dass hilt mir aber auch nicht weiter!!!
was? Das denken darüber wie der Algorithmus aussehen müßte?
hi, brsh--->branch if same or higher brlo--->branch if lower dürften weiterhelfen. MfG und3rt4ker
mov r18, r24 subi r24, 0x30 cpi r24, 0x0A brcs .+8 ldi r24, 0x00 subi r18, 0x41 cpi r18, 0x06 brcc .+2 ldi r24, 0x01 eor r25, r25 ret
Nein hilft es nicht, da er so für seine Hausaufgabe nur eine 4 bekommen würde. ;-)
Was hält ihr hier von?? char zeich; int erg; _asm { mov eax, zeich mov ebx, 0x30 test eax, ebx // oder cmd jb l1 // kleiner 0x30 mov eax, 0 jmp ende l1: mov ebx, 0x46 test eax, ebx ja l2 // größer 0x46 mov eax, 0 jmp ende l2: mov ebx, 0x40 test eax, ebx ja l3 // größer 0x40 mov eax, 1 jmp ende l3: mov ebx, 0x3A test eax, ebx jb l4 // kleiner 0x39 mov eax, 1 jmp ende l4: mov eax, 0 ende: mov erg, eax }
Naja, den X86 benutze ik nur zum wellenreiten und post lesen ... ansonsten darf der stromfresser auch mal nen uC programmieren ;-)
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.