vprintf.asm
来自「sdcc的win版本.是small device c compiler的意思.支」· 汇编 代码 · 共 1,800 行 · 第 1/3 页
ASM
1,800 行
; Peephole 105 removed redundant mov
mov r4,a
rlc a
subb a,acc
mov r7,a
; genPlus
mov a,r4
add a,r2
mov r2,a
mov a,r7
addc a,r3
mov r3,a
; genCast
mov _vsprintf_decimals_1_1,r2
; vprintf.c 352
ljmp 00104$
00113$:
; vprintf.c 355
; genCmpEq
mov a,_vsprintf_c_1_1
; Peephole 132 changed ljmp to sjmp
; Peephole 199 optimized misc jump sequence
cjne a,#0x2E,00117$
;00302$:
; Peephole 200 removed redundant sjmp
00303$:
; vprintf.c 356
; genAssign
mov _vsprintf_decimals_1_1,#0x00
; vprintf.c 359
ljmp 00104$
00117$:
; vprintf.c 362
; genCall
mov dpl,_vsprintf_c_1_1
push ar5
lcall _islower
mov a,dpl
pop ar5
; genAssign
clr c
jz 00304$
cpl c
00304$:
mov _lower_case,c
; vprintf.c 363
; genIfx
; genIfxJump
; Peephole 111 removed ljmp by inverse jump logic
jnb _lower_case,00119$
00305$:
; vprintf.c 365
; genAnd
anl _vsprintf_c_1_1,#0xDF
00119$:
; vprintf.c 368
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x20,00306$
ljmp 00122$
00306$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x2B,00307$
; Peephole 132 changed ljmp to sjmp
sjmp 00121$
00307$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x2D,00308$
; Peephole 132 changed ljmp to sjmp
sjmp 00120$
00308$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x42,00309$
; Peephole 132 changed ljmp to sjmp
sjmp 00123$
00309$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x43,00310$
; Peephole 132 changed ljmp to sjmp
sjmp 00125$
00310$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x44,00311$
ljmp 00146$
00311$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x46,00312$
ljmp 00151$
00312$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x49,00313$
ljmp 00146$
00313$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x4C,00314$
; Peephole 132 changed ljmp to sjmp
sjmp 00124$
00314$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x4F,00315$
ljmp 00148$
00315$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x50,00316$
ljmp 00142$
00316$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x53,00317$
; Peephole 132 changed ljmp to sjmp
sjmp 00126$
00317$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x55,00318$
ljmp 00149$
00318$:
; genCmpEq
mov a,_vsprintf_c_1_1
cjne a,#0x58,00319$
ljmp 00150$
00319$:
ljmp 00152$
; vprintf.c 371
00120$:
; genAssign
setb _vsprintf_left_justify_1_1
; vprintf.c 372
ljmp 00104$
; vprintf.c 374
00121$:
; genAssign
setb _vsprintf_prefix_sign_1_1
; vprintf.c 375
ljmp 00104$
; vprintf.c 377
00122$:
; genAssign
setb _vsprintf_prefix_space_1_1
; vprintf.c 378
ljmp 00104$
; vprintf.c 380
00123$:
; genAssign
setb _vsprintf_char_argument_1_1
; vprintf.c 381
ljmp 00104$
; vprintf.c 383
00124$:
; genAssign
setb _vsprintf_long_argument_1_1
; vprintf.c 384
ljmp 00104$
; vprintf.c 387
00125$:
; genMinus
; genMinusDec
mov a,_vsprintf_PARM_3
add a,#0xfe
mov r0,a
; genAssign
mov _vsprintf_PARM_3,r0
; genPointerGet
; genNearPointerGet
mov ar2,@r0
inc r0
mov ar3,@r0
dec r0
; genCast
mov dpl,r2
; genCall
push ar5
lcall _output_char
pop ar5
; vprintf.c 388
ljmp 00153$
; vprintf.c 391
00126$:
; genMinus
; genMinusDec
mov a,_vsprintf_PARM_3
add a,#0xfd
mov r0,a
; genAssign
mov _vsprintf_PARM_3,r0
; genPointerGet
; genNearPointerGet
mov ar2,@r0
inc r0
mov ar3,@r0
inc r0
mov ar4,@r0
dec r0
dec r0
; genPointerSet
; genNearPointerSet
; genDataPointerSet
mov _value,r2
mov (_value + 1),r3
mov (_value + 2),r4
; vprintf.c 401
; genCall
mov dpl,r2
mov dph,r3
mov b,r4
push ar5
lcall _strlen
mov r2,dpl
mov r3,dph
pop ar5
; genCast
; vprintf.c 403
; genIfx
; genIfxJump
; Peephole 112 removed ljmp by inverse jump logic
jb _vsprintf_left_justify_1_1,00133$
00320$:
; genCmpLt
; genCmp
clr c
mov a,r2
subb a,r5
; genIfxJump
; Peephole 108 removed ljmp by inverse jump logic
jnc 00133$
00321$:
; vprintf.c 405
; genMinus
clr c
mov a,r5
subb a,r2
mov r5,a
; vprintf.c 406
; genAssign
mov ar3,r5
00127$:
; genAssign
mov ar4,r3
; genMinus
; genMinusDec
dec r3
; genAssign
mov ar5,r3
; genCmpEq
cjne r4,#0x00,00322$
; Peephole 132 changed ljmp to sjmp
sjmp 00133$
00322$:
; vprintf.c 408
; genCall
mov dpl,#0x20
push ar2
push ar3
push ar5
lcall _output_char
pop ar5
pop ar3
pop ar2
; vprintf.c 412
; Peephole 132 changed ljmp to sjmp
sjmp 00127$
00133$:
; genPointerGet
; genNearPointerGet
; genDataPointerGet
mov r3,_value
mov r4,(_value + 1)
mov r7,(_value + 2)
; genPointerGet
; genGenPointerGet
mov dpl,r3
mov dph,r4
mov b,r7
lcall __gptrget
; genIfx
; Peephole 105 removed redundant mov
mov r3,a
; genIfxJump
; Peephole 110 removed ljmp by inverse jump logic
jz 00135$
00323$:
; vprintf.c 413
; genPointerGet
; genNearPointerGet
; genDataPointerGet
mov r3,_value
mov r4,(_value + 1)
mov r7,(_value + 2)
; genPlus
; genPlusIncr
mov a,#0x01
add a,r3
mov r0,a
; Peephole 180 changed mov to clr
clr a
addc a,r4
mov r1,a
mov ar6,r7
; genPointerSet
; genNearPointerSet
; genDataPointerSet
mov _value,r0
mov (_value + 1),r1
mov (_value + 2),r6
; genPointerGet
; genGenPointerGet
mov dpl,r3
mov dph,r4
mov b,r7
lcall __gptrget
mov r3,a
; genCall
mov dpl,r3
push ar2
push ar5
lcall _output_char
pop ar5
pop ar2
; Peephole 132 changed ljmp to sjmp
sjmp 00133$
00135$:
; vprintf.c 415
; genIfx
; genIfxJump
jb _vsprintf_left_justify_1_1,00324$
ljmp 00153$
00324$:
; genCmpLt
; genCmp
clr c
mov a,r2
subb a,r5
; genIfxJump
jc 00325$
ljmp 00153$
00325$:
; vprintf.c 417
; genMinus
clr c
mov a,r5
subb a,r2
mov r5,a
; vprintf.c 418
; genAssign
mov ar3,r5
00136$:
; genAssign
mov ar4,r3
; genMinus
; genMinusDec
dec r3
; genAssign
mov ar5,r3
; genCmpEq
cjne r4,#0x00,00326$
ljmp 00153$
00326$:
; vprintf.c 420
; genCall
mov dpl,#0x20
push ar2
push ar3
push ar5
lcall _output_char
pop ar5
pop ar3
pop ar2
; vprintf.c 426
; Peephole 132 changed ljmp to sjmp
sjmp 00136$
00142$:
; genMinus
; genMinusDec
mov a,_vsprintf_PARM_3
add a,#0xfd
mov r0,a
; genAssign
mov _vsprintf_PARM_3,r0
; genPointerGet
; genNearPointerGet
mov ar3,@r0
inc r0
mov ar4,@r0
inc r0
mov ar6,@r0
dec r0
dec r0
; genPointerSet
; genNearPointerSet
; genDataPointerSet
mov _value,r3
mov (_value + 1),r4
mov (_value + 2),r6
; vprintf.c 437
; genAssign
; genCmpGt
; genCmp
clr c
mov a,#0x03
subb a,0x0002 + _value
; genIfxJump
; Peephole 108 removed ljmp by inverse jump logic
jnc 00217$
00327$:
; genAssign
mov r3,#0x04
; Peephole 132 changed ljmp to sjmp
sjmp 00218$
00217$:
; genPointerGet
; genNearPointerGet
; genDataPointerGet
mov r3,(_value + 0x0002)
00218$:
; genPlus
mov a,r3
; Peephole 180 changed mov to clr
; genPointerGet
; genCodePointerGet
; Peephole 186 optimized movc sequence
mov dptr,#_memory_id
movc a,@a+dptr
mov r3,a
; genCall
mov dpl,r3
push ar2
push ar5
lcall _output_char
pop ar5
pop ar2
; vprintf.c 438
; genCall
mov dpl,#0x3A
push ar2
push ar5
lcall _output_char
pop ar5
pop ar2
; vprintf.c 439
; genCall
mov dpl,#0x30
push ar2
push ar5
lcall _output_char
pop ar5
pop ar2
; vprintf.c 440
; genCall
mov dpl,#0x78
push ar2
push ar5
lcall _output_char
pop ar5
pop ar2
; vprintf.c 441
; genAssign
; genCmpEq
mov a,0x0002 + _value
; Peephole 110 removed ljmp by inverse jump logic
jz 00144$
00328$:
; vprintf.c 442
; genAssign
; genCmpEq
mov a,0x0002 + _value
cjne a,#0x03,00329$
; Peephole 132 changed ljmp to sjmp
sjmp 00144$
00329$:
; vprintf.c 443
; genPointerGet
; genNearPointerGet
; genDataPointerGet
mov dpl,(_value + 0x0001)
; genCall
push ar2
push ar5
lcall _output_2digits
pop ar5
pop ar2
00144$:
; vprintf.c 444
; genPointerGet
; genNearPointerGet
; genDataPointerGet
mov dpl,_value
; genCall
push ar2
push ar5
lcall _output_2digits
pop ar5
pop ar2
; vprintf.c 446
; vprintf.c 450
; Peephole 132 changed ljmp to sjmp
sjmp 00153$
00146$:
; genAssign
setb _vsprintf_signed_argument_1_1
; vprintf.c 451
; genAssign
mov _radix,#0x0A
; vprintf.c 452
; vprintf.c 455
; Peephole 132 changed ljmp to sjmp
sjmp 00153$
00148$:
; genAssign
mov _radix,#0x08
; vprintf.c 456
; vprintf.c 459
; Peephole 132 changed ljmp to sjmp
sjmp 00153$
00149$:
; genAssign
mov _radix,#0x0A
; vprintf.c 460
; vprintf.c 463
; Peephole 132 changed ljmp to sjmp
sjmp 00153$
00150$:
; genAssign
mov _radix,#0x10
; vprintf.c 464
; vprintf.c 467
; Peephole 132 changed ljmp to sjmp
sjmp 00153$
00151$:
; genAssign
setb _vsprintf_float_argument_1_1
; vprintf.c 468
; vprintf.c 472
; Peephole 132 changed ljmp to sjmp
sjmp 00153$
00152$:
; genCall
mov dpl,_vsprintf_c_1_1
push ar2
push ar5
lcall _output_char
pop ar5
pop ar2
; vprintf.c 474
00153$:
; vprintf.c 476
; genIfx
; genIfxJump
jb _vsprintf_float_argument_1_1,00330$
ljmp 00204$
00330$:
; vprintf.c 477
; genMinus
; genMinusDec
mov a,_vsprintf_PARM_3
add a,#0xfc
mov r0,a
; genAssign
mov _vsprintf_PARM_3,r0
; genPointerGet
; genNearPointerGet
mov ar3,@r0
inc r0
mov ar4,@r0
inc r0
mov ar6,@r0
inc r0
mov ar7,@r0
dec r0
dec r0
dec r0
; genPointerSet
; genNearPointerSet
; genDataPointerSet
mov _value,r3
mov (_value + 1),r4
mov (_value + 2),r6
mov (_value + 3),r7
; vprintf.c 479
; genPointerSet
; genNearPointerSet
; genDataPointerSet
mov _value,#__str_0
mov (_value + 1),#(__str_0 >> 8)
mov (_value + 2),#0x02
; vprintf.c 480
00154$:
; genPointerGet
; genNearPointerGet
; genDataPointerGet
mov r3,_value
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?