Forum: Compiler & IDEs 512byte array


von Fabian Braun (Gast)


Lesenswert?

hallo

ich habe folgende situation:
ein array im c code deklariert z.B. unsigned char buffer[512];
jetzt möchte ich in meinen assemblerroutinen dieser buffer auch
benutzten jedoch wie kommen ich zu der adresse dieses buffers?!?
die adressen der buffer im externen ram sind mir bekannt und diese
definiere ich auch selber...jedoch muss dieser buffer im internen
ram sein, wenn ich jedoch diesem buffer eine adresse zuweise ist
es ja möglich dass andere variablen überschrieben werden. oder ist es
möglich den buffer an eine bestimmte adresse zu kopieren, sodass der
compiler "weiss" dass dieser speicherplatz schon belegt ist und nicht
weiter benutzt wird?!?

merci für die hilfe

gruss fabian

von Jörg Wunsch (Gast)


Lesenswert?

Wenn Du die Variable im C-Programm auf globaler Ebene definiert hast,
kannst Du den Namen `buffer' einfach so in einem Assemblerprogramm
referenzieren.  Du darfst ihn noch mit .extrn buffer deklarieren, aber
das ist rein optional und wird vom Assembler ignoriert: alle
unbekannten Symbole, die bei der Assemblierung auftauchen, werden als
extern vermutet.  (Dadurch bekommst Du bei Tippfehlern auch erst vom
Linker eine Meldung, nicht schon vom Assembler.)

von Fabian Braun (Gast)


Lesenswert?

okay...sieht schon mal gut aus!

herzlichen dank für deine hilfe!

gruss fab

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.