2009-11-03 2 views
2

Puisqu'il n'y a pas de référence officielle, j'ai seulement un tutoriel gpcasm.zip .Mais quand j'essaie de suivre le tut et d'essayer l'exemple d'assemblage en ligne sur mon debian. Le gpc n'était pas content avec ça.Comment écrire un assemblage en ligne dans gnu pascal?

 
gnu_asm.pas : In procedure 'MyStupidDelay': 
gnu_asm.pas:3: error : can't find a register in class AREG while reloading asm 

Voici le code

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. 

Une autre question, qu'il ya d'autres refernece, des tutoriels, des exemples sur l'assemblage en ligne dans gnu pascals.

Merci.

Répondre

1

Le problème peut ne pas être la partie pascal mais la partie assembleur. Pour un problème similaire, voir this.

Pour plus d'informations, veuillez indiquer votre machine cible et les informations sur les options de compilation.

Questions connexes