Attendre x secondes dans une boucle

Description

J'ai posté une source en Delphi sur delphifr, je viens de la convertir en asm... Le but est donc de pouvoir attendre X ms avant l'itération suivante dans une boucle, ceci est mon premier code asm fonctionnel, y'a peut etre pas de quoi grimper aux rideaux mais je suis content lol :)

Source / Exemple :


program SleepEx;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows;

var
  i: Integer;

procedure Pause(t: DWORD); register;
asm
  push ecx
  push ebx
  mov ecx, eax
  call GetTickCount
  mov ebx, eax
@attente:
  push ebx
  push ecx
  push 1
  call Sleep
  pop ecx
  pop ebx
  call GetTickCount
  sub eax, ebx
  cmp eax, ecx
  jnae @attente
  pop ebx
  pop ecx
end;

begin
  for i := 0 to 9 do begin
    writeln('i=', i);
    Pause(1000);
  end;
end.

Conclusion :


Le sleep sert à "rendre la main", s'il existe une fonction dédiée (comme pthread_yield), je ne la connais pas... N'hésitez pas à me donner l'API adéquate, si vous la connaissez ;)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.