如何在 gnu pascal 中编写内联汇编?
Posted
技术标签:
【中文标题】如何在 gnu pascal 中编写内联汇编?【英文标题】:How to write inline assembly in gnu pascal? 【发布时间】:2009-11-03 02:04:15 【问题描述】:由于没有官方参考,所以只有一个教程 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 中是否还有其他关于内联汇编的参考、教程、示例。
谢谢。
【问题讨论】:
【参考方案1】:问题可能不是帕斯卡部分,而是汇编部分。
请参阅this 了解类似问题。
有关更多信息,请在编译选项中说明您的目标机器和信息。
【讨论】:
以上是关于如何在 gnu pascal 中编写内联汇编?的主要内容,如果未能解决你的问题,请参考以下文章
GNU g++ 内联汇编块,如 Apple g++/Visual C++?