Hallo, ich möchte gerne label adressen Speichern, und später wieder abrufen und in den Z-Pointer laden also im SRAM Platz reservieren: .DSEG label_addr: .BYTE 2 unter verschiedenen Labels sind daten abgelegt: label1: .db 00011101, 10101010 .db 11101010, 10001001 label2: .db 11010100, 11100111 .db 01010011, 11111111 ect. jetzt möchte ich abhöngig vom Inhalt eines registers eine best. Label Adresse im SRAM speichern in einer ISR soll dann der Z-Pointer mit der Adresse die im SRAM unter label_addr gespeichert ist geladen werden Wie speichere ich jetzt z.B. die Adresse von label2 in label_addr ? und wie kann ich dann den Z-Pointer damit laden Grüße Michael
;label2 von Wortadresse in Byteadresse wandeln ;und im RAM speichern ldi r16,low(label2<<1) sts label_addr,r16 ldi r16,high(label2<<1) sts label_addr+1,r16 ;z aus Memory laden lds zl,label_addr lds zh,label_addr+1
Hallo, der Zeiger zeigt ins Ram, nicht in den Flash. Es sind also alles Byte-Adressen. ldi r16,low(label2) sts label_addr,r16 ldi r16,high(label2) sts label_addr+1,r16 dürfte also eher passen. Gruß aus Berlin Michael
Ok, danke Euch. :-)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.