.486
.model small
extrn __turboFloat:near
extrn __setargv:near
public _main
_TEXT segment
_main:
push ebx
push esi
push edi
push ebp
mov ebp,esp
sub esp,24
cmp dword ptr 20[ebp],1
jg L2
fld dword ptr L4
fstp dword ptr -16[ebp]
jmp L3
L2:
mov edi,dword ptr 24[ebp]
mov edi,dword ptr 4[edi]
push edi
call _atof
add esp,4
fstp dword ptr -20[ebp]
fld dword ptr -20[ebp]
fdiv dword ptr L5
fstp dword ptr -16[ebp]
L3:
mov dword ptr -4[ebp],0
L6:
mov edi,dword ptr -4[ebp]
lea esi,1[edi]
mov dword ptr -4[ebp],esi
fld dword ptr L4
fstp dword ptr _f[edi*4]
L7:
cmp dword ptr -4[ebp],127
jle L6
mov dword ptr -8[ebp],0
jmp L11
L10:
mov edi,dword ptr -12[ebp]
lea edi,_f[edi*4]
fld dword ptr [edi]
fadd dword ptr L13
fstp dword ptr [edi]
inc dword ptr -8[ebp]
L11:
call _getchar
add esp,0
mov dword ptr -12[ebp],eax
cmp eax,-1
jne L10
lea edi,L14
push edi
call _printf
add esp,4
mov dword ptr -4[ebp],0
L15:
mov edi,dword ptr -4[ebp]
fld dword ptr _f[edi*4]
fstp dword ptr -24[ebp]
fld dword ptr L4
fcomp dword ptr -24[ebp]
fstsw ax
sahf
je L19
fld dword ptr -24[ebp]
fild dword ptr -8[ebp]
sub esp,4
fstp dword ptr 0[esp]
fld dword ptr 0[esp]
add esp,4
fdivp st(1),st
fld dword ptr -16[ebp]
fcompp
fstsw ax
sahf
ja L19
cmp dword ptr -4[ebp],32
jg L21
mov edi,dword ptr -4[ebp]
push edi
lea edi,L23
push edi
call _printf
add esp,8
jmp L22
L21:
mov edi,dword ptr -4[ebp]
push edi
lea edi,L24
push edi
call _printf
add esp,8
L22:
fld dword ptr L5
mov edi,dword ptr -4[ebp]
fmul dword ptr _f[edi*4]
fild dword ptr -8[ebp]
sub esp,4
fstp dword ptr 0[esp]
fld dword ptr 0[esp]
add esp,4
fdivp st(1),st
sub esp,8
fstp qword ptr [esp]
lea edi,L25
push edi
call _printf
add esp,12
L19:
L16:
inc dword ptr -4[ebp]
cmp dword ptr -4[ebp],127
jle L15
mov eax,0
L1:
mov esp,ebp
pop ebp
pop edi
pop esi
pop ebx
ret
_TEXT ends
extrn _printf:near
_TEXT segment
_TEXT ends
extrn _getchar:near
_TEXT segment
_TEXT ends
extrn _atof:near
_TEXT segment
_TEXT ends
_DATA segment
public _f
align 4
_f label byte
db 512 dup (0)
_DATA ends
_DATA segment
align 1
L25 label byte
db 9
db 37
db 46
db 49
db 102
db 10
db 0
align 1
L24 label byte
db 37
db 99
db 0
align 1
L23 label byte
db 37
db 48
db 51
db 111
db 0
align 1
L14 label byte
db 99
db 104
db 97
db 114
db 9
db 102
db 114
db 101
db 113
db 10
db 0
align 4
L13 label byte
dd 03f800000H
align 4
L5 label byte
dd 042c80000H
align 4
L4 label byte
dd 00H
_DATA ends
end
