Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Vielen Dank Peter! > > Es steht so ähnlich ja schon in der Dokumentation drin, aber eben nicht so genau (Compiler-Befehl, > Übergabewert ist ein Symbol etc.) > Vielleicht kannst du deine Erklärung in die Dokumentation übernehmen, mit der habe ich es ver- > standen! > > Schönen Start in die Woche, > > Andy > > > > > Hallo Andy, > > > > der $asm Befehl ist eine Compiler Anweisung. Sie wird bentöigt, damit man vom C Source > > die Assembler Routine aufrufen kann. Der Compiler kann ja nicht wissen welche der label > > im Assembler Source der Startpunkt einer Routine ist, und welche Parameter die Assembler > > Routine vom Stack nimmt. Der Übergabewert deklariert ein Symbol das in einem Assembler > > .ifdef abgefragt werden kann. So kann Assemblercode geschrieben werden, der nur übernommen wird, > > wenn der C-Source auch wirklich einen Funktionsaufruf macht. Ansonsten wird der Assemblercode > > immer generiert, ob benutzt oder nicht. Ich verweise auf die Doku: > > > > > > void proc1 $asm("tag1")(void); > > int proc2 $asm("tag2")(int a, float b, byte c); > > > > Man sieht in der Deklaration die Strings "tag1" und "tag2". Diese Strings werden in > > einer ".def" Datei definiert, wenn tatsächlich ein Aufruf der deklarierten Funktionen > > stattfand. In diesem Fall sieht dann die ".def" Datei folgendermaßen aus: > > > > ; .def file > > .equ glob1 = 2 > > .define tag1 1 > > .define tag2 1 > > > > Setzt man nun im Assembler Source die einzelnen Routinen in ".ifdef ..." Anweisungen, so > > werden die Routinen nur assembliert, wenn ein Funktionsaufruf wirklich stattfand. Dies > > spart Platz bei der Codegenerierung. Auch werden in der ".def" Datei die Positionen der > > globalen Variablen definiert. Die ".def" Datei wird automatisch zusammen mit den > > Assemblerdateien gemeinsam übersetzt, sie braucht nicht extra inkludiert zu werden. > > > > > > Gruss Peter > > > > > Hallo, > > > > > > was genau macht der $asm-Befehl? Mir ist klar, dass er zur Deklaration für Assembler-Funktionen > > > benötigt wird, aber warum? > > > > > > Ist das ein Präprozessor Befehl? Ein C-Befehl? Mich irritiert das $-Zeichen. > > > > > > Außerdem: Was genau hat der Übergabewert zu sagen? Geht es hier auch wieder in Richtung Prä- > > > prozessor? > > > > > > > > > An dieser Stelle würde ich mir ein bisschen mehr in der Dokumentation wünschen. > > > > > > > > > > > > Vielen Dank schonmal, > > > Andy