由于没有官方参考,我只得到一个教程 gpcasm.zip 。但是当我尝试跟随tut并在我的debian上尝试内联汇编示例时.gpc对此并不满意。
gnu_asm.pas : In procedure 'MyStupidDelay': gnu_asm.pas:3: error : can't find a register in class AREG while reloading asm
这是代码
program gnu_asm;
Procedure MyStupidDelay(time : integer);
Begin
Asm("0 : pushl $0xfffff
1 : decl(%%esp)
jnz 1b
addl $0x4, %%esp
decl %%eax
jnz 0b"
:
: "a" (time)
: "eax" );
end;
begin
write("only for test");
end.
另一个问题是,还有其他的参考资料,教程,关于gnu pascal的内联汇编的例子。
感谢。