REP SCASB 32 bits

Signaler
Messages postés
225
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
30 juillet 2008
-
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
-
S'lut !

J'arrive pas à utiliser REP SCASB en 32 bits.

La boucle ne s'efectue qu' une fois dans tous les cas...

Un exemple :

STD ; on incrémente
mov ecx, 1024 ; Une boucle max de 1024
mov esi, MaChaine ; L'adresse de ma chaîne
xor eax, eax
mov al, 'A' ; Je cherche la lettre A
REP SCASB

En posant ma queqtion, j'ai pas ma doc.
Je sais plus si c'est ESI ou EDI...

j'aimerais utiliser SCASB qui est plus rapide que CMP quand même...

MERCI.

BOMBELA

3 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
EDI
ceci dit SCASB est moins rapide en 32 bits qu'une boucle deroulee n'utilisant que eax,edx, ecx et cmp.
BruNews, ciao...
Messages postés
225
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
30 juillet 2008

Ah bon !

Ben ça alors !

Bon, je laisse tombé SCASB !

Vive l'asm !

Merci.

BOMBELA
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
C'est bien EDI
SCASB ne peut pas s'utiliser en 32 bits si tu recherche un caractère à la fois.
Mais si tes caractères sont sur 32 bits c'est SCASD et la comparaison se fait avec EAX
De plus, EDI est décrémenté de 4 octets (avec STD)
Pour incrémenter c'est CLD qu'il faut utiliser
Et attention, SCAS utilise ES:EDI comme pointeur

Sinon BruNews a raison une boucle est plus rapide

Core Breaker :)