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

📄 vprintf.asm

📁 很少见的源码公开的msc51和z80的c编译器。
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;	genLabel 00121$:;	vprintf.c 345;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x20,00305$	ljmp	00124$00305$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x2B,00306$	ljmp	00123$00306$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x2D,00307$	ljmp	00122$00307$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x42,00308$	ljmp	00125$00308$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x43,00309$	ljmp	00127$00309$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x44,00310$	ljmp	00148$00310$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x46,00311$	ljmp	00153$00311$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x49,00312$	ljmp	00148$00312$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x4C,00313$; Peephole 132   changed ljmp to sjmp	sjmp 00126$00313$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x4F,00314$	ljmp	00150$00314$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x50,00315$	ljmp	00147$00315$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x53,00316$	ljmp	00128$00316$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x55,00317$	ljmp	00151$00317$:;	genCmpEq 	mov	dptr,#_vsprintf_c_1_1;	gencjneshort	movx	a,@dptr	cjne	a,#0x58,00318$	ljmp	00152$00318$:;	genGoto 	ljmp	00154$;	vprintf.c 348;	genLabel 00122$:;	genAssign ;	genAssign: resultIsFar = FALSE	setb	_vsprintf_left_justify_1_1;	vprintf.c 349;	genGoto 	ljmp	00106$;	vprintf.c 351;	genLabel 00123$:;	genAssign ;	genAssign: resultIsFar = FALSE	setb	_vsprintf_prefix_sign_1_1;	vprintf.c 352;	genGoto 	ljmp	00106$;	vprintf.c 354;	genLabel 00124$:;	genAssign ;	genAssign: resultIsFar = FALSE	setb	_vsprintf_prefix_space_1_1;	vprintf.c 355;	genGoto 	ljmp	00106$;	vprintf.c 357;	genLabel 00125$:;	genAssign ;	genAssign: resultIsFar = FALSE	setb	_vsprintf_char_argument_1_1;	vprintf.c 358;	genGoto 	ljmp	00106$;	vprintf.c 360;	genLabel 00126$:;	genAssign ;	genAssign: resultIsFar = FALSE	setb	_vsprintf_long_argument_1_1;	vprintf.c 361;	genGoto 	ljmp	00106$;	vprintf.c 364;	genLabel 00127$:;	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	mov	r3,a;	genCast ;	genCall 	push	ar0	mov	dpl,r2	lcall	_output_char	pop	ar0;	vprintf.c 365;	genGoto 	ljmp	00155$;	vprintf.c 368;	genLabel 00128$:;	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 371;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_sloc3_1_0	clr	a	movx	@dptr,a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a;	genCmpEq 	mov	dptr,#_vsprintf_sloc3_1_0;	gencjneshort;	cjneshort: generic ptr special case.	mov	b,r2	movx	a,@dptr	cjne	a,b,00319$	mov	b,r3	inc	dptr	movx	a,@dptr	cjne	a,b,00319$	mov	b,r4	inc	dptr	movx	a,@dptr	cjne	a,b,00319$	sjmp	00320$00319$:; Peephole 132   changed ljmp to sjmp	sjmp 00130$00320$:;	vprintf.c 372;	genCast 	mov	r2,#__str_1	mov	r3,#(__str_1 >> 8)	mov	r4,#(__str_1 >> 16)	mov	r5,#0x02;	genPointerSet 	mov	_value,r2	mov	(_value + 1),r3	mov	(_value + 2),r4	mov	(_value + 3),r5;	vprintf.c 373;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_length_1_1	mov	a,#0x06	movx	@dptr,a;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00131$00130$:;	vprintf.c 375;	genIpush 	push	ar0;	genPointerGet 	mov	r3,_value	mov	r4,(_value + 1)	mov	r5,(_value + 2)	mov	r2,(_value + 3);	genCall 	push	ar0	mov	dpl,r3	mov	dph,r4	mov	dpx,r5	mov	b,r2	lcall	_strlen	mov	r2,dpl	mov	r3,dph	pop	ar0;	genCast 	mov	dptr,#_vsprintf_length_1_1	mov	a,r2	movx	@dptr,a;	vprintf.c 618;	genIpop 	pop	ar0;	vprintf.c 375;	genLabel 00131$:;	vprintf.c 380;	genIfx ;	genIfxJump 	jnb	_vsprintf_left_justify_1_1,00321$	ljmp	00138$00321$:;	genCmpLt 	mov	dptr,#_vsprintf_width_1_1	mov	dps, #0x01	mov	dptr, #_vsprintf_length_1_1	dec	dps;	genCmp	clr	c;	genCmp #1: 0/0/0	mov	dps, #0x01	movx	a,@dptr	mov	dps, #0x00;	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  00138$00322$:;	vprintf.c 382;	genMinus 	mov	dptr,#_vsprintf_width_1_1	mov	dps, #0x01	mov	dptr, #_vsprintf_length_1_1	dec	dps	clr	c	movx	a,@dptr	xch	a, ap	inc	dps	movx	a,@dptr	xch	a, ap	subb	a,ap	push	acc	mov	dps, #0x00	pop	acc	movx	@dptr,a;	vprintf.c 383;	genAssign 	mov	dptr,#_vsprintf_width_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (1 byte case)	movx	a,@dptr	mov	r2,a;	genLabel 00132$:;	genAssign ;	genAssign: resultIsFar = FALSE	mov	ar3,r2;	genMinus 	dec	r2;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_width_1_1	mov	a,r2	movx	@dptr,a;	genCmpEq ;	gencjneshort	mov	a,r3	cjne	a,#0x00,00323$; Peephole 132   changed ljmp to sjmp	sjmp 00138$00323$:;	vprintf.c 385;	genCall 	push	ar2	push	ar0	mov	dpl,#0x20	lcall	_output_char	pop	ar0	pop	ar2;	genGoto ;	vprintf.c 389;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00132$00138$:;	genPointerGet 	mov	r2,_value	mov	r3,(_value + 1)	mov	r4,(_value + 2)	mov	r5,(_value + 3);	genPointerGet ;	genGenPointerGet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	__gptrget;	genIfx ; Peephole 105   removed redundant mov	mov  r2,a;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00140$00324$:;	vprintf.c 390;	genIpush 	push	ar0;	genPointerGet 	mov	r2,_value	mov	r3,(_value + 1)	mov	r4,(_value + 2)	mov	r5,(_value + 3);	genPlus 	mov	a,#0x01	add	a,r2	mov	r1,a; Peephole 180   changed mov to clr	clr  a	addc	a,r3	mov	r0,a; Peephole 180   changed mov to clr	clr  a	addc	a,r4	mov	r6,a	mov	ar7,r5;	genPointerSet 	mov	_value,r1	mov	(_value + 1),r0	mov	(_value + 2),r6	mov	(_value + 3),r7;	genPointerGet ;	genGenPointerGet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	__gptrget	mov	r2,a;	genCall 	push	ar0	mov	dpl,r2	lcall	_output_char	pop	ar0;	genIpop 	pop	ar0;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00138$00140$:;	vprintf.c 392;	genIfx ;	genIfxJump 	jb	_vsprintf_left_justify_1_1,00325$	ljmp	00155$00325$:;	genCmpLt 	mov	dptr,#_vsprintf_width_1_1	mov	dps, #0x01	mov	dptr, #_vsprintf_length_1_1	dec	dps;	genCmp	clr	c;	genCmp #1: 0/0/0	mov	dps, #0x01	movx	a,@dptr	mov	dps, #0x00;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	movx	a,@dptr	xch	a, b	subb	a,b;	genIfxJump 	jc	00326$	ljmp	00155$00326$:;	vprintf.c 394;	genMinus 	mov	dptr,#_vsprintf_width_1_1	mov	dps, #0x01	mov	dptr, #_vsprintf_length_1_1	dec	dps	clr	c	movx	a,@dptr	xch	a, ap	inc	dps	movx	a,@dptr	xch	a, ap	subb	a,ap	push	acc	mov	dps, #0x00	pop	acc	movx	@dptr,a;	vprintf.c 395;	genAssign 	mov	dptr,#_vsprintf_width_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (1 byte case)	movx	a,@dptr	mov	r2,a;	genLabel 00141$:;	genAssign ;	genAssign: resultIsFar = FALSE	mov	ar3,r2;	genMinus 	dec	r2;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_vsprintf_width_1_1	mov	a,r2	movx	@dptr,a;	genCmpEq ;	gencjneshort	mov	a,r3	cjne	a,#0x00,00327$	ljmp	00155$00327$:;	vprintf.c 397;	genCall 	push	ar2	push	ar0	mov	dpl,#0x20	lcall	_output_char	pop	ar0	pop	ar2;	genGoto ;	vprintf.c 403;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00141$00147$:;	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 406;	genPointerGet ; Peephole 221a remove redundant move;	genCmpGt ;	genCmp	clr	c;	genCmp #1: 0/0/0	mov	a,#0x03;	genCmp #2;	genCmp #4;	genCmp #4.2	subb	a,0x0003 + _value;	genIfxJump ; Peephole 108   removed ljmp by inverse jump logic	jnc  00216$00328$:;	genAssign ;	genAssign: resultIsFar = FALSE	mov	r2,#0x04;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00217$00216$:;	genPointerGet 	mov	r2,(_value + 0x0003);	genLabel 00217$:;	genPlus 	mov	a,r2	add	a,#_memory_id	mov	r2,a; Peephole 180   changed mov to clr	clr  a	addc	a,#(_memory_id >> 8)	mov	r3,a; Peephole 180   changed mov to clr	clr  a	addc	a,#(_memory_id >> 16)	mov	r4,a;	genPointerGet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	clr	a	movc	a,@a+dptr	mov	r2,a;	genCall 	push	ar0	mov	dpl,r2	lcall	_output_char	pop	ar0;	vprintf.c 407;	genCall 	push	ar0	mov	dpl,#0x3A	lcall	_output_char	pop	ar0;	vprintf.c 408;	genCall 	push	ar0	mov	dpl,#0x30	lcall	_output_char	pop	ar0;	vprintf.c 409;	genCall 	push	ar0	mov	dpl,#0x78	lcall	_output_char	pop	ar0;	vprintf.c 410;	genPointerGet ; Peephole 221a remove redundant move;	genCall 	push	ar0	mov	dpl,0x0002 + _value	lcall	_output_2digits	pop	ar0;	vprintf.c 411;	genPointerGet ; Peephole 221a remove redundant move;	genCall 	push	ar0	mov	dpl,0x0001 + _value	lcall	_output_2digits	pop	ar0;	vprintf.c 412;	genPointerGet ;	genCall 	push	ar0	mov	dpl,_value	lcall	_output_2digits	pop	ar0;	vprintf.c 423;	genGoto ;	vprintf.c 427;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00155$00148$:;	genAssign ;	genAssign: resultIsFar = FALSE	setb	_vsprintf_signed_argument_1_1;	vprintf.c 428;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_radix	mov	a,#0x0A	movx	@dptr,a;	vprintf.c 429;	genGoto ;	vprintf.c 432;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00155$00150$:;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_radix	mov	a,#0x08	movx	@dptr,a;	vprintf.c 433;	genGoto ;	vprintf.c 436;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00155$00151$:;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_radix	mov	a,#0x0A	movx	@dptr,a;	vprintf.c 437;	genGoto ;	vprintf.c 440;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00155$00152$:;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_radix	mov	a,#0x10	movx	@dptr,a;	vprintf.c 441;	genGoto ;	vprintf.c 444;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00155$00153$:;	genAssign ;	genAssign: resultIsFar = FALSE	setb	_vsprintf_float_argument_1_1;	vprintf.c 445;	genGoto ;	vprintf.c 449;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00155$00154$:;	genCall 	push	ar0	mov	dptr,#_vsprintf_c_1_1	movx	a,@dptr	mov	dpl,a	lcall	_output_char	pop	ar0

⌨️ 快捷键说明

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