2

由于没有官方参考,我只有一个教程 gpcasm.zip。但是当我尝试按照 tut 在我的 debian 上尝试内联汇编示例时。gpc 对此并不满意。

gnu_asm.pas:在程序“MyStupidDelay”中:
gnu_asm.pas:3:错误:在重新加载 asm 时找不到类 AREG 中的寄存器

这是代码

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 中的内联汇编的参考、教程和示例。

谢谢。

4

1 回答 1

1

问题可能不是帕斯卡部分,而是汇编部分。

看到这个类似的问题。

有关更多信息,请说明您的目标机器和编译选项的信息。

于 2009-11-17T17:34:08.677 回答