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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren