Du benötigst die Helperfunktion Loadadr dafür. Wenn das Array von 0 beginnen darf, kann das SBIW entfallen.
Der Code ist selbsterklärend und sollte alle Deine Fragen beantworten.Code:Loadadr myArr(1) , Z !LDS R18, {ArrPtr} !LDS R19, {ArrPtr+1} !SBIW ZL, 1 !ADD ZL, R18 !ADC ZH, R19 !LD R16, Z !STS {Rslt},R16
Loadadr benutzt außer dem angegebenen Pointerregister keine weiteren Register, es muss also dafür nichts zusätzlich gesichert werden.
Lesezeichen