PATCHER MIS A JOUR(BCP + RAPIDE)[MASM]

DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009 - 27 août 2002 à 13:11
cs_xenan Messages postés 20 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 29 avril 2008 - 4 oct. 2003 à 23:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/15231-patcher-mis-a-jour-bcp-rapide-masm

cs_xenan Messages postés 20 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 29 avril 2008
4 oct. 2003 à 23:35
tu veu une url ?
tiens :
http://www.google.fr

une autre ?

http://www.asmfr.com

voila,
surtout ne me remercie pas ;)
A+
cs_Cendra Messages postés 56 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 4 février 2008 1
30 déc. 2002 à 15:33
avec quoi tu generes les RGN ?
donne moi une url si possible ;)
merci d'avance
cs_bigane Messages postés 46 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 12 février 2004
13 nov. 2002 à 00:05
Salut,
Ton algo de comparaison peut être accéléré :
Au lieu de comparer un octet à la fois, fais le de 4 en 4, et en commençant par la fin.
Tu peux aussi croiser les instructions pour les pipelines du pentium.
Dans mon exemple, ton test est codé en 3 fois 2 lignes. Chaque binôme peut être exécuté dans un même cycle.
Soit 3 cycles théoriques avec l'anticipation des branchements, +1 pour le test cmp eax.
Cette boucle est ainsi exécutée en 256x4 cycles au lieu de 1024x5 pour ton code.
(1 cy pour inc, 1 cy pour cmp+je, 1 cy pour mov al, 1 cy pour cmp al (lent), 1 cy pour je).

C'est un début d'optimisation, mais le gain de temps sera relativement lent car il y a la lecture du fichier.
Pour celle-ci, utilise N multiple de 512, c'est un multiple de la taille d'un secteur sur le HD.


boucle:
...
...

mov edi, 1024 ; ici N=1024
push esi
mov esi, edi

Compare:
sub edi,4 ; anticipe la soustraction
mov eax,buffer[esi]

cmp eax,buffer2[edi+4]
jne Sauvegarde_byte

sub esi,4
jne Compare

jmp boucle

Sauvegarde_byte:
...

A+
Pour le reste, je ne sais même pas si le patch est ok, mais il me semble buggé à première vue.
eedy31 Messages postés 63 Date d'inscription mercredi 23 janvier 2002 Statut Membre Dernière intervention 16 avril 2008
27 août 2002 à 14:21
c'est normal car il ne marche qu'avec les dll et les executables pour l'instant!
Essaie le avec un .exe et j'en suis sûr il marchera si il n'y a pas plus de 40 bytes modifiés
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
27 août 2002 à 13:11
il est pas fiable ton patcher
J'ai essayé sur un fichier txt, ça ma fait n'importe nawak.

look celui ci:

http://hiacelee.free.fr/Patch%20Create.rar

il est en delphi
Rejoignez-nous