Автор: Шевченко В.В.

 

Приветствую Вас, жители королевства!

В одной толстой книге нашел интересное использование команды RDTSC процессора Pentium для работы с малыми временными интервалами. Я думаю, что эта функция может найти широкое применение (в таймерах, управлении внешними устройствами, научных исследованиях).

 

Этот счетчик увеличивается на 1 на каждом такте CPU.

Он стартует при включении компьютера или при нажатии кнопки RESET.

Обычно функцию RDTSC используют при определении тактовой частоты процессора.

Применяя программные ухищрения можно добиться измерения очень малых временных величин в реальном масштабе времени или применять для калибровки таймеров (предварительно определив при помощи этой же функции тактовую частоту процессора).

Готовые примеры определения тактовой частоты при помощи функции RDTSC есть в интернете, например, на сайте Мастера Delphi" : "Скорость работы процессора, точный таймер"

Code:

function RDTSC: comp;

var

TimeStamp: record

case byte of

1: (Whole: comp);

2: (Lo, Hi: Longint);

end;

begin

asm

db $0F; db $31;

{$ifdef Cpu386}

mov [TimeStamp.Lo], eax

mov [TimeStamp.Hi], edx

{$else}

db D32

mov word ptr TimeStamp.Lo, AX

db D32

mov word ptr TimeStamp.Hi, DX

{$endif}

end;

Result := TimeStamp.Whole;

end;

©Drkb::00686

https://delphiworld.narod

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить