Bombela
Messages postés225Date d'inscriptionmardi 4 mars 2003StatutMembreDernière intervention30 juillet 2008
-
21 déc. 2003 à 21:29
CoreBreaker
Messages postés540Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 5 octobre 2007
-
5 janv. 2004 à 01:32
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...
CoreBreaker
Messages postés540Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 5 octobre 20071 5 janv. 2004 à 01:32
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