一个可以将非常大的HEX数除以一个DD型数的子函数 By Jean(于2008-4-21发表)

;DIV1/DIV2 -> lpAns,DWORD[Div1-Round(Div1/Div2)]->eax
dwordHEXdiv proc lpDiv1,Div2,lpAns,Blength
pushfd
pushad
xor edx,edx
mov ecx,Blength
or ecx,ecx
jz D1
mov ebx,Div2
or ebx,ebx
jz D1
mov esi,lpDiv1
mov edi,lpAns
add esi,Blength
add edi,Blength
and ecx,3
jz D5
xor eax,eax
push ecx
D4:
mov al,[esi-1]
shl eax,8
dec esi
loop D4
shr eax,8
div ebx
mov ecx,ss:[esp]
sub edi,ecx
D6:
mov [edi],al
shr eax,8
inc edi
loop D6
pop ecx
sub edi,ecx
D5:
sub esi,4
sub edi,4
mov ecx,Blength
shr ecx,2
jz D1
D2:
mov eax,[esi]
sub esi,4
div ebx
mov [edi],eax
sub edi,4
loop D2
D1:
mov ss:[esp+28],edx
popad
popfd
ret
dwordHEXdiv endp
并不是所有的贴子都是原创,此时作者均指发表的人而不是文章的作者,作者会说明是否是转贴