Strange, I took a look and no idea why it doesn't work with the linked .o file =) Maybe disassembling what nasm produces could show something, but I don't know which GNU tool could be used for that...
The following program works for me: program driver; uses asmio; {$ASMMODE att} procedure tes2; pascal; begin printc(Char(65)); end; procedure tes; assembler; [alias:'tes']; asm movl $65,%eax push %eax call printc end; begin tes2; tes; end. And here is the assembler generated: fpc -s driver.pas edit driver.s .text .align 4 .globl _P$DRIVER_TES2 _P$DRIVER_TES2: pushl %ebp movl %esp,%ebp subl $24,%esp movl %ebx,-12(%ebp) movl %esi,-8(%ebp) movl %edi,-4(%ebp) movl $65,%eax movl %eax,(%esp) call L_ASMIO_PRINTC$CHAR$stub movl -12(%ebp),%ebx movl -8(%ebp),%esi movl -4(%ebp),%edi leave ret .text .align 4 .globl _P$DRIVER_TES _P$DRIVER_TES: .reference tes .globl tes tes: .reference _P$DRIVER_TES subl $12,%esp movl $65,%eax pushl %eax call _ASMIO_PRINTC$CHAR addl $12,%esp ret -- Felipe Monteiro de Carvalho _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal