Frage

Wie alle Assembler-Code Zeilen in mein C-Programm aufzunehmen?

In Turbo c besteht die Möglichkeit, eine Assembler-Code-Datei (.asm) zu einem Projekt von wenigen .c-Dateien hinzufügen?

War es hilfreich?

Lösung

Eine Möglichkeit Assembler-Code enthalten ist, eine Wrapper-Funktion hinzuzufügen und den Assembler-Code in dem ASM-Block zu schreiben, wie im Beispiel unten gezeigt:

void wrapper_function()
{
    asm
    {
        /* your assembly code */
    }
}

Andere Tipps

Sie können Ihre Make-Datei verwenden, um Aktionen für unterschiedliche Zieltypen zu definieren. Für C-Typen (z.B. foo.c) die C-Compiler aufgerufen. Für ASM-Dateien, rufen Sie den Assembler. Die Ausgabe von entweder sollte eine Objektdatei (z.B. .o), die alle durch den Linker zusammen kompiliert werden kann.

Wenn Sie ein wenig Montage haben, gehen Sie vor ein Inline. Ansonsten empfehle ich separate Module und funktionelle Zersetzung als die beste Art und Weise, alles zu verwalten. Vor allem, wenn Sie verschiedene Ziele unterstützen müssen (das heißt Cross-Plattform-Entwicklung).

Sie können auch Link in den Objektdateien. Aber Inline-Assembler ist viel leichter zu pflegen.

void func()
{
asm://assembly statements...
asm://assembly statements...
...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top