2 Stimmen

Wie verknüpft man ELF32-Assembly- und C-Dateien?

Ich habe ein einfaches Stück Assembly-Software (nasm) und eine einfache Anwendung in C geschrieben. Mein C-Code ruft eine Funktion aus dem Assembly-Code auf, aber ich weiß nicht, wie ich den C-Code kompilieren kann, ohne einen "undefinierten Referenz"-Fehler in der Zeile "extern int Sum();" zu erhalten.

C-Code:

#include <stdio.h>

extern int Sum();

main()
{
  int a1, a2, x;

  x = Sum(a1, a2);
  printf("value of x is: %d\n", x);
}

Montage-Code:

global _Sum

_Sum:
    push ebp
    mov  ebp, esp

    mov  eax, [ebp+8]
    mov  ecx, [ebp+12]
    add  eax, ecx
    pop  ebp
    ret

Wie kann ich diese beiden Dateien getrennt kompilieren und anschließend zu einer einzigen Datei zusammenfügen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X