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

📄 vprintf.asm

📁 很少见的源码公开的msc51和z80的c编译器。
💻 ASM
📖 第 1 页 / 共 2 页
字号:
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 + -