2009-11-03 66 views
2

既然沒有官方的參考資料,我只有一個教程 gpcasm.zip。但是當我試圖按照tut並嘗試debian上的內聯彙編示例時,gpc並不滿意它。如何在gnu pascal中編寫內聯彙編?

 
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. 

另一個問題,是否有任何其他refernece,教程,內聯彙編在GNU帕斯卡例子。

謝謝。

回答

1

問題可能不是pascal部分,而是彙編程序部分。

請參閱this以解決類似問題。

欲瞭解更多信息,請說明您的目標機器和infos上的編譯選項。