📄 vprintf.asm
字号:
push ar2 push ar3 push ar7 mov dpl,#0x2D lcall _output_char pop ar7 pop ar3 pop ar2; genGoto ; genLabel ; Peephole 132 changed ljmp to sjmp sjmp 00154$00150$:; vprintf.c 232; genIfx mov dptr,#_output_float_PARM_6 movx a,@dptr; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00147$00230$:; genCall push ar2 push ar3 push ar7 mov dpl,#0x2B lcall _output_char pop ar7 pop ar3 pop ar2; genGoto ; genLabel ; Peephole 132 changed ljmp to sjmp sjmp 00154$00147$:; vprintf.c 233; genIfx mov dptr,#_output_float_PARM_7 movx a,@dptr; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00154$00231$:; genCall push ar2 push ar3 push ar7 mov dpl,#0x20 lcall _output_char pop ar7 pop ar3 pop ar2; genLabel 00154$:; vprintf.c 237; genMinus mov a,r7 dec a mov r4,a; genAssign ; genAssign: resultIsFar = TRUE mov ar3,r4; vprintf.c 238; genAssign ; genAssign: resultIsFar = TRUE; genLabel 00156$:; vprintf.c 239; genPlus mov a,r3 add a,#_output_float_fpBuffer_1_1 mov r4,a; Peephole 180 changed mov to clr clr a addc a,#(_output_float_fpBuffer_1_1 >> 8) mov r5,a; Peephole 180 changed mov to clr clr a addc a,#(_output_float_fpBuffer_1_1 >> 16) mov r6,a; genPointerGet ; genFarPointerGet mov dpl,r4 mov dph,r5 mov dpx,r6 movx a,@dptr mov r4,a; genCall push ar2 push ar3 push ar7 mov dpl,r4 lcall _output_char pop ar7 pop ar3 pop ar2; vprintf.c 240; genAssign ; genAssign: resultIsFar = FALSE mov ar4,r3; genMinus dec r3; genIfx mov a,r4; genIfxJump ; Peephole 109 removed ljmp by inverse jump logic jnz 00156$00232$:; vprintf.c 243; genIfx mov dptr,#_output_float_PARM_3 movx a,@dptr; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00163$00233$:; vprintf.c 244; genCall push ar2 push ar7 mov dpl,#0x2E lcall _output_char pop ar7 pop ar2; vprintf.c 245; genAssign ; genAssign: resultIsFar = TRUE mov ar3,r7; vprintf.c 246; genAssign ; genAssign: resultIsFar = TRUE; genLabel 00159$:; genAssign mov dptr,#_output_float_PARM_3; genAssign: resultIsFar = FALSE movx a,@dptr; genMinus ; Peephole 105 removed redundant mov mov r4,a dec a; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_output_float_PARM_3 movx @dptr,a; genIfx mov a,r4; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00163$00234$:; vprintf.c 247; genAssign ; genAssign: resultIsFar = FALSE mov ar4,r3; genPlus inc r3; did genPlusIncr; genPlus mov a,r4 add a,#_output_float_fpBuffer_1_1 mov r4,a; Peephole 180 changed mov to clr clr a addc a,#(_output_float_fpBuffer_1_1 >> 8) mov r5,a; Peephole 180 changed mov to clr clr a addc a,#(_output_float_fpBuffer_1_1 >> 16) mov r6,a; genPointerGet ; genFarPointerGet mov dpl,r4 mov dph,r5 mov dpx,r6 movx a,@dptr mov r4,a; genCall push ar2 push ar3 mov dpl,r4 lcall _output_char pop ar3 pop ar2; genGoto ; genLabel ; Peephole 132 changed ljmp to sjmp sjmp 00159$00163$:; vprintf.c 250; genIfx mov dptr,#_output_float_PARM_4 movx a,@dptr; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00170$00235$:; genCmpGt mov dptr,#_output_float_PARM_2; genCmp clr c; genCmp #1: 0/0/0 mov a,r2; genCmp #2; genCmp #4; genCmp #4.1 xch a, b movx a,@dptr xch a, b subb a,b; genIfxJump ; Peephole 108 removed ljmp by inverse jump logic jnc 00170$00236$:; vprintf.c 251; genLabel 00164$:; genAssign mov dptr,#_output_float_PARM_2; genAssign: resultIsFar = FALSE movx a,@dptr; genMinus ; Peephole 105 removed redundant mov mov r3,a dec a; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_output_float_PARM_2 movx @dptr,a; genCmpGt ; genCmp clr c; genCmp #1: 0/0/0 mov a,r2; genCmp #2; genCmp #4; genCmp #4.2 subb a,r3; genIfxJump ; Peephole 108 removed ljmp by inverse jump logic jnc 00170$00237$:; vprintf.c 252; genCall push ar2 mov dpl,#0x20 lcall _output_char pop ar2; genGoto ; genLabel ; Peephole 132 changed ljmp to sjmp sjmp 00164$00170$:; genEndFunction ret; vprintf.c 259; genFunction ; -----------------------------------------; function vsprintf; -----------------------------------------_vsprintf:; vprintf.c 0; genReceive mov r2,dpl mov r3,dph mov r4,dpx mov r5,b; vprintf.c 276; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_charsOutputted clr a movx @dptr,a inc dptr movx @dptr,a; vprintf.c 278; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_output_ptr mov a,r2 movx @dptr,a inc dptr mov a,r3 movx @dptr,a inc dptr mov a,r4 movx @dptr,a inc dptr mov a,r5 movx @dptr,a; vprintf.c 279; genIfx ; toBoolean: generic ptr special case. mov a,r2 orl a,r3 orl a,r4; genIfxJump ; Peephole 109 removed ljmp by inverse jump logic jnz 00102$00284$:; vprintf.c 281; genAssign ; genAssign: resultIsFar = FALSE clr _output_to_string; genGoto ; genLabel ; Peephole 132 changed ljmp to sjmp sjmp 00103$00102$:; vprintf.c 285; genAssign ; genAssign: resultIsFar = FALSE setb _output_to_string; genLabel 00103$:; vprintf.c 289; genAssign mov dptr,#_vsprintf_PARM_2; genAssign: resultIsFar = FALSE movx a,@dptr mov r2,a inc dptr movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a; genCmpEq ; gencjneshort; cjneshort: generic ptr special case. mov a,r2; Peephole 132 changed ljmp to sjmp; Peephole 195 optimized misc jump sequence cjne a,#0x00,00225$ mov a,r3 cjne a,#0x00,00225$ mov a,r4 cjne a,#0x00,00225$;00285$:; Peephole 200 removed redundant sjmp00286$:; vprintf.c 290; genCast mov dptr,#_vsprintf_PARM_2 mov a,#__str_0 movx @dptr,a inc dptr mov a,#(__str_0 >> 8) movx @dptr,a inc dptr mov a,#(__str_0 >> 16) movx @dptr,a inc dptr mov a,#0x02 movx @dptr,a; vprintf.c 294; genLabel 00225$:; genLabel 00208$:; genAssign mov dptr,#_vsprintf_PARM_2; genAssign: resultIsFar = FALSE movx a,@dptr mov r2,a inc dptr movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a; genPointerGet ; genGenPointerGet mov dpl,r2 mov dph,r3 mov dpx,r4 mov b,r5 lcall __gptrget mov r6,a; genPlus inc r2 cjne r2,#0x00,00287$ inc r3 cjne r3,#0x00,00287$ inc r400287$:; did genPlusIncr; genAssign ; genAssign: resultIsFar = TRUE 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 inc dptr mov a,r5 movx @dptr,a; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_vsprintf_c_1_1 mov a,r6 movx @dptr,a; genIfx mov a,r6; genIfxJump jnz 00288$ ljmp 00210$00288$:; vprintf.c 296; genCmpEq mov dptr,#_vsprintf_c_1_1; gencjneshort movx a,@dptr cjne a,#0x25,00289$ sjmp 00290$00289$: ljmp 00206$00290$:; vprintf.c 298; genAssign ; genAssign: resultIsFar = FALSE clr _vsprintf_left_justify_1_1; vprintf.c 299; genAssign ; genAssign: resultIsFar = FALSE clr _vsprintf_zero_padding_1_1; vprintf.c 300; genAssign ; genAssign: resultIsFar = FALSE clr _vsprintf_prefix_sign_1_1; vprintf.c 301; genAssign ; genAssign: resultIsFar = FALSE clr _vsprintf_prefix_space_1_1; vprintf.c 302; genAssign ; genAssign: resultIsFar = FALSE clr _vsprintf_signed_argument_1_1; vprintf.c 303; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_radix; Peephole 180 changed mov to clr clr a movx @dptr,a; vprintf.c 304; genAssign ; genAssign: resultIsFar = FALSE clr _vsprintf_char_argument_1_1; vprintf.c 305; genAssign ; genAssign: resultIsFar = FALSE clr _vsprintf_long_argument_1_1; vprintf.c 306; genAssign ; genAssign: resultIsFar = FALSE clr _vsprintf_float_argument_1_1; vprintf.c 307; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_vsprintf_width_1_1; Peephole 180 changed mov to clr clr a movx @dptr,a; vprintf.c 308; genAssign ; genAssign: resultIsFar = TRUE mov r0,#0xFF; vprintf.c 312; genAssign ; genAssign: resultIsFar = FALSE; genLabel 00106$:; genPointerGet ; genGenPointerGet mov dpl,r2 mov dph,r3 mov dpx,r4 mov b,r5 lcall __gptrget mov r1,a; genPlus inc r2 cjne r2,#0x00,00291$ inc r3 cjne r3,#0x00,00291$ inc r400291$:; did genPlusIncr; genAssign ; genAssign: resultIsFar = TRUE 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 inc dptr mov a,r5 movx @dptr,a; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_vsprintf_c_1_1 mov a,r1 movx @dptr,a; vprintf.c 314; genCmpEq mov dptr,#_vsprintf_c_1_1; gencjneshort movx a,@dptr; Peephole 132 changed ljmp to sjmp; Peephole 199 optimized misc jump sequence cjne a,#0x25,00108$;00292$:; Peephole 200 removed redundant sjmp00293$:; vprintf.c 315; genCall push ar2 push ar3 push ar4 push ar5 push ar0 mov dptr,#_vsprintf_c_1_1 movx a,@dptr mov dpl,a lcall _output_char pop ar0 pop ar5 pop ar4 pop ar3 pop ar2; vprintf.c 316; genGoto ljmp 00208$; genLabel 00108$:; vprintf.c 319; genAssign mov dptr,#_vsprintf_c_1_1; genAssign: resultIsFar = TRUE; genFarFarAssign (1 byte case) movx a,@dptr mov r1,a; genCall push ar2 push ar3 push ar4 push ar5 push ar0 mov dpl,r1 lcall _isdigit mov r1,dpl pop ar0 pop ar5 pop ar4 pop ar3 pop ar2; genIfx mov a,r1; genIfxJump jnz 00294$ ljmp 00115$00294$:; vprintf.c 320; genCmpEq ; gencjneshort mov a,r0 cjne a,#0xFF,00295$ sjmp 00296$00295$: ljmp 00112$00296$:; vprintf.c 321; genMult mov dptr,#_vsprintf_width_1_1 mov dps, #0x01 mov dptr, #_vsprintf_sloc0_1_0 dec dps mov b,#0x0A movx a,@dptr mul ab mov dps, #0x01 movx @dptr,a; Peephole 220a removed bogus DPS set mov dps, #0x01 inc dptr mov a,b movx @dptr,a mov dps, #0x00; genMinus mov dptr,#_vsprintf_c_1_1 movx a,@dptr add a,#0xd0; genCast ; Peephole 100 removed redundant mov mov r1,a mov dptr,#_vsprintf_sloc1_1_0 movx @dptr,a mov a,r1 rlc a subb a,acc inc dptr movx @dptr,a; genPlus mov dptr,#_vsprintf_sloc1_1_0 mov dps, #0x01 mov dptr, #_vsprintf_sloc0_1_0 dec dps; genPlus: must push result: 3 ops in far space movx a,@dptr xch a, ap inc dps movx a,@dptr add a, ap push acc dec dps inc dptr movx a,@dptr xch a, ap inc dps inc dptr movx a,@dptr addc a, ap push acc mov dps, #0x00 mov dptr,#_vsprintf_sloc2_1_0 pop acc inc dptr movx @dptr,a pop acc lcall __decdptr movx @dptr,a; genCast mov dptr,#_vsprintf_sloc2_1_0 mov dps, #0x01 mov dptr, #_vsprintf_width_1_1 dec dps movx a,@dptr inc dps movx @dptr,a mov dps, #0x00; vprintf.c 322; genCmpEq mov dptr,#_vsprintf_width_1_1; gencjneshort movx a,@dptr cjne a,#0x00,00297$ sjmp 00298$00297$: ljmp 00106$00298$:; vprintf.c 324; genAssign ; genAssign: resultIsFar = FALSE setb _vsprintf_zero_padding_1_1; genGoto ljmp 00106$; genLabel 00112$:; vprintf.c 327; genMult mov dptr,#_vsprintf_sloc2_1_0; signed clr F0 mov a,r0 jnb acc.7,00299$ setb F0 cpl a inc a00299$: mov b,#0x0a mul ab jnb F0,00300$ cpl a add a,#1 xch a,b cpl a addc a,#0 xch a,b00300$: movx @dptr,a inc dptr mov a,b movx @dptr,a; genMinus mov dptr,#_vsprintf_c_1_1 movx a,@dptr add a,#0xd0; genCast ; Peephole 100 removed redundant mov mov r1,a mov dptr,#_vsprintf_sloc1_1_0 movx @dptr,a mov a,r1 rlc a subb a,acc inc dptr movx @dptr,a; genPlus mov dptr,#_vsprintf_sloc1_1_0 mov dps, #0x01 mov dptr, #_vsprintf_sloc2_1_0 dec dps; genPlus: must push result: 3 ops in far space movx a,@dptr xch a, ap inc dps movx a,@dptr add a, ap push acc dec dps inc dptr movx a,@dptr xch a, ap inc dps inc dptr movx a,@dptr addc a, ap push acc mov dps, #0x00 mov dptr,#_vsprintf_sloc0_1_0 pop acc inc dptr movx @dptr,a pop acc lcall __decdptr movx @dptr,a; genCast mov dptr,#_vsprintf_sloc0_1_0 movx a,@dptr mov r0,a; vprintf.c 329; genGoto ljmp 00106$; genLabel 00115$:; vprintf.c 332; genCmpEq mov dptr,#_vsprintf_c_1_1; gencjneshort movx a,@dptr; Peephole 132 changed ljmp to sjmp; Peephole 199 optimized misc jump sequence cjne a,#0x2E,00119$;00301$:; Peephole 200 removed redundant sjmp00302$:; vprintf.c 333; genAssign ; genAssign: resultIsFar = TRUE mov r0,#0x00; vprintf.c 336; genGoto ljmp 00106$; genLabel 00119$:; vprintf.c 339; genAssign mov dptr,#_vsprintf_c_1_1; genAssign: resultIsFar = TRUE; genFarFarAssign (1 byte case) movx a,@dptr mov r1,a; genCall push ar2 push ar3 push ar4 push ar5 push ar0 mov dpl,r1 lcall _islower mov r1,dpl pop ar0 pop ar5 pop ar4 pop ar3 pop ar2; genAssign ; genAssign: resultIsFar = FALSE mov a,r1 clr c jz 00303$ cpl c00303$: mov _lower_case,c; vprintf.c 340; genIfx ; genIfxJump ; Peephole 111 removed ljmp by inverse jump logic jnb _lower_case,00121$00304$:; vprintf.c 342; genAssign mov dptr,#_vsprintf_c_1_1; genAssign: resultIsFar = TRUE; genFarFarAssign (1 byte case) movx a,@dptr mov r1,a; genAnd mov dptr,#_vsprintf_c_1_1; better literal AND. mov a,r1 anl a, #0xDF movx @dptr,a
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -