(MFC mit dem...) assembler generierten objektcode einbinden
-
ein herzliches hallo,
ich spiele im momemt ein wenig mit assembler herum, um ein verständnis für das funktionieren des rechners und auch von c++-code zu bekommen.
zur frage: wie kann ich vorher mit dem assembler erzeugte .obj-dateien
in c-code einbinden, denn mit "__asm" im c++-code kann ich ja leider nicht die
vollen möglichkeiten des assemblers ausnutzen.
thx, pablo
-
Hallo,
ist keine Standard-C++ Frage. Welchen Compiler verwendest du?
-
n'morgen HumeSikkins,
ich verwende das visual studio 97.
Sorry, wusste nicht wohin mit der Frage.
Schönen Tag noch
pablo
-
du musst einfach nur die Prototypen für die Funktion schreiben und mit extern "C" makieren.
Hier ist mal ein Beispiel für den GCC, ich hoffe das bringt dich weiter, auch wenn du den Assembler Code mit dem MS VC++ nicht direkt übernehmen kannst
.file "object.s" .text .globl strlen .type strlen,@function strlen: ## size of a string pushl %ebp movl %esp, %ebp subl $4, %esp movl 0x08(%ebp),%edi /*%edi = s*/ xorl %ecx,%ecx decl %ecx /*%ecx = -1*/ xorb %al,%al /*%al = `0`*/ repne scasb /*%edi++ == %al?*/ incl %ecx incl %ecx negl %ecx /*%ecx=-%ecx*/ movl %ecx,%eax
#include <cstddef> #include <iostream> using namespace std; extern "C" { size_t strlen(const char *s); } int main() { cout << strlen("hallo") << endl; }