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 ;)
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.