汇编语言对应的C语言

时间:2021-09-26 16:39:32
、lea esi,[esi+0]
mov     ebx, [ebp+
hash]
test    ebx, ebx mov     eax, ebx jz      short loc_80484D3 nop                 ; padding lea     esi, [esi+0]        ; padding; ESI doesn’t changing here loc_80484B8: mov     ecx, eax        ; save previous state of
hash to ECX
xor     al, [esi+edx]       ; AL=*(key+i) add     edx, 1          ; i++ shr     ecx, 8          ; ECX=hash>>8 movzx   eax, al         ; EAX=*(key+i) mov     eax, dword ptr ds:crctab[eax*4]     ; EAX=crctab[EAX] xor     eax, ecx        ;
hash=EAX^ECX
GCC在循环开始的时候通过填入NOP和lea esi,[esi+0]来按8字节对齐