assembler datei ind c-code einbinden

Gast #1430874
Lesenswert?
• ▲
▼
Hallo,

ich bin noch Programmier Neuling und hänge an folgendem Problem fest:

Ich will in meinen C-Code eine .S assemblerdatei einbinden, leider 
interpretiert der compiler die Datei als C, wenn ich schreibe #inlcude 
"blabla.S". Wie kann ich es einstellen, dass er die Datei als Assembler 
interpretiert?


mfg
Persönliche Seite #1430882
Lesenswert?
• ▲
▼
#include "blabla.S" macht man nicht. Man übersetzt die Assembler-Sourcen 
als eigene Module und bindet mit dem Linker die entstehenden 
Objektdateien mit den Objektdateien aus C-Sourcen zusammen.

Beim GCC ist es so, dass .S (S Gross) Dateien zuerst durch den CPP 
(Präprozessor) laufen. Das ist normal und so gewollt. Wenn du keine 
Behandlung durch den CPP willst, ändere die Dateikennung in .s (s 
klein).
Gast #1430956
Lesenswert?
• ▲
▼
Hallo,
ich will eine Art Nachbau von der Radig USB Relaiskarte machen, dazu 
will der code eine Funktion (CRC 16bit) die in assembler geschrieben ist 
( ich benutze auch die v-usb lib von www.obdev.at) haben, und hierfür 
muss ich eine Datei namens usbdrvavr.S einbinden, weiß aber nicht wie. 
Ich arbeite mit avr studio.

mfg
Gast #1431087
Lesenswert?
• ▲
▼
kbuchegg schrieb:

>> ich bin noch Programmier Neuling
               *******************

>> Ich will in meinen C-Code eine .S assemblerdatei einbinden,
                                    ************************


>Das beisst sich.

Stimmt! Ich habe als Programmier-Neuling mit Z80 Maschinensprache 
angefangen: 3E 55 21 00 10 C9
#1431358
Lesenswert?
• ▲
▼
> Stimmt! Ich habe als Programmier-Neuling mit
> Z80 Maschinensprache angefangen: 3E 55 21 00 10 C9

Und ich mit im kopf disassemblieren...
1
3E 55     LD A, 55
2
21 00 10  LD HL, 00 10
3
C9        RET

Naja, Z80 Assembler ist eigentlich ziemlich cool, hab bisher aber nur 
paar Sega ROMs angeguckt und einen memtest (ASM 29 Bytes) geschrieben. 
Wollte mal ne z80 Platine machen, bin dann aber vor den ~ 28 
Busleitungen (16x Adresse, 8x Daten, Steuerleitungen) zurückgeschreckt
Gast #1431366
Lesenswert?
• ▲
▼
fast: LD HL, 1000h

Wollte nur sagen, Programmieren findet im Kopf statt, die Umsetzung kann 
dann unterschiedlich erfolgen. Wer nicht wie ein Programmierer denken 
kann ist nicht nur mit Assembler überfordert, sondern auch mit jeder 
"höheren" Programmiersprache!
#1431378
Lesenswert?
• ▲
▼
achja, der z80 war ja auch little endian...
Wo du aber Recht hast, hast du Recht. Es kommt nicht darauf an, WOMIT 
man programmiert, sondern nur wie gut man Probleme zerlegen kann um sie 
dann atomar zu lösen (für fortgeschrittene: zu vereinheitlichen, damit 
man nicht mehrfach das selbe für ähnliche Probleme macht)
Gast #1431898
Lesenswert?
• ▲
▼
so zurück zum Thema. Mit obigem Makefile ist es nicht trivial die 
Assembler Datei zu linken.
Es ging ja weder um Maschinencode vom Z80 noch um 
assemblerprogrammierung an sich, sondern "lediglich" darum wie eine 
Assemblerdatei in ein GCC Project eingfügt wird.

Versuch mal ein bestehendes Projekt auf das Beispiel Makefile von AVRGCC 
anzupassen.
Ich arbeite immer damit, man muss dann nur die Assembler Dateien bei 
ASRC eintragen und ansonsten nur den Header einbinden.

Schau Dir hierzu mal das Tutorial an!
Wenn Du lernst ein Makefile auf deine Bedürfnisse anzupassen ist Dir 
mehr geholfen als hier was vorzukauen.

Grüße
 Timo

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.