Arrays aus C in Assembler

Gast #232948
Lesenswert?
• ▲
▼
Hi,

ich hab hier gerade ein Problem mit dem Analog Devices Compiler (kein
Mikrocontroller, deswegen wohl etwas OT): ich möchte in einer
Assembler-Datei auf Felder eines Arrays aus einer C-Datei zugreifen.
Bislang hab ich sowas nie gebraucht und leider schweigt sich das Manual
auch darüber aus wie es geht. Sieht also so aus:

foo.c:
int blah[10];

bar.asm:
.EXTERN blah;

leider kann ich jetzt in bar.asm nicht einfach auf blah[1] zugreifen.
Wie machen das denn andere Compiler / Assembler?
Gast
Lesenswert?
• ▲
▼
> blah[1] = blah + sizeof (int)

Rufus meint das übrigens nur als Pseudo-Code, in C würde das auf Grund
der Pointer-Arithmetik bereits auf blah[2] zeigen, sizeof(int) == 2
vorausgesetzt. Nicht daß das hier jemand falsch interpretiert und
meint, wieder was gelernt zu haben ;-)
Gast
Lesenswert?
• ▲
▼
also zumindest mir war klar wie das gemeint war ;-)
Hatte nur gehofft dass es ein "schöneres" Konstrukt gibt (aber das
bringt mich auch schon weiter). Auf structs lässt mich der Assembler
ganz nett mit _blah->member zugreifen. Keine Ahnung ob das ein
Standardverhalten ist ...
Gast
Lesenswert?
• ▲
▼
Ich kenne den o.g. Assembler nicht, aber es ist in der Tat ein sehr
freundliches Verhalten, das habe ich bei anderen Assemblern nicht
gesehen. Hast Du mal in den Groups gegoogelt? Klingt für mich nach
einem nicht allzu exotischen Wunsch, sowas sucht man nicht als erster.
Gast
Lesenswert?
• ▲
▼
Google hat mir leider bei meiner Suche nicht wirklich weitergeholfen
(wobei ich mich erstmal auf Arrays in asm beschränkt habe) Der
Assembler / Compiler scheint was eigenes von Analog Devices zu sein --
jedenfalls sagt der (c) Analog Devices. Ich habe zwar schon mit
Mikrocontrollern mixed asm/c programmiert aber structs und arrays hab
ich da bisher nicht zwischen beiden "Welten" gebraucht.
Aber wenn das kein Standardverhalten ist wäre es wirklich interessant
da mal weiter zu suchen. Ist schon ziemlich angenehm ;-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.