Forum: Mikrocontroller und Digitale Elektronik ASM: Signed Byte +/- Vergleich ???


von AVRli (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein kleines Verständniss Problem bei dem Vergleich von Signed 
Bytes.

Ich habe ein SignedByte welches von 0-127 den Positiven und von 128-255 
den negativen Bereich darstellt.

Wie wird folgener Vergleich in ASM realisiert?

wenn sByte>+30 dann springe zu GOTOH
wenn sByte>-30 dann springe zu GOTOL

sByte>+30 hab ich so realisiert
1
cpi sByte,30
2
brcs GOTOH

Wie aber macht man den "Negativen" Vergleich?

Ein schönes Wochenende, MfG AVRli

von Falk (Gast)


Lesenswert?

Genauso, dafür gibt es die entsprechenden Branch Befehle. Siehe 
Assembler Instruction Guide.

MFG
Falk

von AVRli (Gast)


Lesenswert?

Hi,

ich habe nun folgendes versucht aber irgendwieklappt es nicht.
-30 ist gleichzeitig auch immer >30 somit springt er nicht richtig.

Das ist wohl doch alles nicht so einfach wie ich dachte. :-(((


1
  cpi sByte,30
2
  brge GOTOH    ;Wert > +30 dann LED ein
3
  cpi sByte,-30
4
  brlt GOTOL    ;Wert < -30 dann LED ein
5
  cbi PORTB,PB3    ;Wert >-30 und <+30 LED aus!
6
  jmp GOTOEND
7
GOTOH:
8
  sbi PORTB,PB3
9
  jmp GOTOEND
10
GOTOL:
11
  sbi PORTB,PB3
12
GOTOEND:

Gruß AVRli

von AVRli (Gast)


Lesenswert?

Hi,

so nun aber :-D
Puhh, also so klappt es nun wie erwartet, naja hat nen bischen gedauert 
dahinterzusteigen....

Da man vlt. mit der Forensuche bei gleichen Problem auf diesen Beitrag 
stöst, "so geht's" in ASM ;-)
1
  cpi sByte,30
2
  brlt GOTOH    ;Wert > +30 dann LED ein
3
  cpi sByte,255-30
4
  brge GOTOL    ;Wert < -30 dann LED ein
5
  cbi PORTB,PB3    ;Wert >-30 und <+30 LED aus!
6
  jmp GOTOEND
7
GOTOH:
8
  sbi PORTB,PB3
9
  jmp GOTOEND
10
GOTOL:
11
  sbi PORTB,PB3
12
GOTOEND:

MfG AVRli

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.