оптимизация считывание определённого куска строки

Тема в разделе "WASM.ASSEMBLER", создана пользователем Flasher, 16 фев 2007.

  1. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Код (Text):
    1. .data
    2. szStr db "string1 string2 string3 string4",0
    3. StrBuf db 256 dup(0)
    4.  
    5. .code
    6. _str20h:
    7.       mov edx,[esp+12]
    8.       mov esi,[esp+8]
    9.       xor ecx,ecx
    10.       mov edi,[esp+4]
    11.    @1:
    12.       mov edi,[esp+4]
    13.       xor ecx,ecx
    14.    @@:
    15.       mov al,[esi]
    16.       mov [edi],al
    17.       inc edi
    18.       inc esi
    19.       inc ecx
    20.       cmp al,20h
    21.       jz @F
    22.       or al,al
    23.       jnz @B
    24.    @@:
    25.       dec edx
    26.       jnz @1
    27.       cmp dword ptr [esp+16],1
    28.       jne @3
    29.    @2:
    30.       mov al,[esi]
    31.       mov [edi],al
    32.       inc edi
    33.       inc esi
    34.       inc ecx
    35.       or al,al
    36.       jnz @2
    37.    @3:
    38.       mov edi,[esp+4]
    39.       dec ecx
    40.       mov byte ptr [edi+ecx],0
    41.       ret
    42. start:
    43.        push 0
    44.        push 2
    45.        push offset szStr
    46.        push offset StrBuf
    47.        call _str20h
    48.        invoke MessageBox,0,offset StrBuf,offset StrBuf,0
    49.        invoke ExitProcess,0
    50. end start
    оптимизация по скорости, реально быстрее сделать?