1 1 ;--------------------------------------------------------
2 2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 3 ; Version 2.1.9Ga Sun Jan 16 17:31:23 2000
5 5 ;--------------------------------------------------------
7 7 ;--------------------------------------------------------
8 8 ; publics variables in this module
9 9 ;--------------------------------------------------------
10 10 .globl __divulong_PARM_2
12 12 ;--------------------------------------------------------
13 13 ; special function registers
14 14 ;--------------------------------------------------------
15 15 ;--------------------------------------------------------
16 16 ; special function bits
17 17 ;--------------------------------------------------------
18 18 ;--------------------------------------------------------
19 19 ; internal ram data
20 20 ;--------------------------------------------------------
22 0000 22 __divulong_sloc0_1_0:
24 0004 24 __divulong_sloc1_1_0:
26 26 ;--------------------------------------------------------
27 27 ; overlayable items in internal ram
28 28 ;--------------------------------------------------------
29 29 .area OSEG (OVR,DATA)
30 30 ;--------------------------------------------------------
31 31 ; indirectly addressable internal ram data
32 32 ;--------------------------------------------------------
34 34 ;--------------------------------------------------------
36 36 ;--------------------------------------------------------
38 38 ;--------------------------------------------------------
39 39 ; external ram data
40 40 ;--------------------------------------------------------
42 0000 42 __divulong_PARM_2:
44 0004 44 __divulong_a_1_1:
46 0008 46 __divulong_reste_1_1:
48 000C 48 __divulong_count_1_1:
50 50 ;--------------------------------------------------------
51 51 ; global & static initialisations
52 52 ;--------------------------------------------------------
53 53 .area GSINIT (CODE)
54 54 ;--------------------------------------------------------
56 56 ;--------------------------------------------------------
58 0000 58 G$_divulong$0$0 ==.
60 60 ; -----------------------------------------
61 61 ; function _divulong
62 62 ; -----------------------------------------
73 0000 C0 E0 73 push acc
75 0004 C0 83 75 push dph
76 0006 C0 82 76 push dpl
77 0008 90s00r04 77 mov dptr,#__divulong_a_1_1
79 000D F0 79 movx @dptr,a
82 0011 F0 82 movx @dptr,a
85 0015 F0 85 movx @dptr,a
88 0019 F0 88 movx @dptr,a
90 001A 90s00r08 90 mov dptr,#__divulong_reste_1_1
95 0021 F0 95 movx @dptr,a
96 0022 12s00r00 96 lcall __decdptr
97 0025 F0 97 movx @dptr,a
98 0026 12s00r00 98 lcall __decdptr
99 0029 F0 99 movx @dptr,a
100 002A 12s00r00 100 lcall __decdptr
101 002D F0 101 movx @dptr,a
103 002E 90s00r0C 103 mov dptr,#__divulong_count_1_1
104 0031 74 20 104 mov a,#0x20
105 0033 F0 105 movx @dptr,a
107 0034 90s00r00 107 mov dptr,#__divulong_PARM_2
108 0037 E0 108 movx a,@dptr
109 0038 F5*00 109 mov __divulong_sloc0_1_0,a
111 003B E0 111 movx a,@dptr
112 003C F5*01 112 mov (__divulong_sloc0_1_0 + 1),a
114 003F E0 114 movx a,@dptr
115 0040 F5*02 115 mov (__divulong_sloc0_1_0 + 2),a
117 0043 E0 117 movx a,@dptr
118 0044 F5*03 118 mov (__divulong_sloc0_1_0 + 3),a
121 0046 90s00r04 121 mov dptr,#__divulong_a_1_1
122 0049 E0 122 movx a,@dptr
125 004C E0 125 movx a,@dptr
128 004F E0 128 movx a,@dptr
131 0052 E0 131 movx a,@dptr
132 132 ; Peephole 105 removed redundant mov
135 0055 54 01 135 anl a,#0x01
139 0059 25 E0 139 add a,acc
150 0065 90s00r04 150 mov dptr,#__divulong_a_1_1
152 0069 F0 152 movx @dptr,a
155 006C F0 155 movx @dptr,a
158 006F F0 158 movx @dptr,a
161 0072 F0 161 movx @dptr,a
163 0073 C0 06 163 push ar6
164 0075 C0 04 164 push ar4
165 0077 C0 05 165 push ar5
166 0079 C0 03 166 push ar3
167 007B 90s00r08 167 mov dptr,#__divulong_reste_1_1
168 007E E0 168 movx a,@dptr
171 0081 E0 171 movx a,@dptr
174 0084 E0 174 movx a,@dptr
177 0087 E0 177 movx a,@dptr
180 008A 25 E0 180 add a,acc
181 008C F5*04 181 mov __divulong_sloc1_1_0,a
184 0090 F5*05 184 mov (__divulong_sloc1_1_0 + 1),a
187 0094 F5*06 187 mov (__divulong_sloc1_1_0 + 2),a
190 0098 F5*07 190 mov (__divulong_sloc1_1_0 + 3),a
191 009A 90s00r08 191 mov dptr,#__divulong_reste_1_1
192 009D E5*04 192 mov a,__divulong_sloc1_1_0
193 009F F0 193 movx @dptr,a
195 00A1 E5*05 195 mov a,(__divulong_sloc1_1_0 + 1)
196 00A3 F0 196 movx @dptr,a
198 00A5 E5*06 198 mov a,(__divulong_sloc1_1_0 + 2)
199 00A7 F0 199 movx @dptr,a
201 00A9 E5*07 201 mov a,(__divulong_sloc1_1_0 + 3)
202 00AB F0 202 movx @dptr,a
204 00AC D0 03 204 pop ar3
205 00AE D0 05 205 pop ar5
206 00B0 D0 04 206 pop ar4
207 00B2 D0 06 207 pop ar6
209 209 ; Peephole 110 removed ljmp by inverse jump logic
210 00B5 60 14 210 jz 00102$
213 00B7 90s00r08 213 mov dptr,#__divulong_reste_1_1
214 00BA 74 01 214 mov a,#0x01
215 00BC 45*04 215 orl a,__divulong_sloc1_1_0
216 00BE F0 216 movx @dptr,a
218 00C0 E5*05 218 mov a,(__divulong_sloc1_1_0 + 1)
219 00C2 F0 219 movx @dptr,a
221 00C4 E5*06 221 mov a,(__divulong_sloc1_1_0 + 2)
222 00C6 F0 222 movx @dptr,a
224 00C8 E5*07 224 mov a,(__divulong_sloc1_1_0 + 3)
225 00CA F0 225 movx @dptr,a
228 00CB 90s00r08 228 mov dptr,#__divulong_reste_1_1
229 00CE E0 229 movx a,@dptr
232 00D1 E0 232 movx a,@dptr
235 00D4 E0 235 movx a,@dptr
238 00D7 E0 238 movx a,@dptr
242 00DB 95*00 242 subb a,__divulong_sloc0_1_0
244 00DE 95*01 244 subb a,(__divulong_sloc0_1_0 + 1)
246 00E1 95*02 246 subb a,(__divulong_sloc0_1_0 + 2)
248 00E4 95*03 248 subb a,(__divulong_sloc0_1_0 + 3)
249 249 ; Peephole 132 changed ljmp to sjmp
250 250 ; Peephole 160 removed sjmp by inverse jump logic
251 00E6 40 27 251 jc 00106$
254 00E8 90s00r08 254 mov dptr,#__divulong_reste_1_1
257 00ED 95*00 257 subb a,__divulong_sloc0_1_0
258 00EF F0 258 movx @dptr,a
260 00F1 95*01 260 subb a,(__divulong_sloc0_1_0 + 1)
262 00F4 F0 262 movx @dptr,a
264 00F6 95*02 264 subb a,(__divulong_sloc0_1_0 + 2)
266 00F9 F0 266 movx @dptr,a
268 00FB 95*03 268 subb a,(__divulong_sloc0_1_0 + 3)
270 00FE F0 270 movx @dptr,a
272 00FF 90s00r04 272 mov dptr,#__divulong_a_1_1
273 0102 74 01 273 mov a,#0x01
275 0105 F0 275 movx @dptr,a
278 0108 F0 278 movx @dptr,a
281 010B F0 281 movx @dptr,a
284 010E F0 284 movx @dptr,a
287 010F 90s00r0C 287 mov dptr,#__divulong_count_1_1
288 0112 E0 288 movx a,@dptr
289 0113 24 FF 289 add a,#0xff
290 290 ; Peephole 100 removed redundant mov
292 0116 90s00r0C 292 mov dptr,#__divulong_count_1_1
293 0119 F0 293 movx @dptr,a
295 011B 60 03 295 jz 00116$
296 011D 02s00r46 296 ljmp 00105$
299 0120 90s00r04 299 mov dptr,#__divulong_a_1_1
300 0123 E0 300 movx a,@dptr
303 0126 E0 303 movx a,@dptr
306 0129 E0 306 movx a,@dptr
309 012C E0 309 movx a,@dptr
310 310 ; Peephole 191 removed redundant mov
312 012E 8A 82 312 mov dpl,r2
313 0130 8B 83 313 mov dph,r3
314 0132 8C F0 314 mov b,r4
316 0134 316 C$_divulong.c$49$1$1 ==.
317 0134 317 XG$_divulong$0$0 ==.
319 319 .area CSEG (CODE)