AVR Ports mit LD statt OUT ansprechen

Gast #3259569
Lesenswert?
• ▲
▼
Liebe Forenten,
in einem zeitkritischem AVR Assembler Loop muss ich Werte
auf ATTiny861's Port A ausgeben. Die Werte werden ueber
das Z Register indiziert:
1
forever:
2
    ...
3
    LD      tmp_register, Z
4
    OUT     _SFR_IO_ADDR(PORTA), tmp_register
5
    ...
6
    RJMP    forever

Waere es moeglich, das ganze abzukuerzen, da I/O Ports
ja wie Register in den Anfang des SRAM gemappt werden:
1
    LD     _SFR_IO_ADDR(PORTA + 32), Z

Ich habe leider aktuell keinen Zugriff auf meine
Entwicklungsumgebung, um die Idee zu verifizieren.
Das Datenblatt scheint die Target Registerwerte bei
dem LD Befehl auf 0 bis 31 zu limitieren.
#3260488
Lesenswert?
• ▲
▼
Drum heißt es ja auch RISC
Reduced Instruction Set

Nicht alles geht, aber das was geht geht dafür schnell.

> Das Datenblatt scheint die Target Registerwerte bei
dem LD Befehl auf 0 bis 31 zu limitieren.

Kunststück. Wenn die Bits zur Codierung des Targets im Opcode 
aufgebraucht sind, dann sind sie aufgebraucht.

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