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

📄 vprintf.asm

📁 很少见的源码公开的msc51和z80的c编译器。
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;	vprintf.c 451;	genLabel 00155$:;	vprintf.c 453;	genIfx ;	genIfxJump 	jb	_vsprintf_float_argument_1_1,00329$	ljmp	00203$00329$:;	vprintf.c 454;	genAssign 	mov	dptr,#_vsprintf_PARM_3;	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;	genMinus 	mov	a,r2	add	a,#0xfc	mov	r2,a	mov	a,r3	addc	a,#0xff	mov	r3,a	mov	a,r4	addc	a,#0xff	mov	r4,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_PARM_3	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;	genPointerGet ;	genGenPointerGet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	__gptrget	mov	r2,a	inc	dptr	lcall	__gptrget	mov	r3,a	inc	dptr	lcall	__gptrget	mov	r4,a	inc	dptr	lcall	__gptrget	mov	r5,a;	genPointerSet 	mov	_value,r2	mov	(_value + 1),r3	mov	(_value + 2),r4	mov	(_value + 3),r5;	vprintf.c 467;	genAssign 	mov	dptr,#_vsprintf_width_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (1 byte case)	movx	a,@dptr	mov	dptr,#_output_float_PARM_2	movx	@dptr,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_output_float_PARM_3	mov	a,r0	movx	@dptr,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_output_float_PARM_4	clr	a	mov	c,_vsprintf_left_justify_1_1	rlc	a	movx	@dptr,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_output_float_PARM_5	clr	a	mov	c,_vsprintf_zero_padding_1_1	rlc	a	movx	@dptr,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_output_float_PARM_6	clr	a	mov	c,_vsprintf_prefix_sign_1_1	rlc	a	movx	@dptr,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_output_float_PARM_7	clr	a	mov	c,_vsprintf_prefix_space_1_1	rlc	a	movx	@dptr,a;	genCall 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	_output_float;	genGoto 	ljmp	00208$;	genLabel 00203$:;	vprintf.c 469;	genCmpEq 	mov	dptr,#_radix;	gencjneshort	movx	a,@dptr	cjne	a,#0x00,00330$	ljmp	00208$00330$:;	vprintf.c 475;	genIfx ;	genIfxJump 	jb	_vsprintf_char_argument_1_1,00331$	ljmp	00164$00331$:;	vprintf.c 477;	genAssign 	mov	dptr,#_vsprintf_PARM_3;	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;	genMinus 	dec	r2	cjne	r2,#0xff,00332$	dec	r3	cjne	r3,#0xff,00332$	dec	r400332$:;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_PARM_3	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;	genPointerGet ;	genGenPointerGet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	__gptrget;	genCast ; Peephole 105   removed redundant mov	mov  r2,a	rlc	a	subb	a,acc	mov	r3,a	mov	r4,a	mov	r5,a;	genPointerSet 	mov	_value,r2	mov	(_value + 1),r3	mov	(_value + 2),r4	mov	(_value + 3),r5;	vprintf.c 478;	genIfx ;	genIfxJump 	jnb	_vsprintf_signed_argument_1_1,00333$	ljmp	00165$00333$:;	vprintf.c 480;	genPointerSet 	mov	(_value + 0x0001),#0x00;	vprintf.c 481;	genPointerSet 	mov	(_value + 0x0002),#0x00;	vprintf.c 482;	genPointerSet 	mov	(_value + 0x0003),#0x00;	genGoto 	ljmp	00165$;	genLabel 00164$:;	vprintf.c 485;	genIfx ;	genIfxJump 	jb	_vsprintf_long_argument_1_1,00334$	ljmp	00161$00334$:;	vprintf.c 487;	genAssign 	mov	dptr,#_vsprintf_PARM_3;	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;	genMinus 	mov	a,r2	add	a,#0xfc	mov	r2,a	mov	a,r3	addc	a,#0xff	mov	r3,a	mov	a,r4	addc	a,#0xff	mov	r4,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_PARM_3	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;	genPointerGet ;	genGenPointerGet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	__gptrget	mov	r2,a	inc	dptr	lcall	__gptrget	mov	r3,a	inc	dptr	lcall	__gptrget	mov	r4,a	inc	dptr	lcall	__gptrget	mov	r5,a;	genPointerSet 	mov	_value,r2	mov	(_value + 1),r3	mov	(_value + 2),r4	mov	(_value + 3),r5;	genGoto 	ljmp	00165$;	genLabel 00161$:;	vprintf.c 491;	genAssign 	mov	dptr,#_vsprintf_PARM_3;	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;	genMinus 	mov	a,r2	add	a,#0xfe	mov	r2,a	mov	a,r3	addc	a,#0xff	mov	r3,a	mov	a,r4	addc	a,#0xff	mov	r4,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_PARM_3	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;	genPointerGet ;	genGenPointerGet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	__gptrget	mov	r2,a	inc	dptr	lcall	__gptrget;	genCast ; Peephole 105   removed redundant mov	mov  r3,a	rlc	a	subb	a,acc	mov	r4,a	mov	r5,a;	genPointerSet 	mov	_value,r2	mov	(_value + 1),r3	mov	(_value + 2),r4	mov	(_value + 3),r5;	vprintf.c 492;	genIfx ;	genIfxJump ; Peephole 112   removed ljmp by inverse jump logic	jb   _vsprintf_signed_argument_1_1,00165$00335$:;	vprintf.c 494;	genPointerSet 	mov	(_value + 0x0002),#0x00;	vprintf.c 495;	genPointerSet 	mov	(_value + 0x0003),#0x00;	genLabel 00165$:;	vprintf.c 499;	genIfx ;	genIfxJump ; Peephole 111   removed ljmp by inverse jump logic	jnb  _vsprintf_signed_argument_1_1,00170$00336$:;	vprintf.c 501;	genPointerGet ;	genCmpLt ;	genCmp	mov	a,(_value + 3);	genIfxJump ; Peephole 111   removed ljmp by inverse jump logic	jnb  acc.7,00167$00337$:;	vprintf.c 502;	genUminus 	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	r5,a;	genPointerSet 	mov	_value,r2	mov	(_value + 1),r3	mov	(_value + 2),r4	mov	(_value + 3),r5;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00170$00167$:;	vprintf.c 504;	genAssign ;	genAssign: resultIsFar = FALSE	clr	_vsprintf_signed_argument_1_1;	genLabel 00170$:;	vprintf.c 508;	genAssign ;	genAssign: resultIsFar = FALSE	setb	_lsd;	vprintf.c 511;	genAssign ;	genAssign: resultIsFar = TRUE	mov	r2,#0x00;	genLabel 00174$:;	vprintf.c 512;	genPointerSet 	mov	(_value + 0x0004),#0x00;	vprintf.c 513;	genCall 	push	ar2	lcall	_calculate_digit	pop	ar2;	vprintf.c 527;	genInline 	  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;	genPlus 	inc	r2;	did genPlusIncr;	vprintf.c 530;	genCpl ; Peephole 167   removed redundant bit moves (c not set to _lsd)	cpl  _lsd ;	vprintf.c 531;	genPointerGet ;	genCmpEq ;	gencjneshort	mov	a,_value; Peephole 162   removed sjmp by inverse jump logic	jz   00339$00338$:; Peephole 132   changed ljmp to sjmp	sjmp 00174$00339$:;	genPointerGet ; Peephole 221a remove redundant move;	genCmpEq ;	gencjneshort	mov	a,0x0001 + _value; Peephole 162   removed sjmp by inverse jump logic	jz   00341$00340$:; Peephole 132   changed ljmp to sjmp	sjmp 00174$00341$:;	vprintf.c 532;	genPointerGet ; Peephole 221a remove redundant move;	genCmpEq ;	gencjneshort	mov	a,0x0002 + _value; Peephole 162   removed sjmp by inverse jump logic	jz   00343$00342$:; Peephole 132   changed ljmp to sjmp	sjmp 00174$00343$:;	genPointerGet ; Peephole 221a remove redundant move;	genCmpEq ;	gencjne;	gencjneshort	mov	a,0x0003 + _value	jnz	00344$	mov	a,#0x01	sjmp	00345$00344$:	clr	a00345$:	mov	r3,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_length_1_1	mov	a,r2	movx	@dptr,a;	genIfx 	mov	a,r3;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00174$00346$:;	vprintf.c 534;	genCmpEq 	mov	dptr,#_vsprintf_width_1_1;	gencjneshort	movx	a,@dptr; Peephole 132   changed ljmp to sjmp; Peephole 199   optimized misc jump sequence	cjne a,#0x00,00178$;00347$:; Peephole 200   removed redundant sjmp00348$:;	vprintf.c 539;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_width_1_1	mov	a,#0x01	movx	@dptr,a;	genLabel 00178$:;	vprintf.c 543;	genIfx ;	genIfxJump ; Peephole 112   removed ljmp by inverse jump logic	jb   _vsprintf_zero_padding_1_1,00183$00349$:;	vprintf.c 545;	genPlus 	mov	dptr,#_vsprintf_length_1_1;	Swapped plus args.	movx	a,@dptr	add	a,#0x01	mov	r2,a;	genAssign 	mov	dptr,#_vsprintf_width_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (1 byte case)	movx	a,@dptr	mov	r3,a;	genLabel 00179$:;	genCmpGt ;	genCmp	clr	c;	genCmp #1: 0/0/0	mov	a,r2;	genCmp #2;	genCmp #4;	genCmp #4.2	subb	a,r3	clr	a	rlc	a	mov	r2,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_width_1_1	mov	a,r3	movx	@dptr,a;	genIfx 	mov	a,r2;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00183$00350$:;	vprintf.c 547;	genCall 	push	ar3	mov	dpl,#0x20	lcall	_output_char	pop	ar3;	vprintf.c 548;	genMinus 	dec	r3;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00179$00183$:;	vprintf.c 552;	genIfx ;	genIfxJump ; Peephole 111   removed ljmp by inverse jump logic	jnb  _vsprintf_signed_argument_1_1,00192$00351$:;	vprintf.c 554;	genCall 	mov	dpl,#0x2D	lcall	_output_char;	vprintf.c 556;	genMinus 	mov	dptr,#_vsprintf_width_1_1	movx	a,@dptr	dec	a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_width_1_1	movx	@dptr,a;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00280$00192$:;	vprintf.c 558;	genCmpEq 	mov	dptr,#_vsprintf_length_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x00,00352$; Peephole 132   changed ljmp to sjmp	sjmp 00280$00352$:;	vprintf.c 561;	genIfx ;	genIfxJump ; Peephole 111   removed ljmp by inverse jump logic	jnb  _vsprintf_prefix_sign_1_1,00187$00353$:;	vprintf.c 563;	genCall 	mov	dpl,#0x2B	lcall	_output_char;	vprintf.c 565;	genMinus 	mov	dptr,#_vsprintf_width_1_1	movx	a,@dptr	dec	a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_width_1_1	movx	@dptr,a;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00280$00187$:;	vprintf.c 567;	genIfx ;	genIfxJump ; Peephole 111   removed ljmp by inverse jump logic	jnb  _vsprintf_prefix_space_1_1,00280$00354$:;	vprintf.c 569;	genCall 	mov	dpl,#0x20	lcall	_output_char;	vprintf.c 571;	genMinus 	mov	dptr,#_vsprintf_width_1_1	movx	a,@dptr	dec	a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_width_1_1	movx	@dptr,a;	vprintf.c 576;	genLabel 00280$:;	genAssign 	mov	dptr,#_vsprintf_width_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (1 byte case)	movx	a,@dptr	mov	r2,a;	genLabel 00194$:;	genAssign ;	genAssign: resultIsFar = FALSE	mov	ar3,r2;	genMinus 	dec	r2;	genCmpGt 	mov	dptr,#_vsprintf_length_1_1;	genCmp	clr	c;	genCmp #1: 0/0/0	movx	a,@dptr;	genCmp #2;	genCmp #4;	genCmp #4.2	subb	a,r3;	genIfxJump ; Peephole 108   removed ljmp by inverse jump logic	jnc  00282$00355$:;	vprintf.c 578;	genIfx ;	genIfxJump ; Peephole 111   removed ljmp by inverse jump logic	jnb  _vsprintf_zero_padding_1_1,00218$00356$:;	genAssign ;	genAssign: resultIsFar = FALSE	mov	r3,#0x30;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00219$00218$:;	genAssign ;	genAssign: resultIsFar = FALSE	mov	r3,#0x20;	genLabel 00219$:;	genCall 	push	ar2	mov	dpl,r3	lcall	_output_char	pop	ar2;	genGoto ;	vprintf.c 582;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00194$00282$:;	genAssign 	mov	dptr,#_vsprintf_length_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (1 byte case)	movx	a,@dptr	mov	r2,a;	genLabel 00197$:;	genAssign ;	genAssign: resultIsFar = FALSE	mov	ar3,r2;	genMinus 	dec	r2;	genIfx 	mov	a,r3;	genIfxJump 	jnz	00357$	ljmp	00208$00357$:;	vprintf.c 584;	genCpl ; Peephole 167   removed redundant bit moves (c not set to _lsd)	cpl  _lsd ;	vprintf.c 599;	genInline 	  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;	genPointerGet ; Peephole 221a remove redundant move;	genCall 	push	ar2	mov	dpl,0x0004 + _value	lcall	_output_digit	pop	ar2;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00197$00206$:;	vprintf.c 608;	genCall 	mov	dptr,#_vsprintf_c_1_1	movx	a,@dptr	mov	dpl,a	lcall	_output_char;	genGoto 	ljmp	00208$;	genLabel 00210$:;	vprintf.c 614;	genIfx ;	genIfxJump ; Peephole 111   removed ljmp by inverse jump logic	jnb  _output_to_string,00212$00358$:;	vprintf.c 615;	genCall 	mov	dpl,#0x00	lcall	_output_char;	vprintf.c 616;	genMinus 	mov	dptr,#_charsOutputted	movx	a,@dptr	add	a,#0xff	mov	r2,a	inc	dptr	movx	a,@dptr	addc	a,#0xff	mov	r3,a;	genRet 	mov	dpl,r2	mov	dph,r3;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00214$00212$:;	vprintf.c 618;	genRet 	mov     dps, #0x01	mov     dptr, #_charsOutputted	movx	a,@dptr	mov	dpl,a	inc	dptr	movx	a,@dptr	mov	dph,a	mov	dps, #0x00;	genLabel 00214$:;	genEndFunction 	ret;	vprintf.c 624;	genFunction ;	-----------------------------------------;	 function vprintf;	--------------

⌨️ 快捷键说明

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