⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vprintf.asm

📁 sdcc的win版本.是small device c compiler的意思.支持8051和z80.是一个遵循GPL的软件,不过他的库函数是LGPL的,允许商业联结,可以用在自己的软件里
💻 ASM
📖 第 1 页 / 共 3 页
字号:
00300$:
;	vprintf.c 347
;	genAssign
	setb	_vsprintf_zero_padding_1_1
	ljmp	00104$
00110$:
;	vprintf.c 350
;	genIpush
	push	ar5
;	genMult
;	genMultOneByte
	clr	F0
	mov	a,r7
	jnb	acc.7,00301$
	setb	F0
	cpl	a
	inc	a
00301$:
	mov	b,#0x0a
	mul	ab
	jnb	F0,00302$
	cpl	a
	add	a,#1
	xch	a,b
	cpl	a
	addc	a,#0
	xch	a,b
00302$:
	mov	r7,a
	mov	r0,b
;	genMinus
	mov	a,r6
	add	a,#0xd0
;	genCast
; Peephole 105   removed redundant mov
	mov  r1,a
	rlc	a
	subb	a,acc
	mov	r5,a
;	genPlus
	mov	a,r1
	add	a,r7
	mov	r7,a
	mov	a,r5
	addc	a,r0
	mov	r0,a
;	genCast
	mov	dptr,#_vsprintf_decimals_1_1
	mov	a,r7
	movx	@dptr,a
;	vprintf.c 352
;	genIpop
	pop	ar5
	ljmp	00104$
00113$:
;	vprintf.c 355
;	genCmpEq
; Peephole 132   changed ljmp to sjmp
; Peephole 199   optimized misc jump sequence
	cjne r6,#0x2E,00117$
;00303$:
; Peephole 200   removed redundant sjmp
00304$:
;	vprintf.c 356
;	genAssign
	mov	dptr,#_vsprintf_decimals_1_1
; Peephole 180   changed mov to clr
	clr  a
	movx	@dptr,a
;	vprintf.c 359
	ljmp	00104$
00117$:
;	vprintf.c 362
;	genCall
	mov	dpl,r6
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	lcall	_islower
	mov	a,dpl
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;	genAssign
	clr	c
	jz	00305$
	cpl	c
00305$:
	mov	_lower_case,c
;	vprintf.c 363
;	genIfx
;	genIfxJump
; Peephole 111   removed ljmp by inverse jump logic
	jnb  _lower_case,00119$
00306$:
;	vprintf.c 365
;	genAnd
	mov	dptr,#_vsprintf_c_1_1
	mov	a,#0xDF
	anl	a,r6
	movx	@dptr,a
00119$:
;	vprintf.c 368
;	genAssign
	mov	dptr,#_vsprintf_c_1_1
	movx	a,@dptr
	mov	r6,a
;	genCmpEq
	cjne	r6,#0x20,00307$
; Peephole 132   changed ljmp to sjmp
	sjmp 00122$
00307$:
;	genCmpEq
	cjne	r6,#0x2B,00308$
; Peephole 132   changed ljmp to sjmp
	sjmp 00121$
00308$:
;	genCmpEq
	cjne	r6,#0x2D,00309$
; Peephole 132   changed ljmp to sjmp
	sjmp 00120$
00309$:
;	genCmpEq
	cjne	r6,#0x42,00310$
; Peephole 132   changed ljmp to sjmp
	sjmp 00123$
00310$:
;	genCmpEq
	cjne	r6,#0x43,00311$
; Peephole 132   changed ljmp to sjmp
	sjmp 00125$
00311$:
;	genCmpEq
	cjne	r6,#0x44,00312$
	ljmp	00146$
00312$:
;	genCmpEq
	cjne	r6,#0x46,00313$
	ljmp	00151$
00313$:
;	genCmpEq
	cjne	r6,#0x49,00314$
	ljmp	00146$
00314$:
;	genCmpEq
	cjne	r6,#0x4C,00315$
; Peephole 132   changed ljmp to sjmp
	sjmp 00124$
00315$:
;	genCmpEq
	cjne	r6,#0x4F,00316$
	ljmp	00148$
00316$:
;	genCmpEq
	cjne	r6,#0x50,00317$
	ljmp	00142$
00317$:
;	genCmpEq
	cjne	r6,#0x53,00318$
; Peephole 132   changed ljmp to sjmp
	sjmp 00126$
00318$:
;	genCmpEq
	cjne	r6,#0x55,00319$
	ljmp	00149$
00319$:
;	genCmpEq
	cjne	r6,#0x58,00320$
	ljmp	00150$
00320$:
	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$:
;	genAssign
	mov	dptr,#_vsprintf_PARM_3
	movx	a,@dptr
;	genMinus
;	genMinusDec
; Peephole 105   removed redundant mov
	mov  r2,a
	add	a,#0xfe
;	genAssign
; Peephole 100   removed redundant mov
	mov  r0,a
	mov  dptr,#_vsprintf_PARM_3
	movx @dptr,a
;	genPointerGet
;	genNearPointerGet
	mov	ar2,@r0
	inc	r0
	mov	ar3,@r0
	dec	r0
;	genCast
;	genCall
	mov	dpl,r2
	push	ar5
	push	ar6
	lcall	_output_char
	pop	ar6
	pop	ar5
;	vprintf.c 388
	ljmp	00153$
;	vprintf.c 391
00126$:
;	genAssign
	mov	dptr,#_vsprintf_PARM_3
	movx	a,@dptr
;	genMinus
;	genMinusDec
; Peephole 105   removed redundant mov
	mov  r2,a
	add	a,#0xfd
;	genAssign
; Peephole 100   removed redundant mov
	mov  r0,a
	mov  dptr,#_vsprintf_PARM_3
	movx @dptr,a
;	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
	push	ar6
	lcall	_strlen
	mov	r2,dpl
	mov	r3,dph
	pop	ar6
	pop	ar5
;	genCast
;	vprintf.c 403
;	genIfx
;	genIfxJump
; Peephole 112   removed ljmp by inverse jump logic
	jb   _vsprintf_left_justify_1_1,00133$
00321$:
;	genAssign
	mov	dptr,#_vsprintf_width_1_1
	movx	a,@dptr
	mov	r3,a
;	genCmpLt
;	genCmp
	clr	c
	mov	a,r2
	subb	a,r3
;	genIfxJump
; Peephole 108   removed ljmp by inverse jump logic
	jnc  00133$
00322$:
;	vprintf.c 405
;	genMinus
	clr	c
	mov	a,r3
	subb	a,r2
	mov	r3,a
;	vprintf.c 406
;	genAssign
00127$:
;	genAssign
	mov	ar4,r3
;	genMinus
;	genMinusDec
	dec	r3
;	genAssign
	mov	dptr,#_vsprintf_width_1_1
	mov	a,r3
	movx	@dptr,a
;	genCmpEq
	cjne	r4,#0x00,00323$
; Peephole 132   changed ljmp to sjmp
	sjmp 00133$
00323$:
;	vprintf.c 408
;	genCall
	mov	dpl,#0x20
	push	ar2
	push	ar3
	push	ar5
	push	ar6
	lcall	_output_char
	pop	ar6
	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$
00324$:
;	vprintf.c 413
;	genIpush
	push	ar5
;	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	ar5,r7
;	genPointerSet
;	genNearPointerSet
;	genDataPointerSet
	mov	_value,r0
	mov	(_value + 1),r1
	mov	(_value + 2),r5
;	genPointerGet
;	genGenPointerGet
	mov	dpl,r3
	mov	dph,r4
	mov	b,r7
	lcall	__gptrget
	mov	r3,a
;	genCall
	mov	dpl,r3
	push	ar2
	push	ar5
	push	ar6
	lcall	_output_char
	pop	ar6
	pop	ar5
	pop	ar2
;	genIpop
	pop	ar5
; Peephole 132   changed ljmp to sjmp
	sjmp 00133$
00135$:
;	vprintf.c 415
;	genIfx
;	genIfxJump
	jb	_vsprintf_left_justify_1_1,00325$
	ljmp	00153$
00325$:
;	genAssign
	mov	dptr,#_vsprintf_width_1_1
	movx	a,@dptr
	mov	r3,a
;	genCmpLt
;	genCmp
	clr	c
	mov	a,r2
	subb	a,r3
;	genIfxJump
	jc	00326$
	ljmp	00153$
00326$:
;	vprintf.c 417
;	genMinus
	clr	c
	mov	a,r3
	subb	a,r2
	mov	r2,a
;	vprintf.c 418
;	genAssign
00136$:
;	genAssign
	mov	ar3,r2
;	genMinus
;	genMinusDec
	dec	r2
;	genAssign
	mov	dptr,#_vsprintf_width_1_1
	mov	a,r2
	movx	@dptr,a
;	genCmpEq
	cjne	r3,#0x00,00327$
	ljmp	00153$
00327$:
;	vprintf.c 420
;	genCall
	mov	dpl,#0x20
	push	ar2
	push	ar5
	push	ar6
	lcall	_output_char
	pop	ar6
	pop	ar5
	pop	ar2
;	vprintf.c 426
; Peephole 132   changed ljmp to sjmp
	sjmp 00136$
00142$:
;	genAssign
	mov	dptr,#_vsprintf_PARM_3
	movx	a,@dptr
;	genMinus
;	genMinusDec
; Peephole 105   removed redundant mov
	mov  r2,a
	add	a,#0xfd
;	genAssign
; Peephole 100   removed redundant mov
	mov  r0,a
	mov  dptr,#_vsprintf_PARM_3
	movx @dptr,a
;	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 437
;	genAssign
;	genCmpGt
;	genCmp
	clr	c
	mov	a,#0x03
	subb	a,0x0002 + _value
;	genIfxJump
; Peephole 108   removed ljmp by inverse jump logic
	jnc  00217$
00328$:
;	genAssign
	mov	r2,#0x04
; Peephole 132   changed ljmp to sjmp
	sjmp 00218$
00217$:
;	genPointerGet
;	genNearPointerGet
;	genDataPointerGet
	mov	r2,(_value + 0x0002)
00218$:
;	genPlus
	mov	a,r2
; Peephole 180   changed mov to clr
;	genPointerGet
;	genCodePointerGet
; Peephole 186   optimized movc sequence
	mov  dptr,#_memory_id
	movc a,@a+dptr
	mov	r2,a
;	genCall
	mov	dpl,r2
	push	ar5
	push	ar6
	lcall	_output_char
	pop	ar6
	pop	ar5
;	vprintf.c 438
;	genCall
	mov	dpl,#0x3A
	push	ar5
	push	ar6
	lcall	_output_char
	pop	ar6
	pop	ar5
;	vprintf.c 439
;	genCall
	mov	dpl,#0x30
	push	ar5
	push	ar6
	lcall	_output_char
	pop	ar6
	pop	ar5
;	vprintf.c 440
;	genCall
	mov	dpl,#0x78
	push	ar5
	push	ar6
	lcall	_output_char
	pop	ar6
	pop	ar5
;	vprintf.c 441
;	genAssign
;	genCmpEq
	mov	a,0x0002 + _value
; Peephole 110   removed ljmp by inverse jump logic
	jz  00144$
00329$:
;	vprintf.c 442
;	genAssign
;	genCmpEq
	mov	a,0x0002 + _value
	cjne	a,#0x03,00330$
; Peephole 132   changed ljmp to sjmp
	sjmp 00144$
00330$:
;	vprintf.c 443
;	genAssign
;	genCall
	mov	dpl,0x0001 + _value
	push	ar5
	push	ar6
	lcall	_output_2digits
	pop	ar6
	pop	ar5
00144$:
;	vprintf.c 444
;	genAssign
;	genCall
	mov	dpl,_value
	push	ar5
	push	ar6
	lcall	_output_2digits
	pop	ar6
	pop	ar5
;	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	dptr,#_radix
	mov	a,#0x0A
	movx	@dptr,a
;	vprintf.c 452
;	vprintf.c 455
; Peephole 132   changed ljmp to sjmp
	sjmp 00153$
00148$:
;	genAssign
	mov	dptr,#_radix
	mov	a,#0x08
	movx	@dptr,a
;	vprintf.c 456
;	vprintf.c 459
; Peephole 132   changed ljmp to sjmp
	sjmp 00153$
00149$:
;	genAssign
	mov	dptr,#_radix
	mov	a,#0x0A
	movx	@dptr,a
;	vprintf.c 460
;	vprintf.c 463
; Peephole 132   changed ljmp to sjmp
	sjmp 00153$
00150$:
;	genAssign
	mov	dptr,#_radix
	mov	a,#0x10
	movx	@dptr,a
;	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,r6
	push	ar5
	lcall	_output_char
	pop	ar5
;	vprintf.c 474
00153$:
;	vprintf.c 476
;	genIfx
;	genIfxJump
	jb	_vsprintf_float_argument_1_1,00331$
	ljmp	00204$
00331$:
;	vprintf.c 477
;	genAssign
	mov	dptr,#_vsprintf_PARM_3
	movx	a,@dptr
;	genMinus
;	genMinusDec
; Peephole 105   removed redundant mov
	mov  r2,a
	add	a,#0xfc
;	genAssign
; Peephole 100   removed redundant mov
	mov  r0,a
	mov  dptr,#_vsprintf_PARM_3
	movx @dptr,a
;	genPointerGet
;	genNearPointerGet
	mov	ar2,@r0
	inc	r0
	mov	ar3,@r0
	inc	r0
	mov	ar4,@r0
	inc	r0
	mov	ar6,@r0
	dec	r0
	dec	r0
	dec	r0
;	genPointerSet
;	genNearPointerSet
;	genDataPointerSet
	mov	_value,r2
	mov	(_value + 1),r3
	mov	(_value + 2),r4
	mov	(_value + 3),r6
;	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	r2,_value
	mov	r3,(_value + 1)
	mov	r4,(_value + 2)
;	genPlus
;	genPlusIncr
	mov	a,#0x01
	add	a,r2
	mov	r6,a
; Peephole 180   changed mov to clr

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -