- Код: Выделить всё
function isVME: boolean;
var
vm: LongWord;
begin
asm
.L1:
rdtsc
movl %eax, %ebx
rdtsc
subl %ebx, %eax
pushl %eax
cmpl $1, %eax
jz .L1
movl %eax, vm
end;
if vm < 512 then isVME := false else isVME := true
end;
var
vm: boolean;
begin
vm := isVME;
writeln(vm); { все ок }
writeln( isVME ); { а здесь Runtime error 216 }
end.
Баг в компиляторе?
P.S. Заодно не подскажете как обойтись в функции без временной переменной longword? Пусть функция возвращает значение eax. Замучался уже) По примеру документации не работает.