time.asm

来自「很少见的源码公开的msc51和z80的c编译器。」· 汇编 代码 · 共 3,690 行 · 第 1/4 页

ASM
3,690
字号
	push	ar2	push	ar3	push	ar4	push	ar5	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	__divulong	mov	r6,dpl	mov	r7,dph	mov	r0,dpx	mov	r1,b	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genAssign ;	genAssign: resultIsFar = TRUE	mov	ar2,r6	mov	ar3,r7	mov	ar4,r0	mov	ar5,r1;	time.c 132;	genPlus 	mov	a,#0x04	add	a,r2	mov	r6,a; Peephole 180   changed mov to clr	clr  a	addc	a,r3	mov	r7,a; Peephole 180   changed mov to clr	clr  a	addc	a,r4	mov	r0,a; Peephole 180   changed mov to clr	clr  a	addc	a,r5	mov	r1,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#__modulong_PARM_2	mov	a,#0x07	movx	@dptr,a	clr	a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	mov	dpl,r6	mov	dph,r7	mov	dpx,r0	mov	b,r1	lcall	__modulong	mov	r6,dpl	mov	r7,dph	mov	r0,dpx	mov	r1,b	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genCast ;	genPointerSet 	mov	dptr,#(_lastTime + 0x0007)	mov	a,r6	movx	@dptr,a;	time.c 135;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_gmtime_days_1_1	clr	a	movx	@dptr,a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a;	time.c 136;	genAssign ;	genAssign: resultIsFar = TRUE	mov	r6,#0xB2	mov	r7,#0x07;	genLabel 00101$:;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#__moduint_PARM_2	mov	a,#0x04	movx	@dptr,a	clr	a	inc	dptr	movx	@dptr,a;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	push	ar6	push	ar7	mov	dpl,r6	mov	dph,r7	lcall	__moduint	mov	r0,dpl	mov	r1,dph	pop	ar7	pop	ar6	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genCmpEq ;	gencjne;	gencjneshort	mov	a,r0	cjne	a,#0x00,00132$	mov	a,r1	cjne	a,#0x00,00132$	mov	a,#0x01	sjmp	00133$00132$:	clr	a00133$:;	genIfx ; Peephole 105   removed redundant mov	mov  r0,a;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00119$00134$:;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_gmtime_sloc0_1_0	mov	a,#0x6E	movx	@dptr,a	inc	dptr	mov	a,#0x01	movx	@dptr,a;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00120$00119$:;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#_gmtime_sloc0_1_0	mov	a,#0x6D	movx	@dptr,a	inc	dptr	mov	a,#0x01	movx	@dptr,a;	genLabel 00120$:;	genCast 	mov	dptr,#_gmtime_sloc0_1_0	mov	dps, #0x01	mov	dptr, #_gmtime_sloc1_1_0	dec	dps	movx	a,@dptr	inc	dps	movx	@dptr,a	dec	dps	inc	dptr	movx	a,@dptr	inc	dps	inc	dptr	movx	@dptr,a	mov	dps, #0x00	movx	a,@dptr	rlc	a	subb	a,acc	mov	dps, #0x01	inc	dptr	movx	@dptr,a; Peephole 220a removed bogus DPS set	mov     dps, #0x01	inc	dptr	movx	@dptr,a;	genPlus 	mov	dps, #0x01	mov	dptr, #_gmtime_days_1_1	dec	dps	mov	dptr, #_gmtime_sloc1_1_0; Peephole 224: DPS usage re-arranged.;	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	dec	dps	inc	dptr	movx	a,@dptr	xch	a, ap	inc	dps	inc	dptr	movx	a,@dptr	addc 	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,#_gmtime_sloc2_1_0	pop	acc	inc	dptr	inc	dptr	inc	dptr	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a;	genAssign 	mov	dptr,#_gmtime_sloc2_1_0;	genAssign: resultIsFar = TRUE;	genFarFarAssign (390 auto-toggle fun)	mov	dps, #0x21	mov	dptr,#_gmtime_days_1_1	movx	a,@dptr	movx	@dptr,a	inc	dptr	inc	dptr	movx	a,@dptr	movx	@dptr,a	inc	dptr	inc	dptr	movx	a,@dptr	movx	@dptr,a	inc	dptr	inc	dptr	movx	a,@dptr	movx	@dptr,a	mov	dps, #0;	genCmpGt 	mov	dptr,#_gmtime_sloc2_1_0;	genCmp	clr	c;	genCmp #1: 3/0/0	mov	a,r2;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	movx	a,@dptr	xch	a, b	subb	a,b;	genCmp #1: 2/0/1	mov	a,r3;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	inc	dptr	movx	a,@dptr	xch	a, b	subb	a,b;	genCmp #1: 1/0/2	mov	a,r4;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	inc	dptr	movx	a,@dptr	xch	a, b	subb	a,b;	genCmp #1: 0/0/3	mov	a,r5;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	inc	dptr	movx	a,@dptr	xch	a, b	subb	a,b;	genIfxJump ; Peephole 132   changed ljmp to sjmp; Peephole 160   removed sjmp by inverse jump logic	jc   00103$00135$:;	time.c 137;	genPlus 	inc	r6	cjne	r6,#0x00,00136$	inc	r700136$:;	did genPlusIncr;	genGoto 	ljmp	00101$;	genLabel 00103$:;	time.c 139;	genMinus 	mov	a,r6	add	a,#0x94	mov	r6,a	mov	a,r7	addc	a,#0xf8	mov	r7,a;	genPointerSet 	mov	dptr,#(_lastTime + 0x0005)	mov	a,r6	movx	@dptr,a	inc	dptr	mov	a,r7	movx	@dptr,a;	time.c 141;	genIfx 	mov	a,r0;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00121$00137$:;	genAssign ;	genAssign: resultIsFar = FALSE	mov	r6,#0x6E	mov	r7,#0x01;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00122$00121$:;	genAssign ;	genAssign: resultIsFar = FALSE	mov	r6,#0x6D	mov	r7,#0x01;	genLabel 00122$:;	genCast 	mov	dptr,#_gmtime_sloc2_1_0	mov	a,r6	movx	@dptr,a	inc	dptr	mov	a,r7	movx	@dptr,a	mov	a,r7	rlc	a	subb	a,acc	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a;	genMinus 	mov	dptr,#_gmtime_days_1_1	mov	dps, #0x01	mov	dptr, #_gmtime_sloc2_1_0	dec	dps	clr	c	movx	a,@dptr	xch	a, ap	inc	dps	movx	a,@dptr	xch	a, ap	subb	a,ap	push	acc	dec	dps	inc	dptr	movx	a,@dptr	xch	a, ap	inc	dps	inc	dptr	movx	a,@dptr	xch	a, ap	subb	a,ap	push	acc	dec	dps	inc	dptr	movx	a,@dptr	xch	a, ap	inc	dps	inc	dptr	movx	a,@dptr	xch	a, ap	subb	a,ap	push	acc	dec	dps	inc	dptr	movx	a,@dptr	xch	a, ap	inc	dps	inc	dptr	movx	a,@dptr	xch	a, ap	subb	a,ap	push	acc	mov	dps, #0x00	pop	acc	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a;	time.c 142;	genMinus 	mov	dps, #0x01	mov	dptr, #_gmtime_days_1_1	dec	dps	clr	c	mov	a,r2	xch	a, ap	inc	dps	movx	a,@dptr	xch	a, ap	subb	a,ap	mov	r2,a	mov	a,r3	xch	a, ap	inc	dptr	movx	a,@dptr	xch	a, ap	subb	a,ap	mov	r3,a	mov	a,r4	xch	a, ap	inc	dptr	movx	a,@dptr	xch	a, ap	subb	a,ap	mov	r4,a	mov	a,r5	xch	a, ap	inc	dptr	movx	a,@dptr	xch	a, ap	subb	a,ap	mov	r5,a	mov	dps, #0x00;	time.c 143;	genCast 	mov	ar6,r2	mov	ar7,r3;	genPointerSet 	mov	dptr,#(_lastTime + 0x0008)	mov	a,r6	movx	@dptr,a	inc	dptr	mov	a,r7	movx	@dptr,a;	time.c 148;	genAssign ;	genAssign: resultIsFar = TRUE	mov	r6,#0x00;	genLabel 00113$:;	genCmpLt ;	genCmp	cjne	r6,#0x0C,00138$00138$:;	genIfxJump 	jc	00139$	ljmp	00116$00139$:;	time.c 149;	genCmpEq ;	gencjneshort	mov	a,r6; Peephole 132   changed ljmp to sjmp; Peephole 199   optimized misc jump sequence	cjne a,#0x01,00108$;00140$:; Peephole 200   removed redundant sjmp00141$:;	time.c 150;	genIfx 	mov	a,r0;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00105$00142$:;	time.c 151;	genAssign ;	genAssign: resultIsFar = TRUE	mov	r7,#0x1D;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00109$00105$:;	time.c 153;	genAssign ;	genAssign: resultIsFar = TRUE	mov	r7,#0x1C;	genGoto ;	genLabel ; Peephole 132   changed ljmp to sjmp	sjmp 00109$00108$:;	time.c 156;	genPlus 	mov	dptr,#_gmtime_sloc2_1_0	mov	a,r6	add	a,#_monthDays	movx	@dptr,a; Peephole 180   changed mov to clr	clr  a	addc	a,#(_monthDays >> 8)	inc	dptr	movx	@dptr,a; Peephole 180   changed mov to clr	clr  a	addc	a,#(_monthDays >> 16)	inc	dptr	movx	@dptr,a;	genPointerGet 	mov	dptr,#_gmtime_sloc2_1_0;	gencodePointerGet -- indirection special case.	movx	a,@dptr	push	acc	inc	dptr	movx	a,@dptr	push	acc	inc	dptr	movx	a,@dptr	mov	dpx,a	pop	dph	pop	dpl	clr	a	movc	a,@a+dptr	mov	r1,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	ar7,r1;	genLabel 00109$:;	time.c 159;	genCast 	mov	dptr,#_gmtime_sloc2_1_0	mov	a,r7	movx	@dptr,a	inc	dptr; Peephole 101   removed redundant mov; Peephole 180   changed mov to clr	clr  a	movx @dptr,a	inc  dptr	movx @dptr,a	inc	dptr; Peephole 180   changed mov to clr	clr  a	movx	@dptr,a;	genCmpLt 	mov	dptr,#_gmtime_sloc2_1_0;	genCmp	clr	c;	genCmp #1: 3/0/0	mov	a,r2;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	movx	a,@dptr	xch	a, b	subb	a,b;	genCmp #1: 2/0/1	mov	a,r3;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	inc	dptr	movx	a,@dptr	xch	a, b	subb	a,b;	genCmp #1: 1/0/2	mov	a,r4;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	inc	dptr	movx	a,@dptr	xch	a, b	subb	a,b;	genCmp #1: 0/0/3	mov	a,r5;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	inc	dptr	movx	a,@dptr	xch	a, b	subb	a,b;	genIfxJump ; Peephole 132   changed ljmp to sjmp; Peephole 160   removed sjmp by inverse jump logic	jc   00116$00143$:;	time.c 160;	genMinus 	mov	dps, #0x01	mov	dptr, #_gmtime_sloc2_1_0	dec	dps	clr	c	mov	a,r2	xch	a, ap	inc	dps	movx	a,@dptr	xch	a, ap	subb	a,ap	mov	r2,a	mov	a,r3	xch	a, ap	inc	dptr	movx	a,@dptr	xch	a, ap	subb	a,ap	mov	r3,a	mov	a,r4	xch	a, ap	inc	dptr	movx	a,@dptr	xch	a, ap	subb	a,ap	mov	r4,a	mov	a,r5	xch	a, ap	inc	dptr	movx	a,@dptr	xch	a, ap	subb	a,ap	mov	r5,a	mov	dps, #0x00;	time.c 148;	genPlus 	inc	r6;	did genPlusIncr;	genGoto 	ljmp	00113$;	genLabel 00116$:;	time.c 165;	genPointerSet 	mov	dptr,#(_lastTime + 0x0004)	mov	a,r6	movx	@dptr,a;	time.c 166;	genPlus 	inc	r2	cjne	r2,#0x00,00144$	inc	r3	cjne	r3,#0x00,00144$	inc	r4	cjne	r4,#0x00,00144$	inc	r500144$:;	did genPlusIncr;	genCast ;	genPointerSet 	mov	dptr,#(_lastTime + 0x0003)	mov	a,r2	movx	@dptr,a;	time.c 168;	genPointerSet 	mov	dptr,#(_lastTime + 0x000a); Peephole 180   changed mov to clr	clr  a	movx	@dptr,a;	time.c 170;	genCast 	mov	r2,#_lastTime	mov	r3,#(_lastTime >> 8)	mov	r4,#(_lastTime >> 16)	mov	r5,#0x01;	genRet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5;	genLabel 00117$:;	genEndFunction 	ret;	time.c 174;	genFunction ;	-----------------------------------------;	 function mktime;	-----------------------------------------_mktime:;	time.c 0;	genReceive 	mov	r2,dpl	mov	r3,dph	mov	r4,dpx	mov	r5,b;	time.c 175;	genPlus 	mov	a,#0x05	add	a,r2	mov	r6,a; Peephole 180   changed mov to clr	clr  a	addc	a,r3	mov	r7,a; Peephole 180   changed mov to clr	clr  a	addc	a,r4	mov	r0,a	mov	ar1,r5;	genPointerGet ;	genGenPointerGet 	mov	dpl,r6	mov	dph,r7	mov	dpx,r0	mov	b,r1	lcall	__gptrget	mov	r6,a	inc	dptr	lcall	__gptrget	mov	r7,a;	genPlus 	mov	dptr,#_mktime_year_1_1	mov	a,#0x6C	add	a,r6	movx	@dptr,a	mov	a,#0x07	addc	a,r7	inc	dptr	movx	@dptr,a;	genPlus 	mov	a,#0x04	add	a,r2	mov	r0,a; Peephole 180   changed mov to clr	clr  a	addc	a,r3	mov	r1,a; Peephole 180   changed mov to clr	clr  a	addc	a,r4	mov	r6,a	mov	ar7,r5;	genPointerGet ;	genGenPointerGet 	mov	dpl,r0	mov	dph,r1	mov	dpx,r6	mov	b,r7	lcall	__gptrget;	genCast ; Peephole 100   removed redundant mov	mov  r0,a	mov  dptr,#_mktime_month_1_1	movx @dptr,a	inc	dptr; Peephole 180   changed mov to clr	clr  a	movx	@dptr,a;	time.c 178;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	_CheckTime	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	time.c 181;	genMinus 	mov	dptr,#_mktime_year_1_1	movx	a,@dptr	add	a,#0x4e	mov	r0,a	inc	dptr	movx	a,@dptr	addc	a,#0xf8;	genCast ; Peephole 105   removed redundant mov	mov  r1,a	rlc	a	subb	a,acc	mov	r6,a	mov	r7,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#__mulslong_PARM_2	mov	a,#0x3C	movx	@dptr,a	clr	a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	mov	dpl,r0	mov	dph,r1	mov	dpx,r6	mov	b,r7	lcall	__mulslong	mov	r6,dpl	mov	r7,dph	mov	r0,dpx	mov	r1,b	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#__mulslong_PARM_2	mov	a,#0x3C	movx	@dptr,a	clr	a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	mov	dpl,r6	mov	dph,r7	mov	dpx,r0	mov	b,r1	lcall	__mulslong	mov	r6,dpl	mov	r7,dph	mov	r0,dpx	mov	r1,b	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#__mulslong_PARM_2	mov	a,#0x18	movx	@dptr,a	clr	a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	mov	dpl,r6	mov	dph,r7	mov	dpx,r0	mov	b,r1	lcall	__mulslong	mov	r6,dpl	mov	r7,dph	mov	r0,dpx	mov	r1,b	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#__mulslong_PARM_2	mov	a,#0x6D	movx	@dptr,a	inc	dptr	mov	a,#0x01	movx	@dptr,a	clr	a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a;	genCall 	push	ar2	push	ar3	push	ar4

⌨️ 快捷键说明

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