Autor Thema: asm code einbinden  (Gelesen 2461 mal)

Damian

  • Beiträge: 100
    • Profil anzeigen
    • http://www.cosysda.de
Gespeichert
« am: 09. April 2006, 17:27 »
Hallo ich wollte fragen wie ich nasm assembler code in mein c kernel benutzen kann. Ich benutze den compiler gcc

MFG Damain
Habe mein eigenen Code syntax ;)
Und rechtschreibfehlern dürft ihr behalten.
if (user =="user"){Rechtschreibfehler_behalten();}elseif (user >= "moderator"){Rechtschreibfehlern_korrigieren();}

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 09. April 2006, 18:34 »
Du machst mit Nasm aus deinem Asm-File einen Object-File. Diesen Object-File linkst du mit Hilfe von ld mit den restlichen Object-Files zusammen. Also in etwa so:

gcc -c -o kernel.o kernel.c
[...]
nasm -f aout -o asmfile.o asmfile.asm
ld *.o -o os.bin

Natürlich sind die Parameter hier unvollständig, ist ja auch nur ein Beispiel. Außerdem musst du evtl. das aout durch ein elf oder coff oder so ersetzen.
Um in Asm-Files auf C-Funktionen zugreifen zu können musst du irgendwo vor dem Aufruf das hier einfügen:

extern FunktionsName ; unter Win muss meistens ein _ vor den Namen

Um Asm-Funktionen in C-Files aufzurufen musst du im Asm-File das einfügen:

global FunktionsName

Und im C-File den Funktionsprototyp hinzufügen.

 

Einloggen