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.