mehrere Werte

Gast #165696
Lesenswert?
• ▲
▼
Hallo.

Abfrage von mehren werten vereinfachen.

AVR: ATmega8515
Sprache: ASM

Wie kann ich die cpi abfrage vereinfachen ?

vielen dank, markus

** Code **

ch1:
cpi dmx_byte, 0
breq motor_off
cpi dmx_byte, 1
breq motor_off
<bis dmx_byte 10>

cpi dmx_byte, 11
breq motor_links
cpi dmx_byte, 12
breq motor_links
cpi dmx_byte, 13
breq motor_links
<bis dmx_byte, 20>

cpi dmx_byte, 21
breq motor_rechts
cpi dmx_byte, 22
breq motor_rechts
cpi dmx_byte, 23
breq motor_rechts
<bis dmx_byte, 30>
Gast #165698
Lesenswert?
• ▲
▼
Nicht zwingend kürzer (nur wenn relative Sprünge nicht mehr ausreichen),
aber einfacher:

  ldi  zh, high(cmdtab*2)
  ldi  zl, low(cmdtab*2)
hc1:  lpm  xl, z+
  lpm  xh, z+
  lpm  yl, z+
  lpm  yh, z+
  cpi  xh, $FF
  cpse  r24, xl
  brne  hc1
  movw  zh:zl, yh:yl
  ijmp

cmdtab:
  .dw  11,  cmd_11
  .dw  22,  cmd_22
  .dw  33,  cmd_33
  ...
  .dw  $FFFF,cmd_unknown

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.