@DJANGO
>Ich erhalte über SPI 2 Byte. Das erste Byte ist die Adresse und das
>zweite Byte die Daten. nun möchte ich das erste Byte(Adresse) als
>Speicherindex verwenden und in "der" Speicherzelle das Byte 2
>speichern(Daten).
>Als Pseudocode:
>SPEICHER_ZELLE(Byte1)=Byte2;
Das hab ich schon so verstanden. OK, hier vielleicht die komplette
Variante
.dseg
.org 0x60
id_data .byte 300 ; buffer für SPI daten
.cseg
; Daten vom SPI holen und in Registern speichern, spi_1, spi_2
; Basisadresse laden
ldi zl,low(id_data)
ldi zh,high(id_data)
; Index addieren, 16 Bit
add zl, spi_1
ldi temp,0
adc zh,temp
st z, spi_2
>Ich möchte somit bei einer Prüfung Zeitsparen, indem ich nicht den
>ganzen Speicherbereich absuche sondern mit der adresse kann ich direkt
>auf die Speicherzelle zugreifen und den Inhalt auslesen.
Genau, geht wie oben. Lesen auf exakt dem gleichen Weg, nur halt
anstelle
st z, spi_2
ein
ld spi_2,z
MfG
Falk