如何在gnu pascal中编写内联汇编?

时间:2009-11-03 02:04:15

标签: pascal inline-assembly

由于没有官方参考,我只得到一个教程 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的内联汇编的例子。

感谢。

1 个答案:

答案 0 :(得分:1)

问题可能不是pascal部分,而是汇编程序部分。

有关类似问题,请参阅this

有关详细信息,请在编译选项中说明目标计算机和信息。