Forum: Mikrocontroller und Digitale Elektronik Probleme mit Assempler


von Hans (Gast)


Lesenswert?

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

von Holger K. (krulli) Benutzerseite


Lesenswert?

Hans wrote:

> Hat jemand eine ahnung?

Nein, solange Du uns nicht sagt für welchen Controller.

von Hans (Gast)


Lesenswert?

Oh stimmt, einmal für einen AVR und für den PC zum vergleich!

von Wegstabenverbuchsler (Gast)


Lesenswert?

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.

von Hans (Gast)


Lesenswert?

Ja, dass hilt mir aber auch nicht weiter!!!

von Wegstabenverbuchsler (Gast)


Lesenswert?

> Ja, dass hilt mir aber auch nicht weiter!!!

was? Das denken darüber wie der Algorithmus aussehen müßte?

von Hans (Gast)


Lesenswert?

Wie ich den in Assembler schreibe!

von Daniel B. (und3rt4ker)


Lesenswert?

hi,

brsh--->branch if same or higher
brlo--->branch if lower

dürften weiterhelfen.

MfG und3rt4ker

von OBJDUMP (Gast)


Lesenswert?

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

von ... (Gast)


Lesenswert?

Nein hilft es nicht, da er so für seine Hausaufgabe nur eine 4 bekommen 
würde. ;-)

von Dirk (Gast)


Lesenswert?

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
  }

von X86 (Gast)


Lesenswert?

Naja,


den X86 benutze ik nur zum wellenreiten und post lesen ... ansonsten 
darf der stromfresser auch mal nen uC programmieren ;-)

von Hans (Gast)


Lesenswert?

WAT???

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.