Ein paar einfache Ansätze, um den Einstieg zu finden


Register (hier rgi) füttert man mit nem 'Load Immediate':
   LDI rgi, 0x08
oder auch Dezimal:
   LDI rgi, 8

Die (Speicher-, Flash-, EEProm-) Adressen in den XYZ Registern werden auch mit nem LDI gefüttert, allerdings hier mit zwei davon, da man mehr als 8Bit adressieren können möchte (Low- und HighByte eines 16Bit Wortes).
   LDI YH,HIGH(mbuffer+2)
   LDI YL,LOW(buffer+2)
Hier im Beispiel wurde mit dem +2 das 3. Byte (+0,+1,+2,..) des Speichers von 'mbuffer' relativ adressiert, daß geht auch und spart abundzu ein wenig Stress.


Speicherbereichen (des RAM) gibt man im Data-Segment (.DSEG) des ASM files Namen. z.B. so:
;
; Datenfelder festlegen
;
.DSEG
   ; sys, io buffer
   mbuffer:   .byte 64
Und schon faßt mbuffer 64 bytes.


Von Anfang an bekannte Daten legt man am Besten im EEProm ab. Im EEProm-Segment (.ESEG) des Files:
;
; Daten im EEProm
;
.ESEG
.ORG $0000
   eedata:   .db 0xaa,0xbb,0xcc,0xdd
Mit dem .ORG wird die Startadresse im Segment angegeben, geht auch bei .DSEG und .CSEG.
Zu beachten ist, daß u.U. am Ende jeder Zeile bytes eingefügt werden (müssen), da eine gerade Anzahl von bytes drin sein muß/sollte.