2009-11-03 2 views
2

Поскольку не существует официальной ссылки, у меня есть только один учебник gpcasm.zip. Но когда я пытаюсь следовать за тетом и пытаюсь выполнить пример встроенной сборки на моем 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. 

Другой вопрос, есть ли другие Эталонное, учебные пособия, примеры на инлайн сборки в GNU Pascal.

Спасибо.

ответ

1

Проблема может не быть частью паскаля, а частью ассемблера.

См. Так же this.

Для получения дополнительной информации pls укажите свою целевую машину и информацию о параметрах компиляции.