该段汇编程序(x86平台下)的算法是怎样的,用c语言描述一下
[复制链接]
哪位大哥能帮忙看看这段汇编程序(x86平台下)的算法是怎样的,用c语言描述一下
BYTE decode_char[500];
long unsigned int verify(long unsigned int _year,long unsigned int _month,long unsigned int _day)
{
long unsigned int dianshu=0;
char temp[13];
__asm
{
lea eax,temp[0]
mov ebx,_year
mov [eax],ebx
add eax,4
mov ebx,_month
mov [eax],ebx
add eax,4
mov ebx,_day
mov [eax],ebx
lea edx,temp[0]
mov eax,0xffff
mov ecx,0xb
ss1:
MOVZX EBX,AX
MOVZX ESI,BYTE PTR DS:[EDX]
SAR EBX,8
XOR EBX,ESI
SHL EAX,8
add ebx,ebx
MOV BX,WORD PTR DS:[EBX+decode_char]
XOR BX,AX
INC EDX
MOV EAX,EBX
MOV EBX,ECX
ADD CL,0xFF
TEST BL,BL
JNZ ss1
lea ebx, dianshu
mov [ebx],eax
}
return dianshu;
}
说明BYTE decode_char[500]={0x2b,0x58,.....};里面的数值不要理会