PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Array Bascon - > Assembler und zurück



haus51
05.03.2007, 11:48
Wie bekomme Zugriff auf ein Array,das in Bascom definiert ist, in Assembler. Einzelne Bytes sind klar, aber ein Array???
Danke schon mal
Günther

p_mork
05.03.2007, 16:11
Hallo haus51,

bei einem eindemensionalen Array sollten die Variablen eigentlich nacheinander angeordnet sein. Und im Bascom kann man ja unter "Show Compile Result" nachschauen, wo das Array anfängt.

MfG Mark

haus51
06.03.2007, 06:22
Das war auch meine Vermutung.
Nur die Ergebnisse sind leider ncht so wie erwartet.
Entweder mach nich noch was falsch oder es ist doch anders.
Es sollte doch so gehen:
.
For I = 1 To 255
Dcfbit(i) = I
Next
I = 97

L:

Cls

$asm
ldi r24, {i}
sts {meinfeld},r24
Incr I
$end Asm

Lcd "M = " ; Meinfeld

Goto L:

Tuts aber nicht


Günther

PicNick
06.03.2007, 08:06
(na, soooo einfach geht's auch nicht, das ist ja ein RISC-Dödi)

Empfehlung:
https://www.roboternetz.de/wissen/index.php/Assembler_Einf%C3%BChrung_f%C3%BCr_Bascom-User

haus51
06.03.2007, 09:55
Daher hab ichs ja
Vereinfacht: i -> r24, r24 -> meinfeld, i increment, meinfeld anzeigen ->Schleife
Wo hakts??

PicNick
06.03.2007, 10:19
d.h "I" ist auf der adresse 1 - 255 ?

haus51
06.03.2007, 10:30
Die for - next schleife brauch ich vorerst nicht, I = konstant auf irgendeinen Wert.
Günther

haus51
06.03.2007, 10:32
Am Besten wärs natürlich, wenn i als Zeiger auf Dcfbit(i) zeigen tät.

Hanni
06.03.2007, 10:37
Bevor man sich mit solchen Dingen wie "Zugriff auf Bascom Arrays mit Assembler" sinnvoll beschäftigen kann fehlen ein paar nicht ganz unwichtige Daten.

1. Welchen Datentyp hat das einzelne Arrayfeld ?
2. Ist die Startadresse des Arrays bekannt ?
3. Wie sind Daten die breiter als 8 Bit sind im Speicher angeordnet ?

Grüße,
Hanni

haus51
06.03.2007, 10:59
1. byte
2. nein
3. im array nur 8 bit daten
Um es zu präzisieren: Die dcf77 Uhr liefert einen string mit 60 Werten (std. min, sek...) die verarbeite ich mit bascom zu realen werten. in ass aber eigentlich eleganter?