📄 vprintf.asm
字号:
00127$: mov ar4,r3 dec r3 mov dptr,#_vsprintf_width_1_1 mov a,r3 movx @dptr,a cjne r4,#0x00,00321$; Peephole 132 changed ljmp to sjmp sjmp 00133$00321$:; vprintf.c 385 mov dpl,#0x20 push ar2 push ar3 push ar5 push ar6 lcall _output_char pop ar6 pop ar5 pop ar3 pop ar2; vprintf.c 389; Peephole 132 changed ljmp to sjmp sjmp 00127$00133$: mov dpl,_value mov dph,(_value + 1) mov b,(_value + 2) lcall __gptrget; Peephole 105 removed redundant mov mov r3,a; Peephole 110 removed ljmp by inverse jump logic jz 00135$00322$:; vprintf.c 390 mov r3,_value mov r4,(_value + 1) mov r7,(_value + 2) mov a,#0x01 add a,r3 mov _vsprintf_sloc2_1_0,a; Peephole 180 changed mov to clr clr a addc a,r4 mov (_vsprintf_sloc2_1_0 + 1),a mov (_vsprintf_sloc2_1_0 + 2),r7 mov _value,_vsprintf_sloc2_1_0 mov (_value + 1),(_vsprintf_sloc2_1_0 + 1) mov (_value + 2),(_vsprintf_sloc2_1_0 + 2) mov dpl,r3 mov dph,r4 mov b,r7 lcall __gptrget mov r3,a mov dpl,r3 push ar2 push ar5 push ar6 lcall _output_char pop ar6 pop ar5 pop ar2; Peephole 132 changed ljmp to sjmp sjmp 00133$00135$:; vprintf.c 392 jb _vsprintf_left_justify_1_1,00323$ ljmp 00153$00323$: mov dptr,#_vsprintf_width_1_1 movx a,@dptr mov r3,a clr c mov a,r2 subb a,r3 jc 00324$ ljmp 00153$00324$:; vprintf.c 394 clr c mov a,r3 subb a,r2 mov r2,a; vprintf.c 39500136$: mov ar3,r2 dec r2 mov dptr,#_vsprintf_width_1_1 mov a,r2 movx @dptr,a cjne r3,#0x00,00325$ ljmp 00153$00325$:; vprintf.c 397 mov dpl,#0x20 push ar2 push ar5 push ar6 lcall _output_char pop ar6 pop ar5 pop ar2; vprintf.c 403; Peephole 132 changed ljmp to sjmp sjmp 00136$00142$: mov dptr,#_vsprintf_PARM_3 movx a,@dptr; Peephole 105 removed redundant mov mov r2,a add a,#0xfd; Peephole 100 removed redundant mov mov r0,a mov dptr,#_vsprintf_PARM_3 movx @dptr,a mov ar2,@r0 mov r3,#0x00 mov r4,#0x00 mov _value,r2 mov (_value + 1),r3 mov (_value + 2),r4; vprintf.c 414; Peephole 221a remove redundant move clr c mov a,#0x03 subb a,0x0002 + _value; Peephole 108 removed ljmp by inverse jump logic jnc 00217$00326$: mov r2,#0x04; Peephole 132 changed ljmp to sjmp sjmp 00218$00217$: mov r2,(_value + 0x0002)00218$: mov a,r2; Peephole 180 changed mov to clr; Peephole 186 optimized movc sequence mov dptr,#_memory_id movc a,@a+dptr mov r2,a mov dpl,r2 push ar5 push ar6 lcall _output_char pop ar6 pop ar5; vprintf.c 415 mov dpl,#0x3A push ar5 push ar6 lcall _output_char pop ar6 pop ar5; vprintf.c 416 mov dpl,#0x30 push ar5 push ar6 lcall _output_char pop ar6 pop ar5; vprintf.c 417 mov dpl,#0x78 push ar5 push ar6 lcall _output_char pop ar6 pop ar5; vprintf.c 418; Peephole 221a remove redundant move mov a,0x0002 + _value; Peephole 110 removed ljmp by inverse jump logic jz 00144$00327$:; vprintf.c 419; Peephole 221a remove redundant move mov a,0x0002 + _value cjne a,#0x03,00328$; Peephole 132 changed ljmp to sjmp sjmp 00144$00328$:; vprintf.c 420; Peephole 221a remove redundant move mov dpl,0x0001 + _value push ar5 push ar6 lcall _output_2digits pop ar6 pop ar500144$:; vprintf.c 421 mov dpl,_value push ar5 push ar6 lcall _output_2digits pop ar6 pop ar5; vprintf.c 423; vprintf.c 427; Peephole 132 changed ljmp to sjmp sjmp 00153$00146$: setb _vsprintf_signed_argument_1_1; vprintf.c 428 mov dptr,#_radix mov a,#0x0A movx @dptr,a; vprintf.c 429; vprintf.c 432; Peephole 132 changed ljmp to sjmp sjmp 00153$00148$: mov dptr,#_radix mov a,#0x08 movx @dptr,a; vprintf.c 433; vprintf.c 436; Peephole 132 changed ljmp to sjmp sjmp 00153$00149$: mov dptr,#_radix mov a,#0x0A movx @dptr,a; vprintf.c 437; vprintf.c 440; Peephole 132 changed ljmp to sjmp sjmp 00153$00150$: mov dptr,#_radix mov a,#0x10 movx @dptr,a; vprintf.c 441; vprintf.c 444; Peephole 132 changed ljmp to sjmp sjmp 00153$00151$: setb _vsprintf_float_argument_1_1; vprintf.c 445; vprintf.c 449; Peephole 132 changed ljmp to sjmp sjmp 00153$00152$: mov dpl,r6 push ar5 lcall _output_char pop ar5; vprintf.c 45100153$:; vprintf.c 453 jb _vsprintf_float_argument_1_1,00329$ ljmp 00204$00329$:; vprintf.c 454 mov dptr,#_vsprintf_PARM_3 movx a,@dptr; Peephole 105 removed redundant mov mov r2,a add a,#0xfc; Peephole 100 removed redundant mov mov r0,a mov dptr,#_vsprintf_PARM_3 movx @dptr,a mov ar2,@r0 inc r0 mov ar3,@r0 inc r0 mov ar4,@r0 inc r0 mov ar6,@r0 dec r0 dec r0 dec r0 mov _value,r2 mov (_value + 1),r3 mov (_value + 2),r4 mov (_value + 3),r6; vprintf.c 456 mov r2,#__str_0 mov r3,#(__str_0 >> 8) mov r4,#0x02 mov _value,r2 mov (_value + 1),r3 mov (_value + 2),r4; vprintf.c 45700154$: mov r2,_value mov r3,(_value + 1) mov r4,(_value + 2) mov a,#0x01 add a,r2 mov r6,a; Peephole 180 changed mov to clr clr a addc a,r3 mov r7,a mov ar0,r4 mov _value,r6 mov (_value + 1),r7 mov (_value + 2),r0 mov dpl,r2 mov dph,r3 mov b,r4 lcall __gptrget; Peephole 105 removed redundant mov mov r2,a jnz 00330$ ljmp 00209$00330$:; vprintf.c 458 mov dpl,r2 push ar5 lcall _output_char pop ar5; Peephole 132 changed ljmp to sjmp sjmp 00154$00204$:; vprintf.c 469 mov dptr,#_radix movx a,@dptr mov r2,a cjne r2,#0x00,00331$ ljmp 00209$00331$:; vprintf.c 475; Peephole 111 removed ljmp by inverse jump logic jnb _vsprintf_char_argument_1_1,00165$00332$:; vprintf.c 477 mov dptr,#_vsprintf_PARM_3 movx a,@dptr; Peephole 105 removed redundant mov mov r2,a dec a; Peephole 100 removed redundant mov mov r0,a mov dptr,#_vsprintf_PARM_3 movx @dptr,a mov ar2,@r0 mov a,r2 rlc a subb a,acc mov r3,a mov r4,a mov r6,a mov _value,r2 mov (_value + 1),r3 mov (_value + 2),r4 mov (_value + 3),r6; vprintf.c 478 jnb _vsprintf_signed_argument_1_1,00333$ ljmp 00166$00333$:; vprintf.c 480 mov (_value + 0x0001),#0x00; vprintf.c 481 mov (_value + 0x0002),#0x00; vprintf.c 482 mov (_value + 0x0003),#0x00 ljmp 00166$00165$:; vprintf.c 485; Peephole 111 removed ljmp by inverse jump logic jnb _vsprintf_long_argument_1_1,00162$00334$:; vprintf.c 487 mov dptr,#_vsprintf_PARM_3 movx a,@dptr; Peephole 105 removed redundant mov mov r2,a add a,#0xfc; Peephole 100 removed redundant mov mov r0,a mov dptr,#_vsprintf_PARM_3 movx @dptr,a mov ar2,@r0 inc r0 mov ar3,@r0 inc r0 mov ar4,@r0 inc r0 mov ar6,@r0 dec r0 dec r0 dec r0 mov _value,r2 mov (_value + 1),r3 mov (_value + 2),r4 mov (_value + 3),r6; Peephole 132 changed ljmp to sjmp sjmp 00166$00162$:; vprintf.c 491 mov dptr,#_vsprintf_PARM_3 movx a,@dptr; Peephole 105 removed redundant mov mov r2,a add a,#0xfe; Peephole 100 removed redundant mov mov r0,a mov dptr,#_vsprintf_PARM_3 movx @dptr,a mov ar2,@r0 inc r0 mov ar3,@r0 dec r0 mov a,r3 rlc a subb a,acc mov r4,a mov r6,a mov _value,r2 mov (_value + 1),r3 mov (_value + 2),r4 mov (_value + 3),r6; vprintf.c 492; Peephole 112 removed ljmp by inverse jump logic jb _vsprintf_signed_argument_1_1,00166$00335$:; vprintf.c 494 mov (_value + 0x0002),#0x00; vprintf.c 495 mov (_value + 0x0003),#0x0000166$:; vprintf.c 499; Peephole 111 removed ljmp by inverse jump logic jnb _vsprintf_signed_argument_1_1,00171$00336$:; vprintf.c 501 mov a,(_value + 3); Peephole 111 removed ljmp by inverse jump logic jnb acc.7,00168$00337$:; vprintf.c 502 clr c clr a subb a,_value mov r2,a clr a subb a,(_value + 1) mov r3,a clr a subb a,(_value + 2) mov r4,a clr a subb a,(_value + 3) mov r6,a mov _value,r2 mov (_value + 1),r3 mov (_value + 2),r4 mov (_value + 3),r6; Peephole 132 changed ljmp to sjmp sjmp 00171$00168$:; vprintf.c 504 clr _vsprintf_signed_argument_1_100171$:; vprintf.c 507 mov dptr,#_vsprintf_length_1_1; Peephole 180 changed mov to clr clr a movx @dptr,a; vprintf.c 508 setb _lsd; vprintf.c 51100175$:; vprintf.c 512 mov (_value + 0x0004),#0x00; vprintf.c 513 push ar5 lcall _calculate_digit pop ar5; vprintf.c 527 jb _lsd,1$ pop b ; b = <lsd> mov a,_value+4 ; a = <msd> swap a orl b,a ; b = <msd><lsd> push b sjmp 2$1$: mov a,_value+4 ; a = <lsd> push acc2$:; vprintf.c 529 mov dptr,#_vsprintf_length_1_1 movx a,@dptr; Peephole 185 changed order of increment (acc incremented also!) inc a mov r2,a mov dptr,#_vsprintf_length_1_1 mov a,r2 movx @dptr,a; vprintf.c 530; Peephole 167 removed redundant bit moves (c not set to _lsd) cpl _lsd ; vprintf.c 531 mov a,_value; Peephole 162 removed sjmp by inverse jump logic jz 00339$00338$:; Peephole 132 changed ljmp to sjmp sjmp 00175$00339$:; Peephole 221a remove redundant move mov a,0x0001 + _value; Peephole 162 removed sjmp by inverse jump logic jz 00341$00340$:; Peephole 132 changed ljmp to sjmp sjmp 00175$00341$:; vprintf.c 532; Peephole 221a remove redundant move mov a,0x0002 + _value; Peephole 162 removed sjmp by inverse jump logic jz 00343$00342$:; Peephole 132 changed ljmp to sjmp sjmp 00175$00343$:; Peephole 221a remove redundant move mov a,0x0003 + _value; Peephole 162 removed sjmp by inverse jump logic jz 00345$00344$:; Peephole 132 changed ljmp to sjmp sjmp 00175$00345$:; vprintf.c 534 mov dptr,#_vsprintf_width_1_1 movx a,@dptr mov r3,a; Peephole 132 changed ljmp to sjmp; Peephole 199 optimized misc jump sequence cjne r3,#0x00,00179$;00346$:; Peephole 200 removed redundant sjmp00347$:; vprintf.c 539 mov dptr,#_vsprintf_width_1_1 mov a,#0x01 movx @dptr,a00179$:; vprintf.c 543; Peephole 112 removed ljmp by inverse jump logic jb _vsprintf_zero_padding_1_1,00184$00348$:; vprintf.c 545 mov a,#0x01 add a,r2 mov r3,a mov dptr,#_vsprintf_width_1_1 movx a,@dptr mov r4,a00180$: clr c mov a,r3 subb a,r4 clr a rlc a mov r3,a mov dptr,#_vsprintf_width_1_1 mov a,r4 movx @dptr,a mov a,r3; Peephole 110 removed ljmp by inverse jump logic jz 00184$00349$:; vprintf.c 547 mov dpl,#0x20 push ar2 push ar4 push ar5 lcall _output_char pop ar5 pop ar4 pop ar2; vprintf.c 548 dec r4; Peephole 132 changed ljmp to sjmp sjmp 00180$00184$:; vprintf.c 552; Peephole 111 removed ljmp by inverse jump logic jnb _vsprintf_signed_argument_1_1,00193$00350$:; vprintf.c 554 mov dpl,#0x2D push ar2 push ar5 lcall _output_char pop ar5 pop ar2; vprintf.c 556 mov dptr,#_vsprintf_width_1_1 movx a,@dptr; Peephole 105 removed redundant mov mov r3,a dec a mov dptr,#_vsprintf_width_1_1 movx @dptr,a; Peephole 132 changed ljmp to sjmp sjmp 00283$00193$:; vprintf.c 558 cjne r2,#0x00,00351$; Peephole 132 changed ljmp to sjmp sjmp 00283$00351$:; vprintf.c 561; Peephole 111 removed ljmp by inverse jump logic jnb _vsprintf_prefix_sign_1_1,00188$00352$:; vprintf.c 563 mov dpl,#0x2B push ar5 lcall _output_char pop ar5; vprintf.c 565 mov dptr,#_vsprintf_width_1_1 movx a,@dptr; Peephole 105 removed redundant mov mov r2,a dec a mov dptr,#_vsprintf_width_1_1 movx @dptr,a; Peephole 132 changed ljmp to sjmp sjmp 00283$00188$:; vprintf.c 567; Peephole 111 removed ljmp by inverse jump logic jnb _vsprintf_prefix_space_1_1,00283$00353$:; vprintf.c 569 mov dpl,#0x20 push ar5 lcall _output_char pop ar5; vprintf.c 571 mov dptr,#_vsprintf_width_1_1 movx a,@dptr; Peephole 105 removed redundant mov mov r2,a dec a mov dptr,#_vsprintf_width_1_1 movx @dptr,a; vprintf.c 57600283$: mov dptr,#_vsprintf_length_1_1 movx a,@dptr mov r2,a mov dptr,#_vsprintf_width_1_1 movx a,@dptr mov r3,a00195$: mov ar4,r3 dec r3 clr c mov a,r2 subb a,r4; Peephole 108 removed ljmp by inverse jump logic jnc 00285$00354$:; vprintf.c 578; Peephole 111 removed ljmp by inverse jump logic jnb _vsprintf_zero_padding_1_1,00219$00355$: mov r4,#0x30; Peephole 132 changed ljmp to sjmp sjmp 00220$00219$: mov r4,#0x2000220$: mov dpl,r4 push ar2 push ar3 push ar5 lcall _output_char pop ar5 pop ar3 pop ar2; vprintf.c 582; Peephole 132 changed ljmp to sjmp sjmp 00195$00285$:00198$: mov ar3,r2 dec r2 mov a,r3 jnz 00356$ ljmp 00209$00356$:; vprintf.c 584; Peephole 167 removed redundant bit moves (c not set to _lsd) cpl _lsd ; vprintf.c 599 jb _lsd,3$ pop acc ; a = <msd><lsd> nop ; to disable the "optimizer" push acc swap a anl a,#0x0F ; a = <msd> sjmp 4$3$: pop acc anl a,#0x0F ; a = <lsd>4$: mov _value+4,a; vprintf.c 601; Peephole 221a remove redundant move mov dpl,0x0004 + _value push ar2 push ar5 lcall _output_digit pop ar5 pop ar2; Peephole 132 changed ljmp to sjmp sjmp 00198$00207$:; vprintf.c 608 mov dpl,r5 lcall _output_char ljmp 00209$00211$:; vprintf.c 614; Peephole 111 removed ljmp by inverse jump logic jnb _output_to_string,00213$00357$:; vprintf.c 615 mov dpl,#0x00 lcall _output_char; vprintf.c 616 mov dptr,#_charsOutputted movx a,@dptr mov r2,a inc dptr movx a,@dptr mov r3,a dec r2 cjne r2,#0xff,00358$ dec r300358$: mov dpl,r2 mov dph,r3; Peephole 132 changed ljmp to sjmp sjmp 00215$00213$:; vprintf.c 618 mov dptr,#_charsOutputted movx a,@dptr mov r2,a inc dptr movx a,@dptr mov r3,a mov dpl,r2 mov dph,r300215$: ret;------------------------------------------------------------;Allocation info for local variables in function 'vprintf';------------------------------------------------------------;ap Allocated to in memory with name '_vprintf_PARM_2';format Allocated to in memory with name '_vprintf_format_1_1'; vprintf.c 624; -----------------------------------------; function vprintf; -----------------------------------------_vprintf:; vprintf.c 626 push b push dph push dpl mov dptr,#_vprintf_format_1_1 pop acc movx @dptr,a pop acc inc dptr movx @dptr,a pop acc inc dptr movx @dptr,a mov dptr,#_vprintf_format_1_1 movx a,@dptr mov r2,a inc dptr movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a mov dptr,#_vprintf_PARM_2 movx a,@dptr mov r5,a mov dptr,#_vsprintf_PARM_2 mov a,r2 movx @dptr,a inc dptr mov a,r3 movx @dptr,a inc dptr mov a,r4 movx @dptr,a mov dptr,#_vsprintf_PARM_3 mov a,r5 movx @dptr,a; Peephole 181 used 16 bit load of dptr mov dptr,#0x0000 mov b,#0x00 lcall _vsprintf; Peephole 151 removed misc moves via dph, dpl before return00101$: ret .area CSEG (CODE)_memory_id: .ascii "IXCP-" .db 0x00__str_0: .ascii "<NO FLOAT>" .db 0x00
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -