* added compilers lcc and bcc (linux86)
[mascara-docs.git] / compilers / lcc-4.2 / x86 / win32 / tst / fields.sbk
blob8cf77846df1743a861d58958a37eb4c6257c6c44
1 .486
2 .model flat
3 extrn __fltused:near
4 extrn __ftol:near
5 _DATA segment
6 public _x
7 align 4
8 _x label byte
9 dd 1
10 db 2
11 db 3 dup (0)
12 db 03H
13 db 040H
14 db 2 dup (0)
15 db 050H
16 db 6
17 db 2 dup (0)
18 public _i
19 align 4
20 _i label byte
21 dd 16
22 public _y
23 align 4
24 _y label byte
25 db 023H
26 db 3 dup (0)
27 db 09H
28 db 00H
29 db 00H
30 db 00H
31 public _main
32 _DATA ends
33 _TEXT segment
34 _main:
35 push ebx
36 push esi
37 push edi
38 push ebp
39 mov ebp,esp
40 movsx edi,byte ptr (_x+13)
41 push edi
42 mov edi,dword ptr (_x+12)
43 sal edi,25
44 sar edi,29
45 push edi
46 mov edi,dword ptr (_x+8)
47 sal edi,16
48 sar edi,28
49 push edi
50 mov edi,dword ptr (_x+8)
51 sal edi,20
52 sar edi,20
53 push edi
54 movsx edi,byte ptr (_x+4)
55 push edi
56 mov edi,dword ptr (_x)
57 push edi
58 lea edi,(L4)
59 push edi
60 call _printf
61 add esp,28
62 mov edi,dword ptr (_y+4)
63 push edi
64 mov edi,dword ptr (_y)
65 mov esi,edi
66 shr esi,2
67 and esi,15
68 push esi
69 and edi,3
70 push edi
71 lea edi,(L10)
72 push edi
73 call _printf
74 add esp,16
75 mov edi,dword ptr (_x+8)
76 and edi,0ffff0fffH
77 mov esi,dword ptr (_i)
78 sal esi,28
79 sar esi,28
80 shl esi,12
81 and esi,0f000H
82 or edi,esi
83 mov dword ptr (_x+8),edi
84 mov edi,dword ptr (_x+12)
85 and edi,0ffffff8fH
86 mov dword ptr (_x+12),edi
87 movsx edi,byte ptr (_x+13)
88 push edi
89 mov edi,dword ptr (_x+12)
90 sal edi,25
91 sar edi,29
92 push edi
93 mov edi,dword ptr (_x+8)
94 sal edi,16
95 sar edi,28
96 push edi
97 mov edi,dword ptr (_x+8)
98 sal edi,20
99 sar edi,20
100 push edi
101 movsx edi,byte ptr (_x+4)
102 push edi
103 mov edi,dword ptr (_x)
104 push edi
105 lea edi,(L4)
106 push edi
107 call _printf
108 add esp,28
109 mov edi,dword ptr (_y)
110 and edi,0fffffffcH
111 or edi,2
112 mov dword ptr (_y),edi
113 mov edi,dword ptr (_i)
114 mov dword ptr (_y+4),edi
115 mov edi,dword ptr (_y+4)
116 push edi
117 mov edi,dword ptr (_y)
118 mov esi,edi
119 shr esi,2
120 and esi,15
121 push esi
122 and edi,3
123 push edi
124 lea edi,(L10)
125 push edi
126 call _printf
127 add esp,16
128 lea edi,(_x)
129 push edi
130 call _f2
131 add esp,4
132 mov eax,0
134 mov esp,ebp
135 pop ebp
136 pop edi
137 pop esi
138 pop ebx
140 public _f1
141 _f1:
142 push ebx
143 push esi
144 push edi
145 push ebp
146 mov ebp,esp
147 mov edi,dword ptr (20)[ebp]
148 and dword ptr [edi],0ffffffc3H
149 mov edi,dword ptr (20)[ebp]
150 mov esi,dword ptr [edi]
151 and esi,0fffffffcH
152 mov ebx,0
153 and ebx,3
154 and ebx,3
155 or esi,ebx
156 mov dword ptr [edi],esi
157 mov edi,dword ptr (20)[ebp]
158 mov edi,dword ptr [edi]
159 and edi,60
160 cmp edi,0
161 je L22
162 lea edi,(L24)
163 push edi
164 call _printf
165 add esp,4
166 L22:
167 mov edi,dword ptr (20)[ebp]
168 or dword ptr [edi],3
169 mov edi,dword ptr (20)[ebp]
170 or dword ptr [edi],60
171 mov edi,dword ptr (20)[ebp]
172 mov edi,dword ptr [edi]
173 mov esi,edi
174 shr esi,2
175 and esi,15
176 push esi
177 and edi,3
178 push edi
179 lea edi,(L25)
180 push edi
181 call _printf
182 add esp,12
183 mov eax,0
184 L21:
185 mov esp,ebp
186 pop ebp
187 pop edi
188 pop esi
189 pop ebx
191 public _f2
192 _f2:
193 push ebx
194 push esi
195 push edi
196 push ebp
197 mov ebp,esp
198 sub esp,4
199 cmp dword ptr (_i),0
200 jne L28
201 mov dword ptr (-4)[ebp],1
202 jmp L29
203 L28:
204 mov dword ptr (-4)[ebp],0
205 L29:
206 mov edi,dword ptr (20)[ebp]
207 mov esi,dword ptr [edi]
208 and esi,0fffffffcH
209 mov ebx,dword ptr (-4)[ebp]
210 and ebx,3
211 and ebx,3
212 or esi,ebx
213 mov dword ptr [edi],esi
214 mov edi,dword ptr (20)[ebp]
215 push edi
216 call _f1
217 add esp,4
218 mov esi,dword ptr [edi]
219 and esi,0ffffffc3H
220 mov ebx,0
221 and ebx,15
222 lea ebx,[ebx*4]
223 and ebx,60
224 or esi,ebx
225 mov dword ptr [edi],esi
226 mov eax,0
227 L26:
228 mov esp,ebp
229 pop ebp
230 pop edi
231 pop esi
232 pop ebx
234 _TEXT ends
235 extrn _printf:near
236 _TEXT segment
237 _TEXT ends
238 _TEXT segment
239 align 1
240 L25 label byte
241 db 112
242 db 45
243 db 62
244 db 97
245 db 32
246 db 61
247 db 32
248 db 48
249 db 120
250 db 37
251 db 120
252 db 44
253 db 32
254 db 112
255 db 45
256 db 62
257 db 98
258 db 32
259 db 61
260 db 32
261 db 48
262 db 120
263 db 37
264 db 120
265 db 10
266 db 0
267 align 1
268 L24 label byte
269 db 112
270 db 45
271 db 62
272 db 98
273 db 32
274 db 33
275 db 61
276 db 32
277 db 48
278 db 33
279 db 10
280 db 0
281 align 1
282 L10 label byte
283 db 121
284 db 32
285 db 61
286 db 32
287 db 37
288 db 100
289 db 32
290 db 37
291 db 100
292 db 32
293 db 37
294 db 100
295 db 10
296 db 0
297 align 1
298 L4 label byte
299 db 120
300 db 32
301 db 61
302 db 32
303 db 37
304 db 100
305 db 32
306 db 37
307 db 100
308 db 32
309 db 37
310 db 100
311 db 32
312 db 37
313 db 100
314 db 32
315 db 37
316 db 100
317 db 32
318 db 37
319 db 100
320 db 10
321 db 0
322 _TEXT ends