Проблема с процедурой Gettime - Pascal

Узнай цену своей работы

Формулировка задачи:

uses crt,dos;
var i,k:word;
    h,m,s,h1:word;
    t:longint;
Begin
  clrscr;
     begin
      i:=1;
      k:=5;
      while i<120 do
      begin
        if ((i+k) mod 7)=3
        then i:=i*i+1
        else i:=k*i+17;
      end;
    end;
  writeln('Pascal i=',i);
 
  gettime(h,m,s,h1);
  writeln('Time Pascal: ',s*100+m*6000+h1);
  for t:=1 to 10000 do
 
  begin
    asm
      mov i,1;
      mov k,5;
@m0:
      cmp i,120;
      jg  @m3;
      mov ax,i;
      add ax,k;
      mov bh,7;
      div bh;
      cmp dx,3;
      je  @m2;
      jmp @m1;
@m2:
      mov ax,i;
      mul ax;
      add ax,1;
      mov i,ax;
     jmp @m0;
@m1:
      mov ax,i;
      mul k;
      add ax,17;
      mov i,ax;
      jmp @m0;
@m3:
  end;
  end;
  writeln;
  writeln('Assembler i=',i);
 
  gettime(h,m,s,h1);
  writeln('Time Asambler: ',s*100+m*6000+h1);
 
  readln;
end.
</br>Задача gettime в этой программе в том, что нужно высчитать время обоих блоков программы. Первая процедура показывает время работы блока на pascal а вторая на асамблере. Проблема в том, что при компиляции время одинаковое, не могу понять почему? Подскажите..

Решение задачи: «Проблема с процедурой Gettime»

textual
Листинг программы
 function getSpeed : real;
  var tstart : int64;
  begin
    tstart := tickCount;
    sleep(100);
    tstart := tickCount - tstart;
    getSpeed := tstart * 10;
  end;

Объяснение кода листинга программы

  1. Создается функция под названием getSpeed, которая возвращает значение типа real.
  2. Объявляются две переменные: tstart, тип которой int64, и getSpeed, тип которой real.
  3. В блоке begin выполняется следующая последовательность действий:
    • tstart присваивается значение текущей метки времени (tickCount).
    • Выполняется пауза в течение 100 единиц времени (sleep(100)).
    • tstart присваивается значение метки времени после паузы (tickCount - tstart).
    • getSpeed присваивается значение, равное произведению tstart на 10.
  4. Код завершается, и getSpeed возвращается в качестве результата функции.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы