#1 6. April 2011 mit Assembler linken? Hi RRler, will hier etwas ausprobieren bekomme es aber nicht hin. Also ich möchte einmal C code assemblieren und assemblercode (in nasm geschrieben) assemblieren und diese beiden zusammen linken. Leider finde ich im Internet nur wenig anleitungen dazu oder ich weiß nicht wonach ich suchen muss ?( also so sieht es aktuell aus: Code: //C-File #include <stdio.h> int main() { print(); return 0; } und hier mein Assembler-Code(mit nasm assembliert) Code: ; nasm Hello World SECTION .data msg: db "Hello World", 10 ,65,66,67,10 ;db= declared initialised data msglen: equ $-msg SECTION .text ; global _start ;_start: print: mov eax, 4 mov ebx, 1 mov ecx, msg mov edx, msglen int 0x80 mov eax, 1 mov ebx, 0 int 0x80 jo das wars so, könnt ihr mir helfen? Also ich will die printfunktion aus dem Assemblercode in C benutzen :] mfg gater001 + Multi-Zitat Zitieren
#2 6. April 2011 AW: mit Assembler linken? Musst zuerst deine asm Code in eine Objektdatei compilieren: Code: nasm -f obj myfile.asm Die erstellte Objektdatei linkst du dann beim C-Compiler. Desweiteren musst du den Prototyp der Funktion im C-Code definieren: Code: extern "C" void print(); //Edit: Bei C-Code kannste das "C" soweit ich weiß weglassen, oder musst es sogar, musst mal schaune. Dann kannst du die funktion print verwenden. Mfg Rushh0ur + Multi-Zitat Zitieren