cf.sbk (2429B)
1 .486 2 .model flat 3 extrn __fltused:near 4 extrn __ftol:near 5 public _main 6 _TEXT segment 7 _main: 8 push ebx 9 push esi 10 push edi 11 push ebp 12 mov ebp,esp 13 sub esp,24 14 cmp dword ptr (20)[ebp],1 15 jg L2 16 fld dword ptr (L4) 17 fstp dword ptr (-16)[ebp] 18 jmp L3 19 L2: 20 mov edi,dword ptr (24)[ebp] 21 mov edi,dword ptr (4)[edi] 22 push edi 23 call _atof 24 add esp,4 25 fstp dword ptr (-20)[ebp] 26 fld dword ptr (-20)[ebp] 27 fdiv dword ptr (L5) 28 fstp dword ptr (-16)[ebp] 29 L3: 30 mov dword ptr (-4)[ebp],0 31 L6: 32 mov edi,dword ptr (-4)[ebp] 33 lea esi,(1)[edi] 34 mov dword ptr (-4)[ebp],esi 35 fld dword ptr (L4) 36 fstp dword ptr (_f)[edi*4] 37 L7: 38 cmp dword ptr (-4)[ebp],127 39 jle L6 40 mov dword ptr (-8)[ebp],0 41 jmp L11 42 L10: 43 mov edi,dword ptr (-12)[ebp] 44 lea edi,(_f)[edi*4] 45 fld dword ptr [edi] 46 fadd dword ptr (L13) 47 fstp dword ptr [edi] 48 inc dword ptr (-8)[ebp] 49 L11: 50 call _getchar 51 add esp,0 52 mov dword ptr (-12)[ebp],eax 53 cmp eax,-1 54 jne L10 55 lea edi,(L14) 56 push edi 57 call _printf 58 add esp,4 59 mov dword ptr (-4)[ebp],0 60 L15: 61 mov edi,dword ptr (-4)[ebp] 62 fld dword ptr (_f)[edi*4] 63 fstp dword ptr (-24)[ebp] 64 fld dword ptr (L4) 65 fcomp dword ptr (-24)[ebp] 66 fstsw ax 67 sahf 68 je L19 69 fld dword ptr (-24)[ebp] 70 mov edi,dword ptr (-8)[ebp] 71 push edi 72 fild dword ptr 0[esp] 73 add esp,4 74 fdivp st(1),st 75 fld dword ptr (-16)[ebp] 76 fcompp 77 fstsw ax 78 sahf 79 ja L19 80 cmp dword ptr (-4)[ebp],32 81 jg L21 82 mov edi,dword ptr (-4)[ebp] 83 push edi 84 lea edi,(L23) 85 push edi 86 call _printf 87 add esp,8 88 jmp L22 89 L21: 90 mov edi,dword ptr (-4)[ebp] 91 push edi 92 lea edi,(L24) 93 push edi 94 call _printf 95 add esp,8 96 L22: 97 fld dword ptr (L5) 98 mov edi,dword ptr (-4)[ebp] 99 fmul dword ptr (_f)[edi*4] 100 mov edi,dword ptr (-8)[ebp] 101 push edi 102 fild dword ptr 0[esp] 103 add esp,4 104 fdivp st(1),st 105 sub esp,8 106 fstp qword ptr [esp] 107 lea edi,(L25) 108 push edi 109 call _printf 110 add esp,12 111 L19: 112 L16: 113 inc dword ptr (-4)[ebp] 114 cmp dword ptr (-4)[ebp],127 115 jle L15 116 mov eax,0 117 L1: 118 mov esp,ebp 119 pop ebp 120 pop edi 121 pop esi 122 pop ebx 123 ret 124 _TEXT ends 125 extrn _printf:near 126 _TEXT segment 127 _TEXT ends 128 extrn _getchar:near 129 _TEXT segment 130 _TEXT ends 131 extrn _atof:near 132 _TEXT segment 133 _TEXT ends 134 _DATA segment 135 public _f 136 align 4 137 _f label byte 138 db 512 dup (0) 139 _DATA ends 140 _TEXT segment 141 align 1 142 L25 label byte 143 db 9 144 db 37 145 db 46 146 db 49 147 db 102 148 db 10 149 db 0 150 align 1 151 L24 label byte 152 db 37 153 db 99 154 db 0 155 align 1 156 L23 label byte 157 db 37 158 db 48 159 db 51 160 db 111 161 db 0 162 align 1 163 L14 label byte 164 db 99 165 db 104 166 db 97 167 db 114 168 db 9 169 db 102 170 db 114 171 db 101 172 db 113 173 db 10 174 db 0 175 align 4 176 L13 label byte 177 dd 03f800000H 178 align 4 179 L5 label byte 180 dd 042c80000H 181 align 4 182 L4 label byte 183 dd 00H 184 _TEXT ends 185 end