atari-home.de - Foren
Software => Coding => Thema gestartet von: guest3744 am Di 29.09.2015, 18:59:37
-
Hallo, guten Tag.
Ich bin wieder auf dem Irrpfad von ASM und Datenbereichsadressen.
Neue geänderte Fragestellung:
Befinden sich die 5 Adressen von daten1-daten5 hintereinander bei 0(A), 4(A0), 8(A), 12(A0), 16(A0) ?
lea tab(PC),A0
rts
daten1: DS.L 128
daten2: DS.L 128
daten3: DS.L 128
daten4: DS.L 128
daten5: DS.L 128
tab: DC.L tab-daten1,tab-daten2,tab-daten3,tab-daten4,tab-daten5
END
-
lea daten(pc),a1 <- Adresse von daten nach a1
usw
Ab Anfangsadresse von addr liegt der offset von addr rückwärts zu daten und daten1
wie hier (http://forum.atari-home.de/index.php?topic=12304.msg98999#msg98999) beschrieben.
ds.l fordert speicher im bss (block storage segment) an. hier longs. sowas wie eine undefinierte variable.
dc.l legt speicher im data-segment ab und zwar definierten, wie texte oder eben wie bei dir die differenz der adresse addr zu daten.
also programm steht im text-segment
initialisierte daten wie texte usw stehen im data-segment
undefinierte dinge stehen im bss
-
Ich habe den falschen Gedanken oben gehabt.
Kannst du die Frage für oben noch einmal beantworten?
Danke.
Gruss
-
nein
bei: tab: dc.l daten1, daten2 ...
wäre das der fall
wie oben dc.l tab-daten1 ... stehen lediglich die offsets zur tabelle in a0
-
Ja danke.
Gruss