Hej eksperter! Sidder og skriver noget kode og har brug for at køre noget assembler fra dens egen fil, og tænkte på om det ikke kan lade sig gøre at køre nogle af funktionerne gennem pascal programmet altså externt?
compilere med nasm til en object fil og derefter vil jeg så linke det?
Du spoerger til: - hvad du skal skrive i Pascal koden for en funktion som du har lavet i assembler - hvordan du fortaeller FPC at den skal linke en .OBJ fil med ind ?
Det vil jeg straks prøve når jeg lige får mulighed for det :) Hvis det nu volder problemer skulle jeg måske sige at jeg compilere alle mine pas filer til .obj og derefter linker dem til en elf
int add_c(int a, int b) { return a + b; } .text .globl add_asm add_asm: pushl %ebp movl %esp, %ebp movl 12(%ebp), %eax addl 8(%ebp), %eax popl %ebp ret
program testasm;
{$L add_c.o} {$L add_asm.o}
function add_c(a, b : integer) : integer; cdecl; external; function add_asm(a, b : integer) : integer; cdecl; external;
begin writeln(add_c(2, 3)); writeln(add_asm(2, 3)); end.
Problemet er jo at jeg skal skabe en flad(?) binær fil der skal køres på et helt tredje system ergo jeg bliver nød til at bruge ld til at linke det sammen og det er først der den fejler ikke i selve compileringen af pascal koden
Hmm nu har vi fat i noget af det rigtige, men synes stadig ikke jeg kan få det til at virke .. Sh genere heller intet link script?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.