Inline ASM probleme

Gast #406779
Lesenswert?
• ▲
▼
Hallo,
ich habe ein Array "volatile werte[100]" und will diese in inlineASM
füllen, vorerst nur einen Wert reinschreiben, leider funktioniert dies
nicht so wie ich es mir vorgestellt habe. Hat vileicht jemand einen
Tipp?


asm volatile(
"ldi XL, low(%0)"        "\n\t"
"ldi XH,high(%0)"        "\n\t"
"LDI  _tmp_reg_, 0x55"  "\n\t"
"ST X+, __tmp_reg__"      "\n\t"
:
:"x" (werte)
);
Gast #406786
Lesenswert?
• ▲
▼
Dein Code ging nicht, weil
(a) das _temp_reg_ nicht mit LDI zusammenpasst,
(b) das constraint "x" ein Register beschreibt, nicht eine
Speicheradresse,

Was du evtl. gemeint hast:
    asm volatile(
  "LDI r24, 0x55"      "\n\t"
  "ST X+, r24"         "\n\t"
  :
  : "x"(werte)
  : "r24", "r28", "r29");

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren