* added compilers lcc and bcc (linux86)
[mascara-docs.git] / compilers / lcc-4.2 / x86 / win32 / tst / cf.sbk
blob6d4585e1754dbdbcbace1b79826a32292736967d
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 jp L26
69 je L19
70 L26:
71 fld dword ptr (-24)[ebp]
72 mov edi,dword ptr (-8)[ebp]
73 push edi
74 fild dword ptr 0[esp]
75 add esp,4
76 fdivp st(1),st
77 fld dword ptr (-16)[ebp]
78 fcompp
79 fstsw ax
80 sahf
81 jp L19
82 ja L19
83 cmp dword ptr (-4)[ebp],32
84 jg L21
85 mov edi,dword ptr (-4)[ebp]
86 push edi
87 lea edi,(L23)
88 push edi
89 call _printf
90 add esp,8
91 jmp L22
92 L21:
93 mov edi,dword ptr (-4)[ebp]
94 push edi
95 lea edi,(L24)
96 push edi
97 call _printf
98 add esp,8
99 L22:
100 fld dword ptr (L5)
101 mov edi,dword ptr (-4)[ebp]
102 fmul dword ptr (_f)[edi*4]
103 mov edi,dword ptr (-8)[ebp]
104 push edi
105 fild dword ptr 0[esp]
106 add esp,4
107 fdivp st(1),st
108 sub esp,8
109 fstp qword ptr [esp]
110 lea edi,(L25)
111 push edi
112 call _printf
113 add esp,12
114 L19:
115 L16:
116 inc dword ptr (-4)[ebp]
117 cmp dword ptr (-4)[ebp],127
118 jle L15
119 mov eax,0
121 mov esp,ebp
122 pop ebp
123 pop edi
124 pop esi
125 pop ebx
127 _TEXT ends
128 extrn _printf:near
129 _TEXT segment
130 _TEXT ends
131 extrn _getchar:near
132 _TEXT segment
133 _TEXT ends
134 extrn _atof:near
135 _TEXT segment
136 _TEXT ends
137 _DATA segment
138 public _f
139 align 4
140 _f label byte
141 db 512 dup (0)
142 _DATA ends
143 _TEXT segment
144 align 1
145 L25 label byte
146 db 9
147 db 37
148 db 46
149 db 49
150 db 102
151 db 10
152 db 0
153 align 1
154 L24 label byte
155 db 37
156 db 99
157 db 0
158 align 1
159 L23 label byte
160 db 37
161 db 48
162 db 51
163 db 111
164 db 0
165 align 1
166 L14 label byte
167 db 99
168 db 104
169 db 97
170 db 114
171 db 9
172 db 102
173 db 114
174 db 101
175 db 113
176 db 10
177 db 0
178 align 4
179 L13 label byte
180 dd 03f800000H
181 align 4
182 L5 label byte
183 dd 042c80000H
184 align 4
185 L4 label byte
186 dd 00H
187 _TEXT ends