Can I have some timings, please?
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
Opening \Masm32\include\Windows.inc
1003 µs for loading 26902 lines into a string array
now searching the string array for STRUCT
1543 µs for finding 1074 matches, old MB Instr
1589 µs for finding 1074 matches, old MB Instr
1577 µs for finding 1074 matches, old MB Instr
1638 µs for finding 1074 matches, old MB Instr
1601 µs for finding 1074 matches, old MB Instr
1005 µs for finding 1074 matches, new MB Instr
1003 µs for finding 1074 matches, new MB Instr
1009 µs for finding 1074 matches, new MB Instr
1008 µs for finding 1074 matches, new MB Instr
992 µs for finding 1074 matches, new MB Instr
2312 µs for finding 1074 matches, Crt strstr
2151 µs for finding 1074 matches, Crt strstr
2251 µs for finding 1074 matches, Crt strstr
2319 µs for finding 1074 matches, Crt strstr
2346 µs for finding 1074 matches, Crt strstr
2090 µs for finding 1074 matches, Masm32 find$
2092 µs for finding 1074 matches, Masm32 find$
2117 µs for finding 1074 matches, Masm32 find$
2099 µs for finding 1074 matches, Masm32 find$
2085 µs for finding 1074 matches, Masm32 find$
P.S. Masm32 find$() returned "wrong" results until I realised that eax must be positive for a match. So the correct use is this:
.if sdword ptr find$(1, pSource$, pFind$)>0
inc esi
.endif