-
@!!ex © (09.04.08 19:28) [0]{$ifdef FPC} //FPC do not have this function in its RTL
const
Default8087CW = $1332; //according to the FPC site it's the value used in the
//startup code.
procedure Set8087CW( value :word ); Assembler;
asm
FLDCW value
end;
{$endif}
Выделяет строчку асмовскую и говорит:
FMOD.pas(769,11) Error: Asm: [fldcw reg16] invalid combination of opcode and operands -
Попробуй вместо неё:
MOV Default8087CW, AX -
@!!ex © (11.04.08 08:12) [2]> [1] XProger © (11.04.08 02:56)
> MOV Default8087CW, AX
FMOD.pas(770,23) Error: Asm: [mov imm16,reg16] invalid combination of opcode and operands -
Sapersky (11.04.08 19:30) [3]По аналогии с FPC-совместимыми asm-фукнциями из KOL:
procedure Set8087CW( value :word );
asm
MOV AX, [value]
FLDCW AX
end [ 'EAX' ]; -
@!!ex © (11.04.08 19:37) [4]А что эта ерундень вообще делает??
-
Sapersky (11.04.08 20:18) [5]Set8087CW?
Устанавливает параметры FPU, такие как точность вычислений, реакция на исключения и т.д. Чем меньше точность, тем быстрее, хотя зависимость нелинейная и для разных операций разная. Здесь есть результаты тестов:
http://dennishomepage.gugs-cats.dk/CodingForSpeedInDelphi.doc