2005-08-26 04:48:05 +00:00
|
|
|
.486
|
|
|
|
.model flat
|
|
|
|
extrn __fltused:near
|
|
|
|
extrn __ftol:near
|
|
|
|
public _main
|
|
|
|
_TEXT segment
|
|
|
|
_main:
|
|
|
|
push ebx
|
|
|
|
push esi
|
|
|
|
push edi
|
|
|
|
push ebp
|
|
|
|
mov ebp,esp
|
|
|
|
mov eax,0
|
|
|
|
L1:
|
|
|
|
mov esp,ebp
|
|
|
|
pop ebp
|
|
|
|
pop edi
|
|
|
|
pop esi
|
|
|
|
pop ebx
|
|
|
|
ret
|
|
|
|
public _f
|
|
|
|
_f:
|
|
|
|
push ebx
|
|
|
|
push esi
|
|
|
|
push edi
|
|
|
|
push ebp
|
|
|
|
mov ebp,esp
|
|
|
|
call _f
|
|
|
|
add esp,0
|
|
|
|
mov edi,eax
|
|
|
|
call _f
|
|
|
|
add esp,0
|
|
|
|
lea edi,[eax][edi]
|
|
|
|
mov dword ptr (20)[ebp],edi
|
|
|
|
mov eax,0
|
|
|
|
L2:
|
|
|
|
mov esp,ebp
|
|
|
|
pop ebp
|
|
|
|
pop edi
|
|
|
|
pop esi
|
|
|
|
pop ebx
|
|
|
|
ret
|
|
|
|
public _f2
|
|
|
|
_f2:
|
|
|
|
push ebx
|
|
|
|
push esi
|
|
|
|
push edi
|
|
|
|
push ebp
|
|
|
|
mov ebp,esp
|
|
|
|
sub esp,4
|
|
|
|
call _f
|
|
|
|
add esp,0
|
|
|
|
mov edi,eax
|
|
|
|
cmp dword ptr (20)[ebp],0
|
|
|
|
je L5
|
|
|
|
call _f
|
|
|
|
add esp,0
|
|
|
|
mov esi,eax
|
|
|
|
mov dword ptr (-4)[ebp],esi
|
|
|
|
jmp L6
|
|
|
|
L5:
|
|
|
|
mov dword ptr (-4)[ebp],1
|
|
|
|
L6:
|
|
|
|
mov esi,dword ptr (-4)[ebp]
|
|
|
|
lea edi,[esi][edi]
|
|
|
|
mov dword ptr (20)[ebp],edi
|
|
|
|
mov eax,0
|
|
|
|
L3:
|
|
|
|
mov esp,ebp
|
|
|
|
pop ebp
|
|
|
|
pop edi
|
|
|
|
pop esi
|
|
|
|
pop ebx
|
|
|
|
ret
|
|
|
|
public _f3
|
|
|
|
_f3:
|
|
|
|
push ebx
|
|
|
|
push esi
|
|
|
|
push edi
|
|
|
|
push ebp
|
|
|
|
mov ebp,esp
|
|
|
|
sub esp,44
|
|
|
|
mov dword ptr (-4)[ebp],0
|
|
|
|
mov dword ptr (-8)[ebp],0
|
|
|
|
mov dword ptr (-12)[ebp],0
|
|
|
|
mov dword ptr (-16)[ebp],0
|
|
|
|
mov dword ptr (-20)[ebp],0
|
|
|
|
mov dword ptr (-24)[ebp],0
|
|
|
|
mov dword ptr (-28)[ebp],0
|
|
|
|
mov dword ptr (-32)[ebp],0
|
|
|
|
mov dword ptr (-36)[ebp],0
|
|
|
|
mov dword ptr (-40)[ebp],0
|
|
|
|
mov edi,dword ptr (24)[ebp]
|
|
|
|
lea esi,(4)[edi]
|
|
|
|
mov dword ptr (24)[ebp],esi
|
|
|
|
cmp dword ptr (20)[ebp],0
|
|
|
|
je L9
|
|
|
|
call _f
|
|
|
|
add esp,0
|
|
|
|
mov esi,eax
|
|
|
|
mov dword ptr (-44)[ebp],esi
|
|
|
|
jmp L10
|
|
|
|
L9:
|
|
|
|
mov dword ptr (-44)[ebp],0
|
|
|
|
L10:
|
|
|
|
mov esi,dword ptr (-44)[ebp]
|
|
|
|
mov dword ptr [edi],esi
|
|
|
|
mov eax,0
|
|
|
|
L7:
|
|
|
|
mov esp,ebp
|
|
|
|
pop ebp
|
|
|
|
pop edi
|
|
|
|
pop esi
|
|
|
|
pop ebx
|
|
|
|
ret
|
|
|
|
public _f4
|
|
|
|
_f4:
|
|
|
|
push ebx
|
|
|
|
push esi
|
|
|
|
push edi
|
|
|
|
push ebp
|
|
|
|
mov ebp,esp
|
|
|
|
sub esp,52
|
|
|
|
mov dword ptr (-4)[ebp],0
|
|
|
|
mov dword ptr (-8)[ebp],0
|
|
|
|
mov dword ptr (-12)[ebp],0
|
|
|
|
mov dword ptr (-16)[ebp],0
|
|
|
|
mov dword ptr (-20)[ebp],0
|
|
|
|
mov dword ptr (-24)[ebp],0
|
|
|
|
mov edi,dword ptr (_i)
|
|
|
|
lea esi,[edi*8]
|
|
|
|
fld qword ptr (_a)[esi]
|
|
|
|
fstp qword ptr (-36)[ebp]
|
|
|
|
fld qword ptr (_b)[esi]
|
|
|
|
fstp qword ptr (-44)[ebp]
|
|
|
|
fld qword ptr (-36)[ebp]
|
|
|
|
fadd qword ptr (-44)[ebp]
|
|
|
|
fld qword ptr (L15)
|
|
|
|
fcompp
|
|
|
|
fstsw ax
|
|
|
|
sahf
|
|
|
|
je L13
|
|
|
|
cmp edi,0
|
|
|
|
je L13
|
|
|
|
fld qword ptr (-36)[ebp]
|
|
|
|
fsub qword ptr (-44)[ebp]
|
|
|
|
fld qword ptr (L15)
|
|
|
|
fcompp
|
|
|
|
fstsw ax
|
|
|
|
sahf
|
|
|
|
je L13
|
|
|
|
mov dword ptr (-28)[ebp],1
|
|
|
|
jmp L14
|
|
|
|
L13:
|
|
|
|
mov dword ptr (-28)[ebp],0
|
|
|
|
L14:
|
|
|
|
mov edi,dword ptr (-28)[ebp]
|
|
|
|
mov dword ptr (_i),edi
|
|
|
|
mov eax,0
|
|
|
|
L11:
|
|
|
|
mov esp,ebp
|
|
|
|
pop ebp
|
|
|
|
pop edi
|
|
|
|
pop esi
|
|
|
|
pop ebx
|
|
|
|
ret
|
|
|
|
public _f5
|
|
|
|
_f5:
|
|
|
|
push ebx
|
|
|
|
push esi
|
|
|
|
push edi
|
|
|
|
push ebp
|
|
|
|
mov ebp,esp
|
|
|
|
mov edi,dword ptr (_k)
|
|
|
|
mov esi,dword ptr (_m)
|
|
|
|
mov ebx,dword ptr (_A)
|
|
|
|
mov edx,edi
|
|
|
|
imul edx,esi
|
|
|
|
lea edx,[ebx][edx*8]
|
|
|
|
mov ecx,dword ptr (_j)
|
|
|
|
mov eax,ecx
|
|
|
|
imul eax,esi
|
|
|
|
lea esi,[ebx][eax*8]
|
|
|
|
mov ebx,dword ptr (_n)
|
|
|
|
mov eax,dword ptr (_B)
|
|
|
|
imul edi,ebx
|
|
|
|
lea edi,[eax][edi*8]
|
|
|
|
imul ecx,ebx
|
|
|
|
lea ebx,[eax][ecx*8]
|
|
|
|
fld qword ptr [edx]
|
|
|
|
fmul qword ptr [esi]
|
|
|
|
fld qword ptr [edi]
|
|
|
|
fmul qword ptr [ebx]
|
|
|
|
faddp st(1),st
|
|
|
|
fstp qword ptr (_x)
|
|
|
|
fld qword ptr [edx]
|
|
|
|
fmul qword ptr [ebx]
|
|
|
|
fld qword ptr [edi]
|
|
|
|
fmul qword ptr [esi]
|
|
|
|
fsubp st(1),st
|
|
|
|
fstp qword ptr (_x)
|
|
|
|
mov eax,0
|
|
|
|
L16:
|
|
|
|
mov esp,ebp
|
|
|
|
pop ebp
|
|
|
|
pop edi
|
|
|
|
pop esi
|
|
|
|
pop ebx
|
|
|
|
ret
|
|
|
|
_TEXT ends
|
|
|
|
_DATA segment
|
|
|
|
public _x
|
|
|
|
align 4
|
|
|
|
_x label byte
|
|
|
|
db 8 dup (0)
|
|
|
|
public _B
|
|
|
|
align 4
|
|
|
|
_B label byte
|
|
|
|
db 4 dup (0)
|
|
|
|
public _A
|
|
|
|
align 4
|
|
|
|
_A label byte
|
|
|
|
db 4 dup (0)
|
|
|
|
public _n
|
|
|
|
align 4
|
|
|
|
_n label byte
|
|
|
|
db 4 dup (0)
|
|
|
|
public _m
|
|
|
|
align 4
|
|
|
|
_m label byte
|
|
|
|
db 4 dup (0)
|
|
|
|
public _k
|
|
|
|
align 4
|
|
|
|
_k label byte
|
|
|
|
db 4 dup (0)
|
|
|
|
public _j
|
|
|
|
align 4
|
|
|
|
_j label byte
|
|
|
|
db 4 dup (0)
|
|
|
|
public _i
|
|
|
|
align 4
|
|
|
|
_i label byte
|
|
|
|
db 4 dup (0)
|
|
|
|
public _b
|
|
|
|
align 4
|
|
|
|
_b label byte
|
|
|
|
db 80 dup (0)
|
|
|
|
public _a
|
|
|
|
align 4
|
|
|
|
_a label byte
|
|
|
|
db 80 dup (0)
|
|
|
|
_DATA ends
|
|
|
|
_TEXT segment
|
|
|
|
align 4
|
|
|
|
L15 label byte
|
|
|
|
dd 00H
|
|
|
|
dd 00H
|
|
|
|
_TEXT ends
|
|
|
|
end
|