time.asm

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

ASM
3,690
字号
	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,#_mktime_seconds_1_1	mov	a,r6	movx	@dptr,a	inc	dptr	mov	a,r7	movx	@dptr,a	inc	dptr	mov	a,r0	movx	@dptr,a	inc	dptr	mov	a,r1	movx	@dptr,a;	time.c 184;	genAssign 	mov	dptr,#_mktime_seconds_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (390 auto-toggle fun)	mov	dps, #0x21	mov	dptr,#_mktime_seconds_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;	genAssign ;	genAssign: resultIsFar = TRUE	mov	r6,#0xB2	mov	r7,#0x07;	genLabel 00107$:;	genCmpLt 	mov	dptr,#_mktime_year_1_1;	genCmp	clr	c;	genCmp #1: 1/1/0	mov	a,r6;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	movx	a,@dptr	xch	a, b	subb	a,b;	genCmp #1: 0/1/1	mov	a,r7;	genCmp #2;	genCmp #3	xrl	a,#0x80;	genCmp #3.2	push	acc	inc	dptr	movx	a,@dptr	mov	b,a	xrl	b,#0x80	pop	acc	subb	a,b	clr	a	rlc	a	mov	r0,a;	genAssign 	mov	dptr,#_mktime_seconds_1_1;	genAssign: resultIsFar = TRUE;	genFarFarAssign (390 auto-toggle fun)	mov	dps, #0x21	mov	dptr,#_mktime_seconds_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;	genIfx 	mov	a,r0;	genIfxJump 	jnz	00124$	ljmp	00123$00124$:;	time.c 185;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#__modsint_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	__modsint	mov	r0,dpl	mov	r1,dph	pop	ar7	pop	ar6	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genCmpEq ;	gencjneshort	mov	a,r0; Peephole 132   changed ljmp to sjmp; Peephole 197   optimized misc jump sequence	cjne a,#0x00,00109$	mov  a,r1	cjne a,#0x00,00109$;00125$:; Peephole 200   removed redundant sjmp00126$:;	time.c 186;	genPlus 	mov	dptr,#_mktime_seconds_1_1;	Swapped plus args.	movx	a,@dptr	add	a,#0x80	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,#0x51	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,#0x01	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,#0x00	movx	@dptr,a;	genLabel 00109$:;	time.c 184;	genPlus 	inc	r6	cjne	r6,#0x00,00127$	inc	r700127$:;	did genPlusIncr;	genGoto 	ljmp	00107$;	time.c 191;	genLabel 00123$:;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#__modsint_PARM_2	mov	a,#0x04	movx	@dptr,a	clr	a	inc	dptr	movx	@dptr,a;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	mov	dptr,#_mktime_year_1_1	movx	a,@dptr	mov	r2,a	inc	dptr	movx	a,@dptr	mov	dph,a	mov	dpl,r2	lcall	__modsint	mov	r6,dpl	mov	r7,dph	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genCmpEq ;	gencjne;	gencjneshort	mov	a,r6	cjne	a,#0x00,00128$	mov	a,r7	cjne	a,#0x00,00128$	mov	a,#0x01	sjmp	00129$00128$:	clr	a00129$:	mov	r6,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	r7,#0x00	mov	r0,#0x00;	genLabel 00111$:;	genCmpLt 	mov	dptr,#_mktime_month_1_1;	genCmp	clr	c;	genCmp #1: 1/1/0	mov	a,r7;	genCmp #2;	genCmp #4;	genCmp #4.1	xch	a, b	movx	a,@dptr	xch	a, b	subb	a,b;	genCmp #1: 0/1/1	mov	a,r0;	genCmp #2;	genCmp #3	xrl	a,#0x80;	genCmp #3.2	push	acc	inc	dptr	movx	a,@dptr	mov	b,a	xrl	b,#0x80	pop	acc	subb	a,b;	genIfxJump 	jc	00130$	ljmp	00114$00130$:;	time.c 192;	genCmpEq ;	gencjneshort	mov	a,r7; Peephole 132   changed ljmp to sjmp; Peephole 197   optimized misc jump sequence	cjne a,#0x01,00104$	mov  a,r0	cjne a,#0x00,00104$;00131$:; Peephole 200   removed redundant sjmp00132$:;	genIfx 	mov	a,r6;	genIfxJump ; Peephole 110   removed ljmp by inverse jump logic	jz  00104$00133$:;	time.c 193;	genPlus 	mov	dptr,#_mktime_seconds_1_1;	Swapped plus args.	movx	a,@dptr	add	a,#0x80	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,#0x3B	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,#0x26	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,#0x00	movx	@dptr,a;	genGoto 	ljmp	00113$;	genLabel 00104$:;	time.c 195;	genPlus 	mov	dptr,#_mktime_sloc0_1_0	mov	a,r7	add	a,#_monthDays	movx	@dptr,a	mov	a,r0	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,#_mktime_sloc0_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;	genCast ; Peephole 100   removed redundant mov	mov  r1,a	mov  dptr,#_mktime_sloc1_1_0	movx @dptr,a	mov	a,r1	rlc	a	subb	a,acc	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a	inc	dptr	movx	@dptr,a;	genAssign ;	genAssign: resultIsFar = TRUE	mov	dptr,#__mulslong_PARM_2	mov	a,#0x80	movx	@dptr,a	inc	dptr	mov	a,#0x51	movx	@dptr,a	inc	dptr	mov	a,#0x01	movx	@dptr,a	clr	a	inc	dptr	movx	@dptr,a;	genCall 	push	ar2	push	ar3	push	ar4	push	ar5	push	ar6	push	ar7	push	ar0	mov	dptr,#_mktime_sloc1_1_0	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	b,a	mov	dpx,r4	mov	dph,r3	mov	dpl,r2	lcall	__mulslong	mov     dps, #0x01	mov     dptr, #_mktime_sloc1_1_0	mov	a,dpl	movx	@dptr,a	inc	dptr	mov	a,dph	movx	@dptr,a	inc	dptr	mov	a,dpx	movx	@dptr,a	inc	dptr	mov	a,b	movx	@dptr,a	mov	dps, #0x00	pop	ar0	pop	ar7	pop	ar6	pop	ar5	pop	ar4	pop	ar3	pop	ar2;	genPlus 	mov	dptr,#_mktime_sloc1_1_0	mov	dps, #0x01	mov	dptr, #_mktime_seconds_1_1	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	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	pop	acc	inc	dps	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a	pop	acc	lcall	__decdptr	movx	@dptr,a	mov	dps, #0x00;	genLabel 00113$:;	time.c 191;	genPlus 	inc	r7	cjne	r7,#0x00,00134$	inc	r000134$:;	did genPlusIncr;	genGoto 	ljmp	00111$;	genLabel 00114$:;	time.c 199;	genPlus 	mov	a,#0x03	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;	genMinus 	dec	r6;	genCast 	mov	r7,#0x00	mov	r0,#0x00	mov	r1,#0x00;	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,#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;	genPlus 	mov	dptr,#_mktime_seconds_1_1;	Swapped plus args.	movx	a,@dptr	add	a,r6	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,r7	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,r0	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,r1	movx	@dptr,a;	time.c 200;	genPlus 	mov	a,#0x02	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;	genCast 	mov	r7,#0x00	mov	r0,#0x00	mov	r1,#0x00;	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,#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;	genPlus 	mov	dptr,#_mktime_seconds_1_1;	Swapped plus args.	movx	a,@dptr	add	a,r6	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,r7	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,r0	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,r1	movx	@dptr,a;	time.c 201;	genPlus 	mov	a,#0x01	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;	genCast 	mov	r7,#0x00	mov	r0,#0x00	mov	r1,#0x00;	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;	genPlus 	mov	dptr,#_mktime_seconds_1_1;	Swapped plus args.	movx	a,@dptr	add	a,r6	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,r7	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,r0	movx	@dptr,a	inc	dptr	movx	a,@dptr	addc	a,r1	movx	@dptr,a;	time.c 202;	genPointerGet ;	genGenPointerGet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5	lcall	__gptrget	mov	r2,a;	genCast 	mov	r3,#0x00	mov	r4,#0x00	mov	r5,#0x00;	genPlus 	mov	dptr,#_mktime_seconds_1_1;	Swapped plus args.	movx	a,@dptr	add	a,r2	mov	r2,a	inc	dptr	movx	a,@dptr	addc	a,r3	mov	r3,a	inc	dptr	movx	a,@dptr	addc	a,r4	mov	r4,a	inc	dptr	movx	a,@dptr	addc	a,r5	mov	r5,a;	time.c 203;	genRet 	mov	dpl,r2	mov	dph,r3	mov	dpx,r4	mov	b,r5;	genLabel 00115$:;	genEndFunction 	ret	.area CSEG    (CODE)_monthDays:	.db #0x1F	.db #0x1C	.db #0x1F	.db #0x1E	.db #0x1F	.db #0x1E	.db #0x1F	.db #0x1F	.db #0x1E	.db #0x1F	.db #0x1E	.db #0x1F___month:	.byte _str_1,(_str_1 >> 8),(_str_1 >> 16)	.byte _str_2,(_str_2 >> 8),(_str_2 >> 16)	.byte _str_3,(_str_3 >> 8),(_str_3 >> 16)	.byte _str_4,(_str_4 >> 8),(_str_4 >> 16)	.byte _str_5,(_str_5 >> 8),(_str_5 >> 16)	.byte _str_6,(_str_6 >> 8),(_str_6 >> 16)	.byte _str_7,(_str_7 >> 8),(_str_7 >> 16)	.byte _str_8,(_str_8 >> 8),(_str_8 >> 16)	.byte _str_9,(_str_9 >> 8),(_str_9 >> 16)	.byte _str_10,(_str_10 >> 8),(_str_10 >> 16)	.byte _str_11,(_str_11 >> 8),(_str_11 >> 16)	.byte _str_12,(_str_12 >> 8),(_str_12 >> 16)___day:	.byte _str_13,(_str_13 >> 8),(_str_13 >> 16)	.byte _str_14,(_str_14 >> 8),(_str_14 >> 16)	.byte _str_15,(_str_15 >> 8),(_str_15 >> 16)	.byte _str_16,(_str_16 >> 8),(_str_16 >> 16)	.byte _str_17,(_str_17 >> 8),(_str_17 >> 16)	.byte _str_18,(_str_18 >> 8),(_str_18 >> 16)	.byte _str_19,(_str_19 >> 8),(_str_19 >> 16)__str_0:	.ascii "%s %s %2d %02d:%02d:%02d %04d"	.db 0x0A	.db 0x00_str_1:	.ascii "Jan"	.db 0x00_str_2:	.ascii "Feb"	.db 0x00_str_3:	.ascii "Mar"	.db 0x00_str_4:	.ascii "Apr"	.db 0x00_str_5:	.ascii "May"	.db 0x00_str_6:	.ascii "Jun"	.db 0x00_str_7:	.ascii "Jul"	.db 0x00_str_8:	.ascii "Aug"	.db 0x00_str_9:	.ascii "Sep"	.db 0x00_str_10:	.ascii "Oct"	.db 0x00_str_11:	.ascii "Nov"	.db 0x00_str_12:	.ascii "Dec"	.db 0x00_str_13:	.ascii "Sun"	.db 0x00_str_14:	.ascii "Mon"	.db 0x00_str_15:	.ascii "Tue"	.db 0x00_str_16:	.ascii "Wed"	.db 0x00_str_17:	.ascii "Thu"	.db 0x00_str_18:	.ascii "Fri"	.db 0x00_str_19:	.ascii "Sat"	.db 0x00

⌨️ 快捷键说明

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