Rev 3003 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3003 | Rev 3020 | ||
---|---|---|---|
Line 201... | Line 201... | ||
201 | inline fastcall strupr( ESI) |
201 | inline fastcall strupr( ESI) |
202 | { |
202 | { |
203 | do{ |
203 | do{ |
204 | AL=DSBYTE[ESI]; |
204 | AL=DSBYTE[ESI]; |
205 | IF(AL>='a')IF(AL<='z')DSBYTE[ESI]=AL&0x5f; |
205 | IF(AL>='a')IF(AL<='z')DSBYTE[ESI]=AL&0x5f; |
- | 206 | IF (AL>=160) && (AL<=175) DSBYTE[ESI] = AL - 32; //à-ï |
|
- | 207 | IF (AL>=224) && (AL<=239) DSBYTE[ESI] = AL - 80; //à-ï |
|
206 | ESI++; |
208 | ESI++; |
207 | }while(AL!=0); |
209 | }while(AL!=0); |
208 | } |
210 | } |
Line 209... | Line 211... | ||
209 | 211 | ||
Line 234... | Line 236... | ||
234 | }while(AL!=0); |
236 | }while(AL!=0); |
235 | } |
237 | } |
Line 236... | Line 238... | ||
236 | 238 | ||
237 | 239 | ||
238 | 240 | ||
239 | inline fastcall unsigned int strstr( EBX, EDX) |
241 | inline fastcall dword strstr( EBX, EDX) |
240 | { |
242 | { |
241 | asm { |
243 | asm { |
242 | mov edi, edx |
244 | MOV EDI, EDX |
243 | xor ecx, ecx |
245 | XOR ECX, ECX |
244 | xor eax, eax |
246 | XOR EAX, EAX |
245 | dec ecx |
247 | DEC ECX |
246 | repne scasb |
248 | REPNE SCASB |
247 | not ecx |
249 | NOT ECX |
248 | dec ecx |
250 | DEC ECX |
249 | je ls2 |
251 | JE LS2 |
250 | mov esi, ecx |
252 | MOV ESI, ECX |
251 | xor ecx, ecx |
253 | XOR ECX, ECX |
252 | mov edi, ebx |
254 | MOV EDI, EBX |
253 | dec ecx |
255 | DEC ECX |
254 | repne scasb |
256 | REPNE SCASB |
255 | not ecx |
257 | NOT ECX |
256 | sub ecx, esi |
258 | SUB ECX, ESI |
257 | jbe ls2 |
259 | JBE LS2 |
258 | mov edi, ebx |
260 | MOV EDI, EBX |
259 | lea ebx, DSDWORD[ esi-1] |
261 | LEA EBX, DSDWORD[ ESI-1] |
260 | ls1: mov esi, edx |
262 | LS1: MOV ESI, EDX |
261 | lodsb |
263 | LODSB |
262 | repne scasb |
264 | REPNE SCASB |
263 | jne ls2 |
265 | JNE LS2 |
264 | mov eax, ecx |
266 | MOV EAX, ECX |
265 | push edi |
267 | PUSH EDI |
266 | mov ecx, ebx |
268 | MOV ECX, EBX |
267 | repe cmpsb |
269 | REPE CMPSB |
268 | pop edi |
270 | POP EDI |
269 | mov ecx, eax |
271 | MOV ECX, EAX |
270 | jne ls1 |
272 | JNE LS1 |
271 | lea eax, DSDWORD[ edi-1] |
273 | LEA EAX, DSDWORD[ EDI-1] |
272 | jmp short ls3 |
274 | JMP SHORT LS3 |
273 | ls2: xor eax, eax |
275 | LS2: XOR EAX, EAX |
Line 296... | Line 298... | ||
296 | divs - óêàçàòåëü íà ñòðîêó, ñîäåðæàùóþ ñèìâîëû-ðàçäåëèòåëè |
298 | divs - óêàçàòåëü íà ñòðîêó, ñîäåðæàùóþ ñèìâîëû-ðàçäåëèòåëè |
297 | Âîçâðàùàåò: 0, åñëè ñëîâ áîëüøå íåò |
299 | Âîçâðàùàåò: 0, åñëè ñëîâ áîëüøå íåò |
298 | íå 0, åñëè ñëîâî ñêîïèðîâàíî â dest (ïåðåäàéòå ýòî çíà÷åíèå |
300 | íå 0, åñëè ñëîâî ñêîïèðîâàíî â dest (ïåðåäàéòå ýòî çíà÷åíèå |
299 | â êà÷åñòâå src äëÿ ïîñëåäóþùåãî ïîèñêà) */ |
301 | â êà÷åñòâå src äëÿ ïîñëåäóþùåãî ïîèñêà) */ |
Line 300... | Line 302... | ||
300 | 302 | ||
301 | dword fastcall strtok( EDX, ESI, EBX) |
303 | inline fastcall dword strtok( EDX, ESI, EBX) |
302 | { |
304 | { |
303 | asm { |
305 | asm { |
304 | XOR ECX, ECX |
306 | XOR ECX, ECX |
305 | MOV EDI, EBX |
307 | MOV EDI, EBX |