1 1 ;--------------------------------------------------------
2 2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 3 ; Version 2.1.9Ga Sun Jan 16 17:31:37 2000
5 5 ;--------------------------------------------------------
7 7 ;--------------------------------------------------------
8 8 ; publics variables in this module
9 9 ;--------------------------------------------------------
10 10 .globl _printf_small
11 11 ;--------------------------------------------------------
12 12 ; special function registers
13 13 ;--------------------------------------------------------
14 0080 14 G$P0$0$0 == 0x0080
16 0090 16 G$P1$0$0 == 0x0090
18 00A0 18 G$P2$0$0 == 0x00a0
20 00B0 20 G$P3$0$0 == 0x00b0
22 00D0 22 G$PSW$0$0 == 0x00d0
24 00E0 24 G$ACC$0$0 == 0x00e0
26 00F0 26 G$B$0$0 == 0x00f0
28 0081 28 G$SP$0$0 == 0x0081
30 0082 30 G$DPL$0$0 == 0x0082
32 0083 32 G$DPH$0$0 == 0x0083
34 0087 34 G$PCON$0$0 == 0x0087
35 0087 35 _PCON = 0x0087
36 0088 36 G$TCON$0$0 == 0x0088
37 0088 37 _TCON = 0x0088
38 0089 38 G$TMOD$0$0 == 0x0089
39 0089 39 _TMOD = 0x0089
40 008A 40 G$TL0$0$0 == 0x008a
42 008B 42 G$TL1$0$0 == 0x008b
44 008C 44 G$TH0$0$0 == 0x008c
46 008D 46 G$TH1$0$0 == 0x008d
48 008E 48 G$AUXR$0$0 == 0x008e
49 008E 49 _AUXR = 0x008e
50 00A8 50 G$IE$0$0 == 0x00a8
52 00B8 52 G$IP$0$0 == 0x00b8
54 0098 54 G$SCON$0$0 == 0x0098
55 0098 55 _SCON = 0x0098
56 0099 56 G$SBUF$0$0 == 0x0099
57 0099 57 _SBUF = 0x0099
58 00C8 58 G$T2CON$0$0 == 0x00c8
59 00C8 59 _T2CON = 0x00c8
60 00CB 60 G$RCAP2H$0$0 == 0x00cb
61 00CB 61 _RCAP2H = 0x00cb
62 00CA 62 G$RCAP2L$0$0 == 0x00ca
63 00CA 63 _RCAP2L = 0x00ca
64 64 ;--------------------------------------------------------
65 65 ; special function bits
66 66 ;--------------------------------------------------------
67 00D7 67 G$CY$0$0 == 0x00d7
69 00D6 69 G$AC$0$0 == 0x00d6
71 00D5 71 G$F0$0$0 == 0x00d5
73 00D4 73 G$RS1$0$0 == 0x00d4
75 00D3 75 G$RS0$0$0 == 0x00d3
77 00D2 77 G$OV$0$0 == 0x00d2
79 00D0 79 G$P$0$0 == 0x00d0
81 008F 81 G$TF1$0$0 == 0x008f
83 008E 83 G$TR1$0$0 == 0x008e
85 008D 85 G$TF0$0$0 == 0x008d
87 008C 87 G$TR0$0$0 == 0x008c
89 008B 89 G$IE1$0$0 == 0x008b
91 008A 91 G$IT1$0$0 == 0x008a
93 0089 93 G$IE0$0$0 == 0x0089
95 0088 95 G$IT0$0$0 == 0x0088
97 00AF 97 G$EA$0$0 == 0x00af
99 00AC 99 G$ES$0$0 == 0x00ac
100 00AC 100 _ES = 0x00ac
101 00AB 101 G$ET1$0$0 == 0x00ab
102 00AB 102 _ET1 = 0x00ab
103 00AA 103 G$EX1$0$0 == 0x00aa
104 00AA 104 _EX1 = 0x00aa
105 00A9 105 G$ET0$0$0 == 0x00a9
106 00A9 106 _ET0 = 0x00a9
107 00A8 107 G$EX0$0$0 == 0x00a8
108 00A8 108 _EX0 = 0x00a8
109 00BC 109 G$PS$0$0 == 0x00bc
110 00BC 110 _PS = 0x00bc
111 00BB 111 G$PT1$0$0 == 0x00bb
112 00BB 112 _PT1 = 0x00bb
113 00BA 113 G$PX1$0$0 == 0x00ba
114 00BA 114 _PX1 = 0x00ba
115 00B9 115 G$PT0$0$0 == 0x00b9
116 00B9 116 _PT0 = 0x00b9
117 00B8 117 G$PX0$0$0 == 0x00b8
118 00B8 118 _PX0 = 0x00b8
119 00B7 119 G$RD$0$0 == 0x00b7
120 00B7 120 _RD = 0x00b7
121 00B6 121 G$WR$0$0 == 0x00b6
122 00B6 122 _WR = 0x00b6
123 00B5 123 G$T1$0$0 == 0x00b5
124 00B5 124 _T1 = 0x00b5
125 00B4 125 G$T0$0$0 == 0x00b4
126 00B4 126 _T0 = 0x00b4
127 00B3 127 G$INT1$0$0 == 0x00b3
128 00B3 128 _INT1 = 0x00b3
129 00B2 129 G$INT0$0$0 == 0x00b2
130 00B2 130 _INT0 = 0x00b2
131 00B1 131 G$TXD$0$0 == 0x00b1
132 00B1 132 _TXD = 0x00b1
133 00B0 133 G$RXD$0$0 == 0x00b0
134 00B0 134 _RXD = 0x00b0
135 0090 135 G$P1_0$0$0 == 0x0090
136 0090 136 _P1_0 = 0x0090
137 0091 137 G$P1_1$0$0 == 0x0091
138 0091 138 _P1_1 = 0x0091
139 0092 139 G$P1_2$0$0 == 0x0092
140 0092 140 _P1_2 = 0x0092
141 0093 141 G$P1_3$0$0 == 0x0093
142 0093 142 _P1_3 = 0x0093
143 0094 143 G$P1_4$0$0 == 0x0094
144 0094 144 _P1_4 = 0x0094
145 0095 145 G$P1_5$0$0 == 0x0095
146 0095 146 _P1_5 = 0x0095
147 0096 147 G$P1_6$0$0 == 0x0096
148 0096 148 _P1_6 = 0x0096
149 0097 149 G$P1_7$0$0 == 0x0097
150 0097 150 _P1_7 = 0x0097
151 009F 151 G$SM0$0$0 == 0x009f
152 009F 152 _SM0 = 0x009f
153 009E 153 G$SM1$0$0 == 0x009e
154 009E 154 _SM1 = 0x009e
155 009D 155 G$SM2$0$0 == 0x009d
156 009D 156 _SM2 = 0x009d
157 009C 157 G$REN$0$0 == 0x009c
158 009C 158 _REN = 0x009c
159 009B 159 G$TB8$0$0 == 0x009b
160 009B 160 _TB8 = 0x009b
161 009A 161 G$RB8$0$0 == 0x009a
162 009A 162 _RB8 = 0x009a
163 0099 163 G$TI$0$0 == 0x0099
164 0099 164 _TI = 0x0099
165 0098 165 G$RI$0$0 == 0x0098
166 0098 166 _RI = 0x0098
167 00C8 167 G$T2CON_0$0$0 == 0x00c8
168 00C8 168 _T2CON_0 = 0x00c8
169 00C9 169 G$T2CON_1$0$0 == 0x00c9
170 00C9 170 _T2CON_1 = 0x00c9
171 00CA 171 G$T2CON_2$0$0 == 0x00ca
172 00CA 172 _T2CON_2 = 0x00ca
173 00CB 173 G$T2CON_3$0$0 == 0x00cb
174 00CB 174 _T2CON_3 = 0x00cb
175 00CC 175 G$T2CON_4$0$0 == 0x00cc
176 00CC 176 _T2CON_4 = 0x00cc
177 00CD 177 G$T2CON_5$0$0 == 0x00cd
178 00CD 178 _T2CON_5 = 0x00cd
179 00CE 179 G$T2CON_6$0$0 == 0x00ce
180 00CE 180 _T2CON_6 = 0x00ce
181 00CF 181 G$T2CON_7$0$0 == 0x00cf
182 00CF 182 _T2CON_7 = 0x00cf
183 183 ;--------------------------------------------------------
184 184 ; internal ram data
185 185 ;--------------------------------------------------------
186 186 .area DSEG (DATA)
187 0000 187 Fprintfl$ch$0$0==.
190 0001 190 Fprintfl$radix$0$0==.
193 0002 193 Fprintfl$str$0$0==.
196 0005 196 Fprintfl$val$0$0==.
199 0009 199 _pvaloct_sloc0_1_0:
201 000D 201 _printf_small_sloc0_1_0:
203 000E 203 _printf_small_sloc1_1_0:
205 205 ;--------------------------------------------------------
206 206 ; overlayable items in internal ram
207 207 ;--------------------------------------------------------
208 208 .area OSEG (OVR,DATA)
209 209 ;--------------------------------------------------------
210 210 ; indirectly addressable internal ram data
211 211 ;--------------------------------------------------------
212 212 .area ISEG (DATA)
213 213 ;--------------------------------------------------------
215 215 ;--------------------------------------------------------
217 0000 217 Fprintfl$long_flag$0$0==.
220 0001 220 Fprintfl$string_flag$0$0==.
221 0001 221 _string_flag:
223 0002 223 Fprintfl$short_flag$0$0==.
224 0002 224 _short_flag:
226 0003 226 Fprintfl$sign$0$0==.
229 229 ;--------------------------------------------------------
230 230 ; external ram data
231 231 ;--------------------------------------------------------
232 232 .area XSEG (XDATA)
233 0000 233 _pvalhex_val_1_1:
235 0004 235 _pvalhex_sp_1_1:
237 0005 237 _pvalhex_lval_1_1:
239 0009 239 _pvaloct_val_1_1:
241 000D 241 _pvaloct_lval_1_1:
243 0011 243 _pvaldec_val_1_1:
245 0015 245 _pvaldec_lval_1_1:
247 247 ;--------------------------------------------------------
248 248 ; global & static initialisations
249 249 ;--------------------------------------------------------
250 250 .area GSINIT (CODE)
251 0000 251 G$printf_small$0$0 ==.
253 0000 C2*00 253 clr _long_flag
254 0002 254 G$printf_small$0$0 ==.
256 0002 C2*01 256 clr _string_flag
257 0004 257 G$printf_small$0$0 ==.
259 0004 C2*02 259 clr _short_flag
260 260 ;--------------------------------------------------------
262 262 ;--------------------------------------------------------
263 263 .area CSEG (CODE)
264 0000 264 Fprintfl$pvalhex$0$0 ==.
266 266 ; -----------------------------------------
267 267 ; function pvalhex
268 268 ; -----------------------------------------
279 0000 C0 E0 279 push acc
280 0002 C0 F0 280 push b
281 0004 C0 83 281 push dph
282 0006 C0 82 282 push dpl
283 0008 90s00r00 283 mov dptr,#_pvalhex_val_1_1
284 000B D0 E0 284 pop acc
285 000D F0 285 movx @dptr,a
286 000E D0 E0 286 pop acc
288 0011 F0 288 movx @dptr,a
289 0012 D0 E0 289 pop acc
291 0015 F0 291 movx @dptr,a
292 0016 D0 E0 292 pop acc
294 0019 F0 294 movx @dptr,a
296 001A 90s00r04 296 mov dptr,#_pvalhex_sp_1_1
297 001D E5 81 297 mov a,_SP
298 001F F0 298 movx @dptr,a
300 0020 90s00r00 300 mov dptr,#_pvalhex_val_1_1
301 0023 E0 301 movx a,@dptr
304 0026 E0 304 movx a,@dptr
307 0029 E0 307 movx a,@dptr
310 002C E0 310 movx a,@dptr
312 002E 90s00r05 312 mov dptr,#_pvalhex_lval_1_1
314 0032 F0 314 movx @dptr,a
317 0035 F0 317 movx @dptr,a
320 0038 F0 320 movx @dptr,a
323 003B F0 323 movx @dptr,a
325 325 ; Peephole 112 removed ljmp by inverse jump logic
326 003C 20*00 0D 326 jb _long_flag,00102$
329 003F 90s00r05 329 mov dptr,#_pvalhex_lval_1_1
331 0043 F0 331 movx @dptr,a
334 0046 F0 334 movx @dptr,a
336 336 ; Peephole 101 removed redundant mov
337 337 ; Peephole 180 changed mov to clr
339 0049 F0 339 movx @dptr,a
341 004B F0 341 movx @dptr,a
344 344 ; Peephole 111 removed ljmp by inverse jump logic
345 004C 30*02 1B 345 jnb _short_flag,00116$
348 004F 90s00r05 348 mov dptr,#_pvalhex_lval_1_1
349 0052 E0 349 movx a,@dptr
352 0055 E0 352 movx a,@dptr
355 0058 E0 355 movx a,@dptr
358 005B E0 358 movx a,@dptr
360 005D 90s00r05 360 mov dptr,#_pvalhex_lval_1_1
362 0061 F0 362 movx @dptr,a
364 364 ; Peephole 101 removed redundant mov
365 365 ; Peephole 180 changed mov to clr
367 0064 F0 367 movx @dptr,a
369 0066 F0 369 movx @dptr,a
371 371 ; Peephole 180 changed mov to clr
373 0069 F0 373 movx @dptr,a
377 006A 90s00r05 377 mov dptr,#_pvalhex_lval_1_1
378 006D E0 378 movx a,@dptr
381 0070 E0 381 movx a,@dptr
384 0073 E0 384 movx a,@dptr
387 0076 E0 387 movx a,@dptr
393 007C 70 03 393 jnz 00121$
394 007E 02s00rC2 394 ljmp 00108$
397 0081 8A 01 397 mov ar1,r2
398 0083 53 01 0F 398 anl ar1,#0x0f
400 400 ; Peephole 180 changed mov to clr
401 401 ; Peephole 186 optimized movc sequence
402 0087 90s05r32 402 mov dptr,#__str_0
403 008A 93 403 movc a,@a+dptr
404 008B F5*00 404 mov _ch,a
406 008D C0*00 406 push _ch
412 0093 54 0F 412 anl a,#0x0f
415 0097 54 0F 415 anl a,#0x0f
422 009F 54 F0 422 anl a,#0xf0
429 00A7 54 0F 429 anl a,#0x0f
432 00AB 54 0F 432 anl a,#0x0f
437 00B1 90s00r05 437 mov dptr,#_pvalhex_lval_1_1
439 00B5 F0 439 movx @dptr,a
442 00B8 F0 442 movx @dptr,a
445 00BB F0 445 movx @dptr,a
448 00BE F0 448 movx @dptr,a
449 00BF 02s00r6A 449 ljmp 00105$
452 00C2 90s00r04 452 mov dptr,#_pvalhex_sp_1_1
453 00C5 E0 453 movx a,@dptr
454 454 ; Peephole 105 removed redundant mov
456 00C7 B5 81 02 456 cjne a,_SP,00122$
457 457 ; Peephole 132 changed ljmp to sjmp
458 00CA 80 0A 458 sjmp 00111$
461 00CC D0*00 461 pop _ch
463 00CE 85*00 82 463 mov dpl,_ch
464 00D1 12s00r00 464 lcall _putchar
465 465 ; Peephole 132 changed ljmp to sjmp
466 00D4 80 EC 466 sjmp 00108$
468 00D6 468 C$printfl.c$75$1$1 ==.
469 00D6 469 XFprintfl$pvalhex$0$0 ==.
471 00D7 471 Fprintfl$pvaloct$0$0 ==.
473 473 ; -----------------------------------------
474 474 ; function pvaloct
475 475 ; -----------------------------------------
478 00D7 C0 E0 478 push acc
479 00D9 C0 F0 479 push b
480 00DB C0 83 480 push dph
481 00DD C0 82 481 push dpl
482 00DF 90s00r09 482 mov dptr,#_pvaloct_val_1_1
483 00E2 D0 E0 483 pop acc
484 00E4 F0 484 movx @dptr,a
485 00E5 D0 E0 485 pop acc
487 00E8 F0 487 movx @dptr,a
488 00E9 D0 E0 488 pop acc
490 00EC F0 490 movx @dptr,a
491 00ED D0 E0 491 pop acc
493 00F0 F0 493 movx @dptr,a
496 00F1 90s00r09 496 mov dptr,#_pvaloct_val_1_1
497 00F4 E0 497 movx a,@dptr
500 00F7 E0 500 movx a,@dptr
503 00FA E0 503 movx a,@dptr
506 00FD E0 506 movx a,@dptr
507 507 ; Peephole 105 removed redundant mov
509 509 ; Peephole 111 removed ljmp by inverse jump logic
510 00FF 30 E7 17 510 jnb acc.7,00102$
513 0102 90s00r0D 513 mov dptr,#_pvaloct_lval_1_1
516 0107 9B 516 subb a,r3
517 0108 F0 517 movx @dptr,a
519 010A 9C 519 subb a,r4
521 010C F0 521 movx @dptr,a
523 010E 9D 523 subb a,r5
525 0110 F0 525 movx @dptr,a
527 0112 9E 527 subb a,r6
529 0114 F0 529 movx @dptr,a
531 0115 D2*03 531 setb _sign
532 532 ; Peephole 132 changed ljmp to sjmp
533 0117 80 10 533 sjmp 00103$
536 0119 90s00r0D 536 mov dptr,#_pvaloct_lval_1_1
538 011D F0 538 movx @dptr,a
541 0120 F0 541 movx @dptr,a
544 0123 F0 544 movx @dptr,a
547 0126 F0 547 movx @dptr,a
549 0127 C2*03 549 clr _sign
552 552 ; Peephole 112 removed ljmp by inverse jump logic
553 0129 20*00 1B 553 jb _long_flag,00105$
556 012C 90s00r0D 556 mov dptr,#_pvaloct_lval_1_1
557 012F E0 557 movx a,@dptr
560 0132 E0 560 movx a,@dptr
563 0135 E0 563 movx a,@dptr
566 0138 E0 566 movx a,@dptr
568 013A 90s00r0D 568 mov dptr,#_pvaloct_lval_1_1
570 013E F0 570 movx @dptr,a
573 0141 F0 573 movx @dptr,a
575 575 ; Peephole 101 removed redundant mov
576 576 ; Peephole 180 changed mov to clr
578 0144 F0 578 movx @dptr,a
580 0146 F0 580 movx @dptr,a
583 583 ; Peephole 111 removed ljmp by inverse jump logic
584 0147 30*02 1B 584 jnb _short_flag,00108$
587 014A 90s00r0D 587 mov dptr,#_pvaloct_lval_1_1
588 014D E0 588 movx a,@dptr
591 0150 E0 591 movx a,@dptr
594 0153 E0 594 movx a,@dptr
597 0156 E0 597 movx a,@dptr
599 0158 90s00r0D 599 mov dptr,#_pvaloct_lval_1_1
601 015C F0 601 movx @dptr,a
603 603 ; Peephole 101 removed redundant mov
604 604 ; Peephole 180 changed mov to clr
606 015F F0 606 movx @dptr,a
608 0161 F0 608 movx @dptr,a
610 610 ; Peephole 180 changed mov to clr
612 0164 F0 612 movx @dptr,a
615 0165 90s00r0D 615 mov dptr,#_pvaloct_lval_1_1
616 0168 E0 616 movx a,@dptr
617 0169 F5*09 617 mov _pvaloct_sloc0_1_0,a
619 016C E0 619 movx a,@dptr
620 016D F5*0A 620 mov (_pvaloct_sloc0_1_0 + 1),a
622 0170 E0 622 movx a,@dptr
623 0171 F5*0B 623 mov (_pvaloct_sloc0_1_0 + 2),a
625 0174 E0 625 movx a,@dptr
626 0175 F5*0C 626 mov (_pvaloct_sloc0_1_0 + 3),a
627 0177 E5*09 627 mov a,_pvaloct_sloc0_1_0
628 0179 45*0A 628 orl a,(_pvaloct_sloc0_1_0 + 1)
629 017B 45*0B 629 orl a,(_pvaloct_sloc0_1_0 + 2)
630 017D 45*0C 630 orl a,(_pvaloct_sloc0_1_0 + 3)
631 017F 70 03 631 jnz 00129$
632 0181 02s01rFF 632 ljmp 00110$
635 0184 90s00r00 635 mov dptr,#__modulong_PARM_2
640 018B F0 640 movx @dptr,a
641 018C 12s00r00 641 lcall __decdptr
642 018F F0 642 movx @dptr,a
643 0190 12s00r00 643 lcall __decdptr
644 0193 F0 644 movx @dptr,a
645 0194 12s00r00 645 lcall __decdptr
646 0197 74 08 646 mov a,#0x08
647 0199 F0 647 movx @dptr,a
648 019A 85*09 82 648 mov dpl,_pvaloct_sloc0_1_0
649 019D 85*0A 83 649 mov dph,(_pvaloct_sloc0_1_0 + 1)
650 01A0 85*0B F0 650 mov b,(_pvaloct_sloc0_1_0 + 2)
651 01A3 E5*0C 651 mov a,(_pvaloct_sloc0_1_0 + 3)
652 01A5 12s00r00 652 lcall __modulong
653 01A8 AA 82 653 mov r2,dpl
654 01AA AB 83 654 mov r3,dph
655 01AC AF F0 655 mov r7,b
657 01AF 74 30 657 mov a,#0x30
660 660 ; Peephole 180 changed mov to clr
662 01B4 3B 662 addc a,r3
664 664 ; Peephole 180 changed mov to clr
666 01B7 3F 666 addc a,r7
668 668 ; Peephole 180 changed mov to clr
670 01BA 38 670 addc a,r0
672 01BC 8A*00 672 mov _ch,r2
674 01BE C0*00 674 push _ch
676 01C0 AA*09 676 mov r2,_pvaloct_sloc0_1_0
677 01C2 E5*0A 677 mov a,(_pvaloct_sloc0_1_0 + 1)
683 01C9 54 1F 683 anl a,#0x1f
686 01CD 54 1F 686 anl a,#0x1f
691 01D3 E5*0B 691 mov a,(_pvaloct_sloc0_1_0 + 2)
694 01D7 54 E0 694 anl a,#0xe0
697 01DB AF*0B 697 mov r7,(_pvaloct_sloc0_1_0 + 2)
698 01DD E5*0C 698 mov a,(_pvaloct_sloc0_1_0 + 3)
704 01E4 54 1F 704 anl a,#0x1f
707 01E8 54 1F 707 anl a,#0x1f
712 01EE 90s00r0D 712 mov dptr,#_pvaloct_lval_1_1
714 01F2 F0 714 movx @dptr,a
717 01F5 F0 717 movx @dptr,a
720 01F8 F0 720 movx @dptr,a
723 01FB F0 723 movx @dptr,a
724 01FC 02s01r65 724 ljmp 00108$
727 727 ; Peephole 111 removed ljmp by inverse jump logic
728 01FF 30*03 05 728 jnb _sign,00113$
731 0202 75*00 2D 731 mov _ch,#0x2d
733 0205 C0*00 733 push _ch
736 0207 E5 81 736 mov a,_SP
737 0209 B5 81 02 737 cjne a,_SP,00131$
738 738 ; Peephole 132 changed ljmp to sjmp
739 020C 80 0A 739 sjmp 00116$
742 020E D0*00 742 pop _ch
744 0210 85*00 82 744 mov dpl,_ch
745 0213 12s00r00 745 lcall _putchar
746 746 ; Peephole 132 changed ljmp to sjmp
747 0216 80 EF 747 sjmp 00113$
749 0218 749 C$printfl.c$111$1$1 ==.
750 0218 750 XFprintfl$pvaloct$0$0 ==.
752 0219 752 Fprintfl$pvaldec$0$0 ==.
754 754 ; -----------------------------------------
755 755 ; function pvaldec
756 756 ; -----------------------------------------
759 0219 C0 E0 759 push acc
760 021B C0 F0 760 push b
761 021D C0 83 761 push dph
762 021F C0 82 762 push dpl
763 0221 90s00r11 763 mov dptr,#_pvaldec_val_1_1
764 0224 D0 E0 764 pop acc
765 0226 F0 765 movx @dptr,a
766 0227 D0 E0 766 pop acc
768 022A F0 768 movx @dptr,a
769 022B D0 E0 769 pop acc
771 022E F0 771 movx @dptr,a
772 022F D0 E0 772 pop acc
774 0232 F0 774 movx @dptr,a
777 0233 90s00r11 777 mov dptr,#_pvaldec_val_1_1
778 0236 E0 778 movx a,@dptr
781 0239 E0 781 movx a,@dptr
784 023C E0 784 movx a,@dptr
787 023F E0 787 movx a,@dptr
788 788 ; Peephole 105 removed redundant mov
790 790 ; Peephole 111 removed ljmp by inverse jump logic
791 0241 30 E7 17 791 jnb acc.7,00102$
794 0244 90s00r15 794 mov dptr,#_pvaldec_lval_1_1
797 0249 9B 797 subb a,r3
798 024A F0 798 movx @dptr,a
800 024C 9C 800 subb a,r4
802 024E F0 802 movx @dptr,a
804 0250 9D 804 subb a,r5
806 0252 F0 806 movx @dptr,a
808 0254 9E 808 subb a,r6
810 0256 F0 810 movx @dptr,a
812 0257 D2*03 812 setb _sign
813 813 ; Peephole 132 changed ljmp to sjmp
814 0259 80 10 814 sjmp 00104$
817 025B 90s00r15 817 mov dptr,#_pvaldec_lval_1_1
819 025F F0 819 movx @dptr,a
822 0262 F0 822 movx @dptr,a
825 0265 F0 825 movx @dptr,a
828 0268 F0 828 movx @dptr,a
830 0269 C2*03 830 clr _sign
833 026B 90s00r15 833 mov dptr,#_pvaldec_lval_1_1
834 026E E0 834 movx a,@dptr
837 0271 E0 837 movx a,@dptr
840 0274 E0 840 movx a,@dptr
843 0277 E0 843 movx a,@dptr
849 027D 70 03 849 jnz 00121$
850 027F 02s03r02 850 ljmp 00106$
853 0282 90s00r00 853 mov dptr,#__modulong_PARM_2
858 0289 F0 858 movx @dptr,a
859 028A 12s00r00 859 lcall __decdptr
860 028D F0 860 movx @dptr,a
861 028E 12s00r00 861 lcall __decdptr
862 0291 F0 862 movx @dptr,a
863 0292 12s00r00 863 lcall __decdptr
864 0295 74 0A 864 mov a,#0x0a
865 0297 F0 865 movx @dptr,a
866 0298 C0 03 866 push ar3
867 029A C0 04 867 push ar4
868 029C C0 05 868 push ar5
869 029E C0 06 869 push ar6
870 02A0 8B 82 870 mov dpl,r3
871 02A2 8C 83 871 mov dph,r4
872 02A4 8D F0 872 mov b,r5
874 02A7 12s00r00 874 lcall __modulong
875 02AA AF 82 875 mov r7,dpl
876 02AC A8 83 876 mov r0,dph
877 02AE A9 F0 877 mov r1,b
879 02B1 D0 06 879 pop ar6
880 02B3 D0 05 880 pop ar5
881 02B5 D0 04 881 pop ar4
882 02B7 D0 03 882 pop ar3
883 02B9 74 30 883 mov a,#0x30
886 886 ; Peephole 180 changed mov to clr
888 02BE 38 888 addc a,r0
890 890 ; Peephole 180 changed mov to clr
892 02C1 39 892 addc a,r1
894 894 ; Peephole 180 changed mov to clr
896 02C4 3A 896 addc a,r2
898 02C6 8F*00 898 mov _ch,r7
900 02C8 C0*00 900 push _ch
902 02CA 90s00r00 902 mov dptr,#__divulong_PARM_2
907 02D1 F0 907 movx @dptr,a
908 02D2 12s00r00 908 lcall __decdptr
909 02D5 F0 909 movx @dptr,a
910 02D6 12s00r00 910 lcall __decdptr
911 02D9 F0 911 movx @dptr,a
912 02DA 12s00r00 912 lcall __decdptr
913 02DD 74 0A 913 mov a,#0x0a
914 02DF F0 914 movx @dptr,a
915 02E0 8B 82 915 mov dpl,r3
916 02E2 8C 83 916 mov dph,r4
917 02E4 8D F0 917 mov b,r5
919 02E7 12s00r00 919 lcall __divulong
920 02EA AA 82 920 mov r2,dpl
921 02EC AB 83 921 mov r3,dph
922 02EE AC F0 922 mov r4,b
924 02F1 90s00r15 924 mov dptr,#_pvaldec_lval_1_1
926 02F5 F0 926 movx @dptr,a
929 02F8 F0 929 movx @dptr,a
932 02FB F0 932 movx @dptr,a
935 02FE F0 935 movx @dptr,a
936 02FF 02s02r6B 936 ljmp 00104$
939 939 ; Peephole 111 removed ljmp by inverse jump logic
940 0302 30*03 05 940 jnb _sign,00109$
943 0305 75*00 2D 943 mov _ch,#0x2d
945 0308 C0*00 945 push _ch
948 030A E5 81 948 mov a,_SP
949 030C B5 81 02 949 cjne a,_SP,00123$
950 950 ; Peephole 132 changed ljmp to sjmp
951 030F 80 0A 951 sjmp 00112$
954 0311 D0*00 954 pop _ch
956 0313 85*00 82 956 mov dpl,_ch
957 0316 12s00r00 957 lcall _putchar
958 958 ; Peephole 132 changed ljmp to sjmp
959 0319 80 EF 959 sjmp 00109$
961 031B 961 C$printfl.c$142$1$1 ==.
962 031B 962 XFprintfl$pvaldec$0$0 ==.
964 031C 964 G$printf_small$0$0 ==.
966 966 ; -----------------------------------------
967 967 ; function printf_small
968 968 ; -----------------------------------------
969 031C 969 _printf_small:
970 031C C0*00 970 push _bp
971 031E 85 81*00 971 mov _bp,sp
972 0321 05 81 972 inc sp
974 0323 E5*00 974 mov a,_bp
975 0325 24 FB 975 add a,#0xfb
977 977 ; Peephole 3.c changed mov to clr
981 981 ; Peephole 212 reduced add sequence to inc
982 032B A8*00 982 mov r0,_bp
984 032E A6 02 984 mov @r0,ar2
987 0330 E5*00 987 mov a,_bp
988 0332 24 FB 988 add a,#0xfb
990 0335 86 03 990 mov ar3,@r0
992 0338 86 04 992 mov ar4,@r0
994 033B 86 05 994 mov ar5,@r0
995 033D 8B 82 995 mov dpl,r3
996 033F 8C 83 996 mov dph,r4
997 0341 8D F0 997 mov b,r5
998 0343 12s00r00 998 lcall __gptrget
999 999 ; Peephole 105 removed redundant mov
1000 0346 FE 1000 mov r6,a
1001 0347 70 03 1001 jnz 00154$
1002 0349 02s05r2C 1002 ljmp 00133$
1004 1004 ; printfl.c 151
1005 034C BE 25 02 1005 cjne r6,#0x25,00155$
1006 034F 80 03 1006 sjmp 00156$
1008 0351 02s05r19 1008 ljmp 00127$
1010 1010 ; printfl.c 152
1011 0354 C2*02 1011 clr _short_flag
1012 0356 C2*01 1012 clr _string_flag
1013 0358 C2*00 1013 clr _long_flag
1014 1014 ; printfl.c 153
1016 035B BB 00 01 1016 cjne r3,#0x00,00157$
1019 035F E5*00 1019 mov a,_bp
1020 0361 24 FB 1020 add a,#0xfb
1021 0363 F8 1021 mov r0,a
1022 0364 A6 03 1022 mov @r0,ar3
1024 0367 A6 04 1024 mov @r0,ar4
1026 036A A6 05 1026 mov @r0,ar5
1027 1027 ; printfl.c 154
1028 036C 8B 82 1028 mov dpl,r3
1029 036E 8C 83 1029 mov dph,r4
1030 0370 8D F0 1030 mov b,r5
1031 0372 12s00r00 1031 lcall __gptrget
1032 0375 FF 1032 mov r7,a
1033 0376 BF 68 02 1033 cjne r7,#0x68,00158$
1034 1034 ; Peephole 132 changed ljmp to sjmp
1035 0379 80 17 1035 sjmp 00102$
1037 1037 ; Peephole 132 changed ljmp to sjmp
1038 1038 ; Peephole 199 optimized misc jump sequence
1039 037B BF 6C 26 1039 cjne r7,#0x6c,00103$
1040 1040 ; Peephole 201 removed redundant sjmp
1043 1043 ; printfl.c 156
1044 037E D2*00 1044 setb _long_flag
1045 1045 ; printfl.c 157
1046 0380 E5*00 1046 mov a,_bp
1047 0382 24 FB 1047 add a,#0xfb
1048 0384 F8 1048 mov r0,a
1049 0385 74 01 1049 mov a,#0x01
1050 0387 2B 1050 add a,r3
1051 0388 F6 1051 mov @r0,a
1052 1052 ; Peephole 180 changed mov to clr
1054 038A 3C 1054 addc a,r4
1056 038C F6 1056 mov @r0,a
1058 038E A6 05 1058 mov @r0,ar5
1059 1059 ; printfl.c 158
1060 1060 ; printfl.c 160
1061 1061 ; Peephole 132 changed ljmp to sjmp
1062 0390 80 12 1062 sjmp 00103$
1064 0392 D2*02 1064 setb _short_flag
1065 1065 ; printfl.c 161
1066 0394 E5*00 1066 mov a,_bp
1067 0396 24 FB 1067 add a,#0xfb
1068 0398 F8 1068 mov r0,a
1069 0399 74 01 1069 mov a,#0x01
1070 039B 2B 1070 add a,r3
1071 039C F6 1071 mov @r0,a
1072 1072 ; Peephole 180 changed mov to clr
1074 039E 3C 1074 addc a,r4
1076 03A0 F6 1076 mov @r0,a
1078 03A2 A6 05 1078 mov @r0,ar5
1079 1079 ; printfl.c 162
1081 1081 ; printfl.c 164
1082 03A4 E5*00 1082 mov a,_bp
1083 03A6 24 FB 1083 add a,#0xfb
1084 03A8 F8 1084 mov r0,a
1085 03A9 86 03 1085 mov ar3,@r0
1087 03AC 86 04 1087 mov ar4,@r0
1089 03AF 86 05 1089 mov ar5,@r0
1090 03B1 8B 82 1090 mov dpl,r3
1091 03B3 8C 83 1091 mov dph,r4
1092 03B5 8D F0 1092 mov b,r5
1093 03B7 12s00r00 1093 lcall __gptrget
1094 03BA FB 1094 mov r3,a
1095 03BB BB 63 02 1095 cjne r3,#0x63,00161$
1096 1096 ; Peephole 132 changed ljmp to sjmp
1097 03BE 80 22 1097 sjmp 00107$
1099 03C0 BB 64 02 1099 cjne r3,#0x64,00162$
1100 1100 ; Peephole 132 changed ljmp to sjmp
1101 03C3 80 13 1101 sjmp 00105$
1103 03C5 BB 6F 02 1103 cjne r3,#0x6f,00163$
1104 1104 ; Peephole 132 changed ljmp to sjmp
1105 03C8 80 1D 1105 sjmp 00108$
1107 03CA BB 73 02 1107 cjne r3,#0x73,00164$
1108 1108 ; Peephole 132 changed ljmp to sjmp
1109 03CD 80 05 1109 sjmp 00104$
1111 1111 ; Peephole 132 changed ljmp to sjmp
1112 1112 ; printfl.c 166
1113 1113 ; Peephole 132 changed ljmp to sjmp
1114 1114 ; Peephole 199 optimized misc jump sequence
1115 03CF BB 78 18 1115 cjne r3,#0x78,00109$
1116 03D2 80 09 1116 sjmp 00106$
1119 03D4 D2*01 1119 setb _string_flag
1120 1120 ; printfl.c 167
1121 1121 ; printfl.c 169
1122 1122 ; Peephole 132 changed ljmp to sjmp
1123 03D6 80 12 1123 sjmp 00109$
1125 03D8 75*01 0A 1125 mov _radix,#0x0a
1126 1126 ; printfl.c 170
1127 1127 ; printfl.c 172
1128 1128 ; Peephole 132 changed ljmp to sjmp
1129 03DB 80 0D 1129 sjmp 00109$
1131 03DD 75*01 10 1131 mov _radix,#0x10
1132 1132 ; printfl.c 173
1133 1133 ; printfl.c 175
1134 1134 ; Peephole 132 changed ljmp to sjmp
1135 03E0 80 08 1135 sjmp 00109$
1137 03E2 75*01 00 1137 mov _radix,#0x00
1138 1138 ; printfl.c 176
1139 1139 ; printfl.c 178
1140 1140 ; Peephole 132 changed ljmp to sjmp
1141 03E5 80 03 1141 sjmp 00109$
1143 03E7 75*01 08 1143 mov _radix,#0x08
1144 1144 ; printfl.c 180
1146 1146 ; printfl.c 182
1147 03EA 20*01 03 1147 jb _string_flag,00166$
1148 03ED 02s04r5B 1148 ljmp 00114$
1150 1150 ; printfl.c 183
1151 1151 ; Peephole 212 reduced add sequence to inc
1152 03F0 A9*00 1152 mov r1,_bp
1154 03F3 E7 1154 mov a,@r1
1155 03F4 24 FD 1155 add a,#0xfd
1156 03F6 F8 1156 mov r0,a
1157 1157 ; Peephole 212 reduced add sequence to inc
1158 03F7 A9*00 1158 mov r1,_bp
1160 03FA A7 00 1160 mov @r1,ar0
1161 03FC 86*02 1161 mov _str,@r0
1163 03FF 86*03 1163 mov (_str + 1),@r0
1165 0402 86*04 1165 mov (_str + 2),@r0
1168 1168 ; printfl.c 184
1170 0406 85*02*0E 1170 mov _printf_small_sloc1_1_0,_str
1171 0409 85*03*0F 1171 mov (_printf_small_sloc1_1_0 + 1),(_str + 1)
1172 040C 85*04*10 1172 mov (_printf_small_sloc1_1_0 + 2),(_str + 2)
1173 040F 85*0E 82 1173 mov dpl,_printf_small_sloc1_1_0
1174 0412 85*0F 83 1174 mov dph,(_printf_small_sloc1_1_0 + 1)
1175 0415 85*10 F0 1175 mov b,(_printf_small_sloc1_1_0 + 2)
1176 0418 12s00r00 1176 lcall __gptrget
1177 1177 ; Peephole 105 removed redundant mov
1178 041B F5*0D 1178 mov _printf_small_sloc0_1_0,a
1179 041D 70 03 1179 jnz 00167$
1180 041F 02s05r1E 1180 ljmp 00131$
1182 0422 85*02 82 1182 mov dpl,_str
1183 0425 85*03 83 1183 mov dph,(_str + 1)
1184 0428 85*04 F0 1184 mov b,(_str + 2)
1185 042B 74 01 1185 mov a,#0x01
1186 042D 25*02 1186 add a,_str
1187 042F FA 1187 mov r2,a
1188 1188 ; Peephole 180 changed mov to clr
1190 0431 35*03 1190 addc a,(_str + 1)
1191 0433 FF 1191 mov r7,a
1192 0434 AB*04 1192 mov r3,(_str + 2)
1193 0436 8A*02 1193 mov _str,r2
1194 0438 8F*03 1194 mov (_str + 1),r7
1195 043A 8B*04 1195 mov (_str + 2),r3
1196 043C 12s00r00 1196 lcall __gptrget
1197 043F FC 1197 mov r4,a
1198 0440 C0 02 1198 push ar2
1199 0442 C0 03 1199 push ar3
1200 0444 C0 04 1200 push ar4
1201 0446 C0 06 1201 push ar6
1202 0448 C0 07 1202 push ar7
1203 044A 8C 82 1203 mov dpl,r4
1204 044C 12s00r00 1204 lcall _putchar
1205 044F D0 07 1205 pop ar7
1206 0451 D0 06 1206 pop ar6
1207 0453 D0 04 1207 pop ar4
1208 0455 D0 03 1208 pop ar3
1209 0457 D0 02 1209 pop ar2
1210 1210 ; printfl.c 185
1211 1211 ; Peephole 132 changed ljmp to sjmp
1212 0459 80 AB 1212 sjmp 00110$
1214 1214 ; printfl.c 188
1215 1215 ; Peephole 111 removed ljmp by inverse jump logic
1216 045B 30*00 1C 1216 jnb _long_flag,00119$
1218 1218 ; printfl.c 189
1219 1219 ; Peephole 212 reduced add sequence to inc
1220 045E A9*00 1220 mov r1,_bp
1222 0461 E7 1222 mov a,@r1
1223 0462 24 FC 1223 add a,#0xfc
1224 0464 F8 1224 mov r0,a
1225 1225 ; Peephole 212 reduced add sequence to inc
1226 0465 A9*00 1226 mov r1,_bp
1228 0468 A7 00 1228 mov @r1,ar0
1229 046A 86*05 1229 mov _val,@r0
1231 046D 86*06 1231 mov (_val + 1),@r0
1233 0470 86*07 1233 mov (_val + 2),@r0
1235 0473 86*08 1235 mov (_val + 3),@r0
1239 1239 ; Peephole 132 changed ljmp to sjmp
1240 0478 80 3D 1240 sjmp 00120$
1242 1242 ; printfl.c 191
1243 1243 ; Peephole 111 removed ljmp by inverse jump logic
1244 047A 30*02 1C 1244 jnb _short_flag,00116$
1246 1246 ; printfl.c 192
1247 1247 ; Peephole 212 reduced add sequence to inc
1248 047D A9*00 1248 mov r1,_bp
1250 0480 E7 1250 mov a,@r1
1251 0481 24 FF 1251 add a,#0xff
1252 0483 F8 1252 mov r0,a
1253 1253 ; Peephole 212 reduced add sequence to inc
1254 0484 A9*00 1254 mov r1,_bp
1256 0487 A7 00 1256 mov @r1,ar0
1257 0489 86 02 1257 mov ar2,@r0
1258 048B 8A*05 1258 mov _val,r2
1259 048D EA 1259 mov a,r2
1261 048F 95 E0 1261 subb a,acc
1262 0491 F5*06 1262 mov (_val + 1),a
1263 0493 F5*07 1263 mov (_val + 2),a
1264 0495 F5*08 1264 mov (_val + 3),a
1265 1265 ; Peephole 132 changed ljmp to sjmp
1266 0497 80 1E 1266 sjmp 00120$
1268 1268 ; printfl.c 194
1269 1269 ; Peephole 212 reduced add sequence to inc
1270 0499 A9*00 1270 mov r1,_bp
1272 049C E7 1272 mov a,@r1
1273 049D 24 FE 1273 add a,#0xfe
1274 049F F8 1274 mov r0,a
1275 1275 ; Peephole 212 reduced add sequence to inc
1276 04A0 A9*00 1276 mov r1,_bp
1278 04A3 A7 00 1278 mov @r1,ar0
1279 04A5 86 02 1279 mov ar2,@r0
1281 04A8 86 03 1281 mov ar3,@r0
1283 04AB 8A*05 1283 mov _val,r2
1284 04AD 8B*06 1284 mov (_val + 1),r3
1285 04AF EB 1285 mov a,r3
1287 04B1 95 E0 1287 subb a,acc
1288 04B3 F5*07 1288 mov (_val + 2),a
1289 04B5 F5*08 1289 mov (_val + 3),a
1291 1291 ; printfl.c 196
1292 04B7 E5*01 1292 mov a,_radix
1293 1293 ; Peephole 110 removed ljmp by inverse jump logic
1294 04B9 60 3D 1294 jz 00123$
1296 04BB E5*01 1296 mov a,_radix
1297 04BD B4 08 02 1297 cjne a,#0x08,00171$
1298 1298 ; Peephole 132 changed ljmp to sjmp
1299 04C0 80 43 1299 sjmp 00124$
1301 04C2 E5*01 1301 mov a,_radix
1302 04C4 B4 0A 02 1302 cjne a,#0x0a,00172$
1303 1303 ; Peephole 132 changed ljmp to sjmp
1304 04C7 80 07 1304 sjmp 00121$
1306 04C9 E5*01 1306 mov a,_radix
1307 1307 ; Peephole 132 changed ljmp to sjmp
1308 1308 ; printfl.c 198
1309 1309 ; Peephole 132 changed ljmp to sjmp
1310 1310 ; Peephole 199 optimized misc jump sequence
1311 04CB B4 10 50 1311 cjne a,#0x10,00131$
1312 04CE 80 14 1312 sjmp 00122$
1315 04D0 C0 06 1315 push ar6
1316 04D2 85*05 82 1316 mov dpl,_val
1317 04D5 85*06 83 1317 mov dph,(_val + 1)
1318 04D8 85*07 F0 1318 mov b,(_val + 2)
1319 04DB E5*08 1319 mov a,(_val + 3)
1320 04DD 12s02r19 1320 lcall _pvaldec
1321 04E0 D0 06 1321 pop ar6
1322 1322 ; printfl.c 199
1323 1323 ; printfl.c 201
1324 1324 ; Peephole 132 changed ljmp to sjmp
1325 04E2 80 3A 1325 sjmp 00131$
1327 04E4 C0 06 1327 push ar6
1328 04E6 85*05 82 1328 mov dpl,_val
1329 04E9 85*06 83 1329 mov dph,(_val + 1)
1330 04EC 85*07 F0 1330 mov b,(_val + 2)
1331 04EF E5*08 1331 mov a,(_val + 3)
1332 04F1 12s00r00 1332 lcall _pvalhex
1333 04F4 D0 06 1333 pop ar6
1334 1334 ; printfl.c 202
1335 1335 ; printfl.c 204
1336 1336 ; Peephole 132 changed ljmp to sjmp
1337 04F6 80 26 1337 sjmp 00131$
1339 04F8 AA*05 1339 mov r2,_val
1340 04FA C0 06 1340 push ar6
1341 04FC 8A 82 1341 mov dpl,r2
1342 04FE 12s00r00 1342 lcall _putchar
1343 0501 D0 06 1343 pop ar6
1344 1344 ; printfl.c 205
1345 1345 ; printfl.c 207
1346 1346 ; Peephole 132 changed ljmp to sjmp
1347 0503 80 19 1347 sjmp 00131$
1349 0505 C0 06 1349 push ar6
1350 0507 85*05 82 1350 mov dpl,_val
1351 050A 85*06 83 1351 mov dph,(_val + 1)
1352 050D 85*07 F0 1352 mov b,(_val + 2)
1353 0510 E5*08 1353 mov a,(_val + 3)
1354 0512 12s00rD7 1354 lcall _pvaloct
1355 0515 D0 06 1355 pop ar6
1356 1356 ; printfl.c 209
1357 1357 ; Peephole 132 changed ljmp to sjmp
1358 0517 80 05 1358 sjmp 00131$
1360 1360 ; printfl.c 212
1361 0519 8E 82 1361 mov dpl,r6
1362 051B 12s00r00 1362 lcall _putchar
1364 1364 ; printfl.c 150
1365 051E E5*00 1365 mov a,_bp
1366 0520 24 FB 1366 add a,#0xfb
1367 0522 F8 1367 mov r0,a
1368 0523 06 1368 inc @r0
1369 0524 B6 00 02 1369 cjne @r0,#0x00,00174$
1371 0528 06 1371 inc @r0
1373 0529 02s03r30 1373 ljmp 00129$
1375 052C 85*00 81 1375 mov sp,_bp
1376 052F D0*00 1376 pop _bp
1377 0531 1377 C$printfl.c$214$1$1 ==.
1378 0531 1378 XG$printf_small$0$0 ==.
1380 1380 .area CSEG (CODE)
1381 0532 1381 Fprintfl$_str_0$0$0 == .
1383 0532 30 31 32 33 34 35 1383 .ascii /0123456789ABCDEF/
1386 0542 00 1384 .byte 0