Keresés

Aktív témák

  • P.H.

    senior tag

    válasz P.H. #105 üzenetére

    Örömmel jelentem, hogy lassabb nem lett

    .............................

    { } movsx ebx,byte ptr [edx]
    { } xor eax,eax
    { } mov esi,ebp
    { } mov [edi+__N],ebp
    { } and esi,-8
    { } mov ecx,ebp
    @init:
    { } mov [edi+esi*08h+(00h*08h)+__K],eax
    { } mov [edi+esi*08h+(04h*08h)+__K],eax
    { } add esi,08h
    { } jnz @init
    @argument
    { } cmp ebx.00h
    { } lea eax,[ebp+ebx*04h]
    { } movsx ebx,byte ptr [edx+01h]
    { } lea edx,[edx+01h]
    { } mov [edi+eax*08h+__K],ebp
    { } cmovs eax,esi
    { } mov [edi+ecx*08h+__F],eax
    { } add ecx,04h
    { } jnz @argument
    { } mov [edi+ebp*08h-(04h*08h)+__K],esi
    { } lea edx,[ebp-04h]
    { } mov ebx,edi
    { } jmp @next0row
    @ROWS:
    { } mov [edi+__LEFT1+edx*08h+__W],esi
    @next0row:
    { } mov eax,[edi+edx*08h+(04h*08h)+__S]
    { } add edx,04h
    { } jz @@COLUMNS
    { } mov [edi+edx*08h+B],eax
    { } xor esi,esi
    { } mov [edi+edx*08h+_R],eax
    { } sub ebx,ebp
    { **} test eax,eax
    { **} jnz @@ROWS
    { } lea ecx,[ebp+04h]
    { } mov esi,[ebx+ebp]
    { } or esi,[edi+ebp*08h+__K]
    { } and ecx,-8
    @findrowmin:
    { } mov eax,[ebx+ecx]
    { } or eax,[edi+ecx*08h+__K]
    { } add ecx,08h
    { } cmp eax,ebp
    { } cmovb ebp,eax
    { } mov eax,[ebx+ecx-04h]
    { } or eax,[edi+ecx*08h-(04h*08h)+__K]
    { } cmp eax,esi
    { } cmovb esi,eax
    { **} cmp ecx,00h
    { **} jnz @findrowmin
    { } cmp ebp,esi
    { } cmovb esi,ebp
    { } mov ebp,[edi+__N]
    { } neg esi
    { } jle @@ROWS
    @@XXX:
    { } mov esi,[esp+_A]
    { } mov ecx,[esp+_I]
    { } mov dword ptr [esi+A.OPTIMUM],?
    { } mov ebx,[esi+TRESULT.NEXT]
    { } jmp ecx
    @free0col:
    { } add dword ptr [edi+__0COUNTER],-1
    { } mov [edi+__CCOLMIN],esi
    { } mov ecx,0FFFFFFFFh
    { } mov [edi+ebp*08h-(04h*08h)+__K],edx
    @0col:
    { } mov [edi+__LEFT1+edx*08h+__COLMOD],esi
    @@COLUMNS:
    { -} mov ebx,ebp
    @next0col:
    { } mov [edi+__LEFT1+edx*08h+__C],ecx
    { } mov ecx,edi+edx*08h-(04h*08h)+__K]
    { } lea eax,[edx-04h]
    { } sub eax,ebp
    { } js @@INIT0COL
    { } sub edx,04h
    { } xor ecx,-1
    { } jns @next0col
    @findcolmin:
    { } mov esi,[eax+edi]
    { } add esi,[edi+__LEFT1+ebx*08h+__U]
    { } or esi,[edi+ebx*08h+__S]
    { } jz @test0row
    { } sub eax,ebp
    { } cmp esi,ecx
    { } cmovb ecx,esi
    { } add ebx,04h
    { } jnz @findcolmin
    { } mov eax,edx
    { } lea ebx,[ebp-04h]
    { } mov esi,ecx
    { } cmp ecx,00h
    { } js @@XXX
    @seek0col:
    { } mov ecx,[edi+__LEFT1+ebx*08h+(04h*08h)+__W]
    { } sub eax,ebp
    { } add ebx,04h
    { } jz @free0col
    { } add ecx,[eax+edi]
    { **} cmp ecx,esi
    { **} jnz @seek0col
    @test0row:
    { } mov ecx,[edi+ebx*08h+B]
    { **} test ecx,ecx
    { **} js @seek0col
    { } mov [edi+ebx*08h+B],edx
    { } mov [edi+edx*08h+__K],ebx
    { } jmp @0col
    @@INIT0COL:
    { } lea eax,[edi+ecx]
    { } mov [edi+__L],ecx
    { } neg ebp
    { } sal ecx,10h
    { } jnz @init2col
    { -} xor esi,esi
    { } jmp @@FINISHED
    @@5TH_STEP:
    { -} mov edx,esi
    { } movsx esi,si
    { } sar eax,10h
    @5TH_STEP:
    { } movsx ecx,byte ptr [edi+__LEFT1+ebx*08h+__SIGN+__C]
    { } and ecx,edx
    { } add [edi+__LEFT1+ebx*08h+__COLMOD],ecx
    { } movsx ecx,byte ptr [edi+ebx*08h+__SIGN+_R]
    { } and ecx,edx
    { } add [edi+__LEFT1+ebx*08h+__W],ecx
    { } add ebx,04h
    { } jnz @5TH_STEP
    { } mov edx,es:[edi+esi*08h+B]
    { } db $8B,$8C,$3B,__L,?,?,?
    { **} test edx,edx
    { **} jz @@4TH_STEP
    { } add dword ptr [edi+__PN],-1
    { } mov [edi+esi*08h+_R],eax
    { } mov [edi+__LEFT1+edx*08h+__C],esi
    { } cmp edx,ecx
    { } cmovb ecx,edx
    { } sub ebx,ebp
    { } mov [edi+__L],ecx
    { } jmp @@9ND_STEP
    @fast6forward:
    { } mov esi,[edi+__LEFT1+ebx*08h+(04h*08h)+__W]
    { } add ebx,04h
    { } jz @pass8col
    { } sal ecx,10h
    { } jmp @loop
    @pass8col:
    { } mov eax,[edi+__N]
    { } sub ebx,ebp
    { } mov [edi+__LEFT1+ecx*08h+__C],eax
    @next20col:
    { } add ecx,04h
    { } jz @@5TH_STEP { clears ECX register
    { **} cmp [edi+__LEFT1+ecx*08h+__C],eax
    {0**} jbe @next20col
    @@8ND_STEP:
    { } mov esi,[edi+__LEFT1+ecx*08h+__COLMOD]
    { } lea eax,[edi+ecx]
    { } mov [edi+__CCOL],esi
    { } imul ecx,00010000h
    @init2col:
    { } add eax,ebp
    { } mov esi,[edi+ebx*08h+__W]
    @loop:
    { } sub esi,[edi+__COLMIN]
    { } add esi,[eax]
    { } lea eax,[eax+ebp]
    { } jo @over6flow
    { } or esi,[edi+ebx*08h+_R]
    { } jz @@11D_STEP
    { } cmp esi,edx
    { } cmovb edx,esi
    { } cmovb cx,bx
    @over6flow:
    { } mov esi,[edi+__LEFT1+ebx*08h+(04h*08h)+__W]
    { } add ebx,04h
    { } jnz @loop
    { -} mov eax,ecx
    { } sar ecx,10h
    { } cmovc esi,eax
    { } mov [edi+__MC],esi
    { } jmp @pass8col
    @@11D_STEP:
    { -} mov esi,ecx
    { } sar ecx,10h
    { } cmovnc esi,[edi+__M]
    { } mov [edi+__MC],esi
    { } mov esi,[edi+ebx*08h+B]
    { **} test esi,esi
    { **} jz @4TH_STEP
    { } mov [edi+ebx*08h+_R],ecx
    { } mov [edi+__LEFT1+esi*08h+__C],-1
    { **} cmp word ptr [edi+__MC],bx
    { **} jz @re2start
    { **} cmp esi,ecx
    { **} jae @fast6forward
    { } mov ecx,esi
    { } xor ebx,ebx
    { } mov eax,[edi+__L]
    { } sub ebx,ebp
    { } cmp esi,eax
    { } cmovb eax,esi
    { } mov [edi+__L],eax
    { } jmp @@7ND_STEP
    @re2start:
    { } mov ecx,[edi+__L]
    { } xor ebx,ebx
    { } add dword ptr [edi+__PN],-1
    { } mov edx,esi
    { } cmp esi,ecx
    { } cmovb ecx,esi
    { } sub ebx,ebp
    { } mov [edi+__L],ecx
    { } jmp @@6ND_STEP
    @@4TH_STEP:
    { } mov ecx,eax
    { } mov ebx,esi
    @4TH_STEP:
    { } mov [edi+ebx*08h+BB],ecx
    { } mov edx,[edi+ecx*08h+__K]
    { } mov [edi+ecx*08h+__K],ebx
    { } mov ebx,edx
    { } mov ecx,[edi+edx*08h+_R]
    { } sub edx,ebp
    { } jnc @4TH_STEP
    { } xor esi,esi
    { } mov ebx,edx
    { } sub dword ptr [edi+__0COUNTER],-1
    { } jz @@FINISHED
    @@1ST_STEP:
    { } mov eax,[edi+esi*08h-(04h*08h)+__K]
    { } xor eax,-1
    { } mov [edi+__LEFT1+esi*08h-(04h*08h)+__C],eax
    { } lea esi,[esi-04h]
    { } mov eax,[edi+esi*08h+__S]
    { } cmovs ecx,esi
    { } mov [edi+esi*08h+_R],eax
    { **} cmp edx,esi
    { **} jnz @@1ST_STEP
    { } nop
    { } mov [edi+__L],ecx
    { } jmp @@5ND_STEP

    @@FINISHED:
    { } mov eax,edi
    { } mov ecx,[esp+_KIMENET]
    { } mov ebp,edx
    @@results:
    { } mov ebx,[edi+edx*08h+__B]
    { } sub eax,ebp
    { } add esi,[eax+ebx]
    { } sub ebx,ebp
    { } shr ebx,02h
    { } mov [ecx],bl
    { } add ecx,01h
    { } add edx,04h
    { } jnz @@results
    (CODE)

    [ Szerkesztve ]

    Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

Aktív témák