一段代码的汇编转换,有大神知道么,,
本帖最后由 panhui123 于 2017-5-23 15:20 编辑for (DWORD i = 0; i < dwHeight; i++)
{
for (DWORD j = 0; j < dwWidth * 2; j += 4)
{
DWORD k0 = i * dwWidth * 2 + j;
DWORD k1 = (i * dwWidth + (dwWidth - 1 - j / 2)) * 4;
DWORD k2 = k1 - 4;
//Y0 U0 Y1 V0
BYTE Y0 = lpYUY2;
BYTE U = lpYUY2;
BYTE Y1 = lpYUY2;
BYTE V = lpYUY2;
INT Y = Y0;
INT C = Y - 16;
INT D = U - 128;
INT E = V - 128;
lpRGB32 = Clip255((298 * C + 409 * E + 128) >> 8); // R
lpRGB32 = Clip255((298 * C - 100 * D - 208 * E + 128) >> 8); // G
lpRGB32 = Clip255((298 * C + 516 * D + 128) >> 8); // B
Y = Y1;
C = Y - 16;
D = U - 128;
E = V - 128;
lpRGB32 = Clip255((298 * C + 409 * E + 128) >> 8); // R
lpRGB32 = Clip255((298 * C - 100 * D - 208 * E + 128) >> 8); // G
lpRGB32 = Clip255((298 * C + 516 * D + 128) >> 8); // B
}
}
转对 重谢 联系我 自己顶一下没大神么。。。急求 int main(void)
{
013416C0push ebp
013416C1mov ebp,esp
013416C3sub esp,0CA0h
013416C9push ebx
013416CApush esi
013416CBpush edi
013416CClea edi,
013416D2mov ecx,328h
013416D7mov eax,0CCCCCCCCh
013416DCrep stos dword ptr es:
013416DEmov eax,dword ptr
013416E3xor eax,ebp
013416E5mov dword ptr ,eax
013416E8mov byte ptr ,0
013416EFmov byte ptr ,0
DWORD dwHeight, dwWidth;
BYTE lpYUY2;
BYTE lpRGB32;
for(DWORD i = 0; i < dwHeight; i++)
013416F6mov dword ptr ,0
01341700jmp main+51h (01341711h)
01341702mov eax,dword ptr
01341708add eax,1
0134170Bmov dword ptr ,eax
01341711cmp byte ptr ,0
01341718jne main+67h (01341727h)
0134171Apush 1341A8Fh
0134171Fcall __RTC_UninitUse (013410C8h)
01341724add esp,4
01341727mov eax,dword ptr
0134172Dcmp eax,dword ptr
01341730jae main+367h (01341A27h)
{
for(DWORD j = 0; j < dwWidth * 2; j += 4)
01341736mov dword ptr ,0
01341740jmp main+91h (01341751h)
01341742mov eax,dword ptr
01341748add eax,4
0134174Bmov dword ptr ,eax
01341751cmp byte ptr ,0
01341758jne main+0A7h (01341767h)
0134175Apush 1341A87h
0134175Fcall __RTC_UninitUse (013410C8h)
01341764add esp,4
01341767mov eax,dword ptr
0134176Ashl eax,1
0134176Ccmp dword ptr ,eax
01341772jae main+362h (01341A22h)
{
DWORD k0 = i * dwWidth * 2 + j;
01341778cmp byte ptr ,0
0134177Fjne main+0CEh (0134178Eh)
01341781push 1341A87h
01341786call __RTC_UninitUse (013410C8h)
0134178Badd esp,4
0134178Emov eax,dword ptr
01341794imul eax,dword ptr
01341798mov ecx,dword ptr
0134179Elea edx,
013417A1mov dword ptr ,edx
DWORD k1 = (i * dwWidth + (dwWidth - 1 - j / 2)) * 4;
013417A7cmp byte ptr ,0
013417AEjne main+0FDh (013417BDh)
013417B0push 1341A87h
013417B5call __RTC_UninitUse (013410C8h)
013417BAadd esp,4
013417BDcmp byte ptr ,0
013417C4jne main+113h (013417D3h)
DWORD k1 = (i * dwWidth + (dwWidth - 1 - j / 2)) * 4;
013417C6push 1341A87h
013417CBcall __RTC_UninitUse (013410C8h)
013417D0add esp,4
013417D3mov eax,dword ptr
013417D9imul eax,dword ptr
013417DDmov ecx,dword ptr
013417E0sub ecx,1
013417E3mov edx,dword ptr
013417E9shr edx,1
013417EBsub ecx,edx
013417EDadd eax,ecx
013417EFshl eax,2
013417F2mov dword ptr ,eax
DWORD k2 = k1 - 4;
013417F8mov eax,dword ptr
013417FEsub eax,4
01341801mov dword ptr ,eax
//Y0 U0 Y1 V0
BYTE Y0 = lpYUY2;
01341807mov eax,dword ptr
0134180Dmov cl,byte ptr lpYUY2
01341814mov byte ptr ,cl
BYTE U = lpYUY2;
0134181Amov eax,dword ptr
01341820mov cl,byte ptr
01341827mov byte ptr ,cl
BYTE Y1 = lpYUY2;
0134182Dmov eax,dword ptr
01341833mov cl,byte ptr
0134183Amov byte ptr ,cl
BYTE V = lpYUY2;
01341840mov eax,dword ptr
01341846mov cl,byte ptr
0134184Dmov byte ptr ,cl
INT Y = Y0;
01341853movzx eax,byte ptr
0134185Amov dword ptr ,eax
INT C = Y - 16;
01341860mov eax,dword ptr
01341866sub eax,10h
01341869mov dword ptr ,eax
INT D = U - 128;
0134186Fmovzx eax,byte ptr
01341876sub eax,80h
0134187Bmov dword ptr ,eax
INT E = V - 128;
01341881movzx eax,byte ptr
01341888sub eax,80h
0134188Dmov dword ptr ,eax
lpRGB32 = Clip255((298 * C + 409 * E + 128) >> 8); // R
01341893imul eax,dword ptr ,12Ah
0134189Dimul ecx,dword ptr ,199h
013418A7lea edx,
013418AEsar edx,8
013418B1push edx
013418B2call _Clip255 (01341069h)
013418B7add esp,4
013418BAmov ecx,dword ptr
013418C0mov byte ptr ,al
lpRGB32 = Clip255((298 * C - 100 * D - 208 * E + 128) >> 8); // G
013418C7imul eax,dword ptr ,12Ah
013418D1imul ecx,dword ptr ,64h
013418D8sub eax,ecx
013418DAimul edx,dword ptr ,0D0h
013418E4sub eax,edx
013418E6add eax,80h
013418EBsar eax,8
013418EEpush eax
013418EFcall _Clip255 (01341069h)
013418F4add esp,4
013418F7mov ecx,dword ptr
013418FDmov byte ptr ,al
lpRGB32 = Clip255((298 * C + 516 * D + 128) >> 8); // B
01341904imul eax,dword ptr ,12Ah
0134190Eimul ecx,dword ptr ,204h
01341918lea edx,
0134191Fsar edx,8
01341922push edx
01341923call _Clip255 (01341069h)
01341928add esp,4
0134192Bmov ecx,dword ptr
01341931mov byte ptr lpRGB32,al
Y = Y1;
01341938movzx eax,byte ptr
Y = Y1;
0134193Fmov dword ptr ,eax
C = Y - 16;
01341945mov eax,dword ptr
0134194Bsub eax,10h
0134194Emov dword ptr ,eax
D = U - 128;
01341954movzx eax,byte ptr
0134195Bsub eax,80h
01341960mov dword ptr ,eax
E = V - 128;
01341966movzx eax,byte ptr
0134196Dsub eax,80h
01341972mov dword ptr ,eax
lpRGB32 = Clip255((298 * C + 409 * E + 128) >> 8); // R
01341978imul eax,dword ptr ,12Ah
01341982imul ecx,dword ptr ,199h
0134198Clea edx,
01341993sar edx,8
01341996push edx
01341997call _Clip255 (01341069h)
0134199Cadd esp,4
0134199Fmov ecx,dword ptr
013419A5mov byte ptr ,al
lpRGB32 = Clip255((298 * C - 100 * D - 208 * E + 128) >> 8); // G
013419ACimul eax,dword ptr ,12Ah
013419B6imul ecx,dword ptr ,64h
013419BDsub eax,ecx
013419BFimul edx,dword ptr ,0D0h
013419C9sub eax,edx
013419CBadd eax,80h
013419D0sar eax,8
013419D3push eax
013419D4call _Clip255 (01341069h)
013419D9add esp,4
013419DCmov ecx,dword ptr
013419E2mov byte ptr ,al
lpRGB32 = Clip255((298 * C + 516 * D + 128) >> 8); // B
013419E9imul eax,dword ptr ,12Ah
013419F3imul ecx,dword ptr ,204h
013419FDlea edx,
01341A04sar edx,8
01341A07push edx
01341A08call _Clip255 (01341069h)
01341A0Dadd esp,4
01341A10mov ecx,dword ptr
01341A16mov byte ptr lpRGB32,al
}
01341A1Djmp main+82h (01341742h)
}
01341A22jmp main+42h (01341702h)
return 0;
01341A27xor eax,eax
}
01341A29push edx
01341A2Amov ecx,ebp
01341A2Cpush eax
01341A2Dlea edx,ds:
01341A33call @_RTC_CheckStackVars@8 (01341249h)
01341A38pop eax
01341A39pop edx
01341A3Apop edi
01341A3Bpop esi
01341A3Cpop ebx
01341A3Dmov ecx,dword ptr
01341A40xor ecx,ebp
01341A42call @__security_check_cookie@4 (0134125Dh)
01341A47add esp,0CA0h
01341A4Dcmp ebp,esp
01341A4Fcall __RTC_CheckEsp (0134110Eh)
01341A54mov esp,ebp
01341A56pop ebp
01341A57ret
页:
[1]