| .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 |
| 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 |
| jp L26 |
| je L19 |
| L26: |
| fld dword ptr (-24)[ebp] |
| mov edi,dword ptr (-8)[ebp] |
| push edi |
| fild dword ptr 0[esp] |
| add esp,4 |
| fdivp st(1),st |
| fld dword ptr (-16)[ebp] |
| fcompp |
| fstsw ax |
| sahf |
| jp L19 |
| 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] |
| mov edi,dword ptr (-8)[ebp] |
| push edi |
| fild 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 |
| _TEXT 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 |
| _TEXT ends |
| end |