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

📄 vprintf.asm

📁 很少见的源码公开的msc51和z80的c编译器。
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	push	ar2	push	ar3	push	ar7	mov	dpl,#0x2D	lcall	_output_char	pop	ar7	pop	ar3	pop	ar2;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00154$00150$:;	vprintf.c 232;	genIfx 	mov	dptr,#_output_float_PARM_6	movx	a,@dptr;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00147$00230$:;	genCall 	push	ar2	push	ar3	push	ar7	mov	dpl,#0x2B	lcall	_output_char	pop	ar7	pop	ar3	pop	ar2;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00154$00147$:;	vprintf.c 233;	genIfx 	mov	dptr,#_output_float_PARM_7	movx	a,@dptr;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00154$00231$:;	genCall 	push	ar2	push	ar3	push	ar7	mov	dpl,#0x20	lcall	_output_char	pop	ar7	pop	ar3	pop	ar2;	genLabel 00154$:;	vprintf.c 237;	genMinus 	mov	a,r7	dec	a	mov	r4,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	ar3,r4;	vprintf.c 238;	genAssign ;	genAssign: resultIsFar = TRUE;	genLabel 00156$:;	vprintf.c 239;	genPlus 	mov	a,r3	add	a,#_output_float_fpBuffer_1_1	mov	r4,a; Peephole 180   changed mov to clr	clr  a	addc	a,#(_output_float_fpBuffer_1_1 >> 8)	mov	r5,a; Peephole 180   changed mov to clr	clr  a	addc	a,#(_output_float_fpBuffer_1_1 >> 16)	mov	r6,a;	genPointerGet ;	genFarPointerGet	mov	dpl,r4	mov	dph,r5	mov	dpx,r6	movx	a,@dptr	mov	r4,a;	genCall 	push	ar2	push	ar3	push	ar7	mov	dpl,r4	lcall	_output_char	pop	ar7	pop	ar3	pop	ar2;	vprintf.c 240;	genAssign ;	genAssign: resultIsFar = FALSE	mov	ar4,r3;	genMinus 	dec	r3;	genIfx 	mov	a,r4;	genIfxJump ; Peephole 109   removed ljmp by inverse jump logic	jnz  00156$00232$:;	vprintf.c 243;	genIfx 	mov	dptr,#_output_float_PARM_3	movx	a,@dptr;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00163$00233$:;	vprintf.c 244;	genCall 	push	ar2	push	ar7	mov	dpl,#0x2E	lcall	_output_char	pop	ar7	pop	ar2;	vprintf.c 245;	genAssign ;	genAssign: resultIsFar = TRUE	mov	ar3,r7;	vprintf.c 246;	genAssign ;	genAssign: resultIsFar = TRUE;	genLabel 00159$:;	genAssign 	mov	dptr,#_output_float_PARM_3;	genAssign: resultIsFar = FALSE	movx	a,@dptr;	genMinus ; Peephole 105   removed redundant mov	mov  r4,a	dec	a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_output_float_PARM_3	movx	@dptr,a;	genIfx 	mov	a,r4;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00163$00234$:;	vprintf.c 247;	genAssign ;	genAssign: resultIsFar = FALSE	mov	ar4,r3;	genPlus 	inc	r3;	did genPlusIncr;	genPlus 	mov	a,r4	add	a,#_output_float_fpBuffer_1_1	mov	r4,a; Peephole 180   changed mov to clr	clr  a	addc	a,#(_output_float_fpBuffer_1_1 >> 8)	mov	r5,a; Peephole 180   changed mov to clr	clr  a	addc	a,#(_output_float_fpBuffer_1_1 >> 16)	mov	r6,a;	genPointerGet ;	genFarPointerGet	mov	dpl,r4	mov	dph,r5	mov	dpx,r6	movx	a,@dptr	mov	r4,a;	genCall 	push	ar2	push	ar3	mov	dpl,r4	lcall	_output_char	pop	ar3	pop	ar2;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00159$00163$:;	vprintf.c 250;	genIfx 	mov	dptr,#_output_float_PARM_4	movx	a,@dptr;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00170$00235$:;	genCmpGt 	mov	dptr,#_output_float_PARM_2;	genCmp	clr	c;	genCmp #1: 0/0/0	mov	a,r2;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	movx	a,@dptr	xch	a, b	subb	a,b;	genIfxJump ; Peephole 108   removed ljmp by inverse jump logic	jnc  00170$00236$:;	vprintf.c 251;	genLabel 00164$:;	genAssign 	mov	dptr,#_output_float_PARM_2;	genAssign: resultIsFar = FALSE	movx	a,@dptr;	genMinus ; Peephole 105   removed redundant mov	mov  r3,a	dec	a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_output_float_PARM_2	movx	@dptr,a;	genCmpGt ;	genCmp	clr	c;	genCmp #1: 0/0/0	mov	a,r2;	genCmp #2;	genCmp #4;	genCmp #4.2	subb	a,r3;	genIfxJump ; Peephole 108   removed ljmp by inverse jump logic	jnc  00170$00237$:;	vprintf.c 252;	genCall 	push	ar2	mov	dpl,#0x20	lcall	_output_char	pop	ar2;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00164$00170$:;	genEndFunction 	ret;	vprintf.c 259;	genFunction ;	-----------------------------------------;	 function vsprintf;	-----------------------------------------_vsprintf:;	vprintf.c 0;	genReceive 	mov	r2,dpl	mov	r3,dph	mov	r4,dpx	mov	r5,b;	vprintf.c 276;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_charsOutputted	clr	a	movx	@dptr,a	inc	dptr	movx	@dptr,a;	vprintf.c 278;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_output_ptr	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;	vprintf.c 279;	genIfx ;	toBoolean: generic ptr special case.	mov	a,r2	orl	a,r3	orl	a,r4;	genIfxJump ; Peephole 109   removed ljmp by inverse jump logic	jnz  00102$00284$:;	vprintf.c 281;	genAssign ;	genAssign: resultIsFar = FALSE	clr	_output_to_string;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00103$00102$:;	vprintf.c 285;	genAssign ;	genAssign: resultIsFar = FALSE	setb	_output_to_string;	genLabel 00103$:;	vprintf.c 289;	genAssign 	mov	dptr,#_vsprintf_PARM_2;	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;	genCmpEq ;	gencjneshort;	cjneshort: generic ptr special case.	mov	a,r2; Peephole 132   changed ljmp to sjmp; Peephole 195   optimized misc jump sequence	cjne a,#0x00,00225$	mov  a,r3	cjne a,#0x00,00225$	mov  a,r4	cjne a,#0x00,00225$;00285$:; Peephole 200   removed redundant sjmp00286$:;	vprintf.c 290;	genCast 	mov	dptr,#_vsprintf_PARM_2	mov	a,#__str_0	movx	@dptr,a	inc	dptr	mov	a,#(__str_0 >> 8)	movx	@dptr,a	inc	dptr	mov	a,#(__str_0 >> 16)	movx	@dptr,a	inc	dptr	mov	a,#0x02	movx	@dptr,a;	vprintf.c 294;	genLabel 00225$:;	genLabel 00208$:;	genAssign 	mov	dptr,#_vsprintf_PARM_2;	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;	genPointerGet ;	genGenPointerGet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	__gptrget	mov	r6,a;	genPlus 	inc	r2	cjne	r2,#0x00,00287$	inc	r3	cjne	r3,#0x00,00287$	inc	r400287$:;	did genPlusIncr;	genAssign ;	genAssign: resultIsFar = TRUE	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	inc	dptr	mov	a,r5	movx	@dptr,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_c_1_1	mov	a,r6	movx	@dptr,a;	genIfx 	mov	a,r6;	genIfxJump 	jnz	00288$	ljmp	00210$00288$:;	vprintf.c 296;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x25,00289$	sjmp	00290$00289$:	ljmp	00206$00290$:;	vprintf.c 298;	genAssign ;	genAssign: resultIsFar = FALSE	clr	_vsprintf_left_justify_1_1;	vprintf.c 299;	genAssign ;	genAssign: resultIsFar = FALSE	clr	_vsprintf_zero_padding_1_1;	vprintf.c 300;	genAssign ;	genAssign: resultIsFar = FALSE	clr	_vsprintf_prefix_sign_1_1;	vprintf.c 301;	genAssign ;	genAssign: resultIsFar = FALSE	clr	_vsprintf_prefix_space_1_1;	vprintf.c 302;	genAssign ;	genAssign: resultIsFar = FALSE	clr	_vsprintf_signed_argument_1_1;	vprintf.c 303;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_radix; Peephole 180   changed mov to clr	clr  a	movx	@dptr,a;	vprintf.c 304;	genAssign ;	genAssign: resultIsFar = FALSE	clr	_vsprintf_char_argument_1_1;	vprintf.c 305;	genAssign ;	genAssign: resultIsFar = FALSE	clr	_vsprintf_long_argument_1_1;	vprintf.c 306;	genAssign ;	genAssign: resultIsFar = FALSE	clr	_vsprintf_float_argument_1_1;	vprintf.c 307;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_width_1_1; Peephole 180   changed mov to clr	clr  a	movx	@dptr,a;	vprintf.c 308;	genAssign ;	genAssign: resultIsFar = TRUE	mov	r0,#0xFF;	vprintf.c 312;	genAssign ;	genAssign: resultIsFar = FALSE;	genLabel 00106$:;	genPointerGet ;	genGenPointerGet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	__gptrget	mov	r1,a;	genPlus 	inc	r2	cjne	r2,#0x00,00291$	inc	r3	cjne	r3,#0x00,00291$	inc	r400291$:;	did genPlusIncr;	genAssign ;	genAssign: resultIsFar = TRUE	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	inc	dptr	mov	a,r5	movx	@dptr,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_c_1_1	mov	a,r1	movx	@dptr,a;	vprintf.c 314;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr; Peephole 132   changed ljmp to sjmp; Peephole 199   optimized misc jump sequence	cjne a,#0x25,00108$;00292$:; Peephole 200   removed redundant sjmp00293$:;	vprintf.c 315;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	push	ar0	mov	dptr,#_vsprintf_c_1_1	movx	a,@dptr	mov	dpl,a	lcall	_output_char	pop	ar0	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	vprintf.c 316;	genGoto 	ljmp	00208$;	genLabel 00108$:;	vprintf.c 319;	genAssign 	mov	dptr,#_vsprintf_c_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (1 byte case)	movx	a,@dptr	mov	r1,a;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	push	ar0	mov	dpl,r1	lcall	_isdigit	mov	r1,dpl	pop	ar0	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genIfx 	mov	a,r1;	genIfxJump 	jnz	00294$	ljmp	00115$00294$:;	vprintf.c 320;	genCmpEq ;	gencjneshort	mov	a,r0	cjne	a,#0xFF,00295$	sjmp	00296$00295$:	ljmp	00112$00296$:;	vprintf.c 321;	genMult 	mov	dptr,#_vsprintf_width_1_1	mov	dps, #0x01	mov	dptr, #_vsprintf_sloc0_1_0	dec	dps	mov	b,#0x0A	movx	a,@dptr	mul	ab	mov	dps, #0x01	movx	@dptr,a; Peephole 220a removed bogus DPS set	mov     dps, #0x01	inc	dptr	mov	a,b	movx	@dptr,a	mov	dps, #0x00;	genMinus 	mov	dptr,#_vsprintf_c_1_1	movx	a,@dptr	add	a,#0xd0;	genCast ; Peephole 100   removed redundant mov	mov  r1,a	mov  dptr,#_vsprintf_sloc1_1_0	movx @dptr,a	mov	a,r1	rlc	a	subb	a,acc	inc	dptr	movx	@dptr,a;	genPlus 	mov	dptr,#_vsprintf_sloc1_1_0	mov	dps, #0x01	mov	dptr, #_vsprintf_sloc0_1_0	dec	dps;	genPlus: must push result: 3 ops in far space	movx	a,@dptr	xch	a, ap	inc	dps	movx	a,@dptr	add 	a, ap	push	acc	dec	dps	inc	dptr	movx	a,@dptr	xch	a, ap	inc	dps	inc	dptr	movx	a,@dptr	addc 	a, ap	push	acc	mov	dps, #0x00	mov	dptr,#_vsprintf_sloc2_1_0	pop	acc	inc	dptr	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a;	genCast 	mov	dptr,#_vsprintf_sloc2_1_0	mov	dps, #0x01	mov	dptr, #_vsprintf_width_1_1	dec	dps	movx	a,@dptr	inc	dps	movx	@dptr,a	mov	dps, #0x00;	vprintf.c 322;	genCmpEq 	mov	dptr,#_vsprintf_width_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x00,00297$	sjmp	00298$00297$:	ljmp	00106$00298$:;	vprintf.c 324;	genAssign ;	genAssign: resultIsFar = FALSE	setb	_vsprintf_zero_padding_1_1;	genGoto 	ljmp	00106$;	genLabel 00112$:;	vprintf.c 327;	genMult 	mov	dptr,#_vsprintf_sloc2_1_0;	signed	clr	F0	mov	a,r0	jnb	acc.7,00299$	setb	F0	cpl	a	inc	a00299$:	mov	b,#0x0a	mul	ab	jnb	F0,00300$	cpl	a	add	a,#1	xch	a,b	cpl	a	addc	a,#0	xch	a,b00300$:	movx	@dptr,a	inc	dptr	mov	a,b	movx	@dptr,a;	genMinus 	mov	dptr,#_vsprintf_c_1_1	movx	a,@dptr	add	a,#0xd0;	genCast ; Peephole 100   removed redundant mov	mov  r1,a	mov  dptr,#_vsprintf_sloc1_1_0	movx @dptr,a	mov	a,r1	rlc	a	subb	a,acc	inc	dptr	movx	@dptr,a;	genPlus 	mov	dptr,#_vsprintf_sloc1_1_0	mov	dps, #0x01	mov	dptr, #_vsprintf_sloc2_1_0	dec	dps;	genPlus: must push result: 3 ops in far space	movx	a,@dptr	xch	a, ap	inc	dps	movx	a,@dptr	add 	a, ap	push	acc	dec	dps	inc	dptr	movx	a,@dptr	xch	a, ap	inc	dps	inc	dptr	movx	a,@dptr	addc 	a, ap	push	acc	mov	dps, #0x00	mov	dptr,#_vsprintf_sloc0_1_0	pop	acc	inc	dptr	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a;	genCast 	mov	dptr,#_vsprintf_sloc0_1_0	movx	a,@dptr	mov	r0,a;	vprintf.c 329;	genGoto 	ljmp	00106$;	genLabel 00115$:;	vprintf.c 332;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr; Peephole 132   changed ljmp to sjmp; Peephole 199   optimized misc jump sequence	cjne a,#0x2E,00119$;00301$:; Peephole 200   removed redundant sjmp00302$:;	vprintf.c 333;	genAssign ;	genAssign: resultIsFar = TRUE	mov	r0,#0x00;	vprintf.c 336;	genGoto 	ljmp	00106$;	genLabel 00119$:;	vprintf.c 339;	genAssign 	mov	dptr,#_vsprintf_c_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (1 byte case)	movx	a,@dptr	mov	r1,a;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	push	ar0	mov	dpl,r1	lcall	_islower	mov	r1,dpl	pop	ar0	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genAssign ;	genAssign: resultIsFar = FALSE	mov	a,r1	clr	c	jz	00303$	cpl	c00303$:	mov	_lower_case,c;	vprintf.c 340;	genIfx ;	genIfxJump ; Peephole 111   removed ljmp by inverse jump logic	jnb  _lower_case,00121$00304$:;	vprintf.c 342;	genAssign 	mov	dptr,#_vsprintf_c_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (1 byte case)	movx	a,@dptr	mov	r1,a;	genAnd 	mov	dptr,#_vsprintf_c_1_1;	better literal AND.	mov	a,r1	anl	a, #0xDF	movx	@dptr,a

⌨️ 快捷键说明

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