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 + -
显示快捷键?