Assembler LDI OUT Frage

OP #6287687
Lesenswert?
• ▲
▼
Hallo zusammen :)

Auf das Risiko hin, dass die Frage schon tausend mal beantwortet wurde:

Warum kann ich nicht direkt mit LDI Werte in ein Register laden?

Also zb: LDI SPL, LOW(RAMEND) ?

Ich finde überall nur den Umweg über ein Arbeitsregister und dann das 
Laden über OUT.

Also in dem Fall:
LDI r16, LOW(RAMEND);
OUT SPL, r16;

Ist das nicht langsamer, da ein Befehl mehr?

Viele Grüße
Stefan
#6287692
Lesenswert?
• ▲
▼
Stefan H. schrieb:
> Warum kann ich nicht direkt mit LDI Werte in ein Register laden?
weil LDI nich mit den Registern funktioniert. Es kann sogar nur Register 
16 bis 31.

> Ist das nicht langsamer, da ein Befehl mehr?
geht aber nicht anders, ansonsten würde LDI kein 16 bit Befehl mehr sein 
können. Lies mal das hier, dann wird es etwas klarer (nur die Seite zu 
LDI, nicht alles)
http://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf

Edit:
OUT und LDI sind beide 16 bit und brauchen 1 Cycle, ein 32Bit Befehl 
würde auch 2 Cycles brauchen und kaum einen/keinen Vorteil bieten, dabei 
aber die Menge der möglichen Opcodes eventuell sprengen.

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.