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

📄 cal.asm

📁 此程序为出租车计价器
💻 ASM
📖 第 1 页 / 共 3 页
字号:
.CODE
.public _Cal_SetSysTime
_Cal_SetSysTime:	.proc
.debug
	.dw '.stabn 0x44,0,123,',0,0
	.dd LM42-_Cal_SetSysTime
	.dw 0x0d,0x0a
.code
LM42:
	// total=1, vars=1
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=1
	bp=sp+1

	R1=BP+4
	R3=R1	// QImode move
	R2=[R3]	// QImode move
.debug
	.dw '.stabn 0x44,0,124,',0,0
	.dd LM43-_Cal_SetSysTime
	.dw 0x0d,0x0a
.code
LM43:
	R4=R2	// QImode move
	R3=[R4]	// QImode move
	[_sDate]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,125,',0,0
	.dd LM44-_Cal_SetSysTime
	.dw 0x0d,0x0a
.code
LM44:
	R3=R2	// QImode move
	R3=R2+1
	[BP]=R3	// QImode move
	R4=[BP]	// QImode move
	R3=[R4]	// QImode move
	[_sDate+1]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,126,',0,0
	.dd LM45-_Cal_SetSysTime
	.dw 0x0d,0x0a
.code
LM45:
	R3=R2	// QImode move
	R3=R2+2
	[BP]=R3	// QImode move
	R4=[BP]	// QImode move
	R3=[R4]	// QImode move
	[_sDate+2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,127,',0,0
	.dd LM46-_Cal_SetSysTime
	.dw 0x0d,0x0a
.code
LM46:
	R3=R2	// QImode move
	R3=R2+3
	[BP]=R3	// QImode move
	R4=[BP]	// QImode move
	R3=[R4]	// QImode move
	[_sDate+3]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,128,',0,0
	.dd LM47-_Cal_SetSysTime
	.dw 0x0d,0x0a
.code
LM47:
	R3=R2	// QImode move
	R3=R2+4
	[BP]=R3	// QImode move
	R4=[BP]	// QImode move
	R3=[R4]	// QImode move
	[_sDate+4]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,129,',0,0
	.dd LM48-_Cal_SetSysTime
	.dw 0x0d,0x0a
.code
LM48:
	R3=R2	// QImode move
	R3=R2+5
	[BP]=R3	// QImode move
	R4=[BP]	// QImode move
	R3=[R4]	// QImode move
	[_sDate+5]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,130,',0,0
	.dd LM49-_Cal_SetSysTime
	.dw 0x0d,0x0a
.code
LM49:
.debug
	.dw '.stabn 0x44,0,130,',0,0
	.dd LM50-_Cal_SetSysTime
	.dw 0x0d,0x0a
.code
LM50:
L10:

	sp+=1
	pop bp from [sp]
	retf
	.endp	// end of Cal_SetSysTime

.debug
	.dw '.stabs "DateSetting:p21",160,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "DateSetting:r23=*21",64,0,0,2',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME9-_Cal_SetSysTime
	.dw 0x0d,0x0a
.code
LME9:
.code
.debug
	.dw '.stabs "Cal_StartTimer:F19",36,0,0,',0,0,offset _Cal_StartTimer,seg _Cal_StartTimer,0x0d,0x0a
.CODE
.public _Cal_StartTimer
_Cal_StartTimer:	.proc
.debug
	.dw '.stabn 0x44,0,139,',0,0
	.dd LM51-_Cal_StartTimer
	.dw 0x0d,0x0a
.code
LM51:
	// total=3, vars=3
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=3
	bp=sp+1

	R1=BP+6
.debug
	.dw '.stabn 0x44,0,140,',0,0
	.dd LM52-_Cal_StartTimer
	.dw 0x0d,0x0a
.code
LM52:
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R3=R2	// QImode move
	R2=R3 lsl 1
	R4=_ulTimer	// QImode move
	[bp+2]=R4	// QImode move
	R4=[bp+2]	// QImode move
	R4+=R2	// addqi3_r0r
	[bp+2]=R4	// QImode move
	R3=0	// HImode immediate to register move
	R4=0
	[BP++]=R3	// [RD]=RS HImode, RD!=RS+1
	[BP--]=R4
	R3=[BP++]	// RD=[RS] HImode, RD!=RS
	R4=[BP--]
	R2=[bp+2]	// QImode move
	[R2]=R3	// [RD]=RS HImode, RD=RS+1
	PUSH BP TO [SP]
	BP=R2
	[BP+1]=R4
	POP BP FROM [SP]
.debug
	.dw '.stabn 0x44,0,141,',0,0
	.dd LM53-_Cal_StartTimer
	.dw 0x0d,0x0a
.code
LM53:
.debug
	.dw '.stabn 0x44,0,141,',0,0
	.dd LM54-_Cal_StartTimer
	.dw 0x0d,0x0a
.code
LM54:
L11:

	sp+=3
	pop bp from [sp]
	retf
	.endp	// end of Cal_StartTimer

.debug
	.dw '.stabs "TMIndex:p4",160,0,0,6',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME10-_Cal_StartTimer
	.dw 0x0d,0x0a
.code
LME10:
.code
.debug
	.dw '.stabs "Cal_ClearTimer:F19",36,0,0,',0,0,offset _Cal_ClearTimer,seg _Cal_ClearTimer,0x0d,0x0a
.CODE
.public _Cal_ClearTimer
_Cal_ClearTimer:	.proc
.debug
	.dw '.stabn 0x44,0,150,',0,0
	.dd LM55-_Cal_ClearTimer
	.dw 0x0d,0x0a
.code
LM55:
	// total=3, vars=3
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=3
	bp=sp+1

	R1=BP+6
.debug
	.dw '.stabn 0x44,0,151,',0,0
	.dd LM56-_Cal_ClearTimer
	.dw 0x0d,0x0a
.code
LM56:
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R3=R2	// QImode move
	R2=R3 lsl 1
	R4=_ulTimer	// QImode move
	[bp+2]=R4	// QImode move
	R4=[bp+2]	// QImode move
	R4+=R2	// addqi3_r0r
	[bp+2]=R4	// QImode move
	R3=0	// HImode immediate to register move
	R4=0
	[BP++]=R3	// [RD]=RS HImode, RD!=RS+1
	[BP--]=R4
	R3=[BP++]	// RD=[RS] HImode, RD!=RS
	R4=[BP--]
	R2=[bp+2]	// QImode move
	[R2]=R3	// [RD]=RS HImode, RD=RS+1
	PUSH BP TO [SP]
	BP=R2
	[BP+1]=R4
	POP BP FROM [SP]
.debug
	.dw '.stabn 0x44,0,152,',0,0
	.dd LM57-_Cal_ClearTimer
	.dw 0x0d,0x0a
.code
LM57:
.debug
	.dw '.stabn 0x44,0,152,',0,0
	.dd LM58-_Cal_ClearTimer
	.dw 0x0d,0x0a
.code
LM58:
L12:

	sp+=3
	pop bp from [sp]
	retf
	.endp	// end of Cal_ClearTimer

.debug
	.dw '.stabs "TMIndex:p4",160,0,0,6',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME11-_Cal_ClearTimer
	.dw 0x0d,0x0a
.code
LME11:
.code
.debug
	.dw '.stabs "Cal_ReadTimer:F5",36,0,0,',0,0,offset _Cal_ReadTimer,seg _Cal_ReadTimer,0x0d,0x0a
.CODE
.public _Cal_ReadTimer
_Cal_ReadTimer:	.proc
.debug
	.dw '.stabn 0x44,0,161,',0,0
	.dd LM59-_Cal_ReadTimer
	.dw 0x0d,0x0a
.code
LM59:
	// total=4, vars=4
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=4
	bp=sp+1

	R1=BP+7
	[bp+2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,162,',0,0
	.dd LM60-_Cal_ReadTimer
	.dw 0x0d,0x0a
.code
LM60:
	R2=[bp+2]	// QImode move
	R1=[R2]	// QImode move
	R2=R1	// QImode move
	R1=R2 lsl 1
	R4=_ulTimer	// QImode move
	[bp+3]=R4	// QImode move
	R3=[bp+3]	// QImode move
	R3+=R1	// addqi3_r0r
	[bp+3]=R3	// QImode move
	R2=[bp+3]	// QImode move
	R1=[R2++]	// RD=[RS] HImode, RD+1=RS
	R2=[R2]
	[BP++]=R1	// [RD]=RS HImode, RD!=RS+1
	[BP--]=R2
	R3=[BP++]	// RD=[RS] HImode, RD!=RS
	R4=[BP--]
	R1=R3	// HImode register to register move
	R2=R4
	pc=L13	// Indirect jump
.debug
	.dw '.stabn 0x44,0,163,',0,0
	.dd LM61-_Cal_ReadTimer
	.dw 0x0d,0x0a
.code
LM61:
.debug
	.dw '.stabn 0x44,0,163,',0,0
	.dd LM62-_Cal_ReadTimer
	.dw 0x0d,0x0a
.code
LM62:
L13:

	sp+=4
	pop bp from [sp]
	retf
	.endp	// end of Cal_ReadTimer

.debug
	.dw '.stabs "TMIndex:p4",160,0,0,7',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME12-_Cal_ReadTimer
	.dw 0x0d,0x0a
.code
LME12:
.code
.debug
	.dw '.stabs "Cal_In_IRQ_ServiceLoop:F19",36,0,0,',0,0,offset _Cal_In_IRQ_ServiceLoop,seg _Cal_In_IRQ_ServiceLoop,0x0d,0x0a
.CODE
.public _Cal_In_IRQ_ServiceLoop
_Cal_In_IRQ_ServiceLoop:	.proc
.debug
	.dw '.stabn 0x44,0,172,',0,0
	.dd LM63-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM63:
	// total=1, vars=1
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=1
	bp=sp+1

	R1=BP+4
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,173,',0,0
	.dd LM64-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM64:
	R1=[_ulTimer]	// HImode RD=[Label]
	R2=[_ulTimer+1]
	R3=R1+1	// HImode RD=RS+#IMM16
	R4=R2+0, Carry
	[_ulTimer]=R3	// HImode [Label]=RS
	[_ulTimer+1]=R4
.debug
	.dw '.stabn 0x44,0,174,',0,0
	.dd LM65-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM65:
	R1=[_ulTimer+2]	// HImode RD=[Label]
	R2=[_ulTimer+3]
	R3=R1+1	// HImode RD=RS+#IMM16
	R4=R2+0, Carry
	[_ulTimer+2]=R3	// HImode [Label]=RS
	[_ulTimer+3]=R4
.debug
	.dw '.stabn 0x44,0,175,',0,0
	.dd LM66-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM66:
	R2=[_sDate+5]	// QImode move
	R1=R2+1
	R2=R1	// QImode move
	[_sDate+5]=R2	// QImode move
	CMP R2,120	// QImode compare
	JZ L20	// QImode NE
	PC=L15
L20:
.debug
	.dw '.stabn 0x44,0,177,',0,0
	.dd LM67-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM67:
	R1=0	// QImode move
	[_sDate+5]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,178,',0,0
	.dd LM68-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM68:
	R2=[_sDate+4]	// QImode move
	R1=R2+1
	R2=R1	// QImode move
	[_sDate+4]=R2	// QImode move
	CMP R2,60	// QImode compare
	JZ L21	// QImode NE
	PC=L16
L21:
.debug
	.dw '.stabn 0x44,0,180,',0,0
	.dd LM69-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM69:
	R1=0	// QImode move
	[_sDate+4]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,181,',0,0
	.dd LM70-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM70:
	R2=[_sDate+3]	// QImode move
	R1=R2+1
	R2=R1	// QImode move
	[_sDate+3]=R2	// QImode move
	CMP R2,24	// QImode compare
	JZ L22	// QImode NE
	PC=L17
L22:
.debug
	.dw '.stabn 0x44,0,183,',0,0
	.dd LM71-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM71:
	R1=0	// QImode move
	[_sDate+3]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,184,',0,0
	.dd LM72-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM72:
	R1=_sDate+2	// QImode move
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R3=R2	// QImode move
	R2=R2+1
	R4=R1	// QImode move
	[R4]=R2	// QImode move
	CMP R3,[_uiDayofCurMonth]	// QImode compare
	JZ L23	// QImode NE
	PC=L18
L23:
.debug
	.dw '.stabn 0x44,0,186,',0,0
	.dd LM73-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM73:
	R1=1	// QImode move
	[_sDate+2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,187,',0,0
	.dd LM74-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM74:
	R2=[_sDate+1]	// QImode move
	R1=R2+1
	R2=R1	// QImode move
	[_sDate+1]=R2	// QImode move
	CMP R2,13	// QImode compare
	JZ L24	// QImode NE
	PC=L19
L24:
.debug
	.dw '.stabn 0x44,0,189,',0,0
	.dd LM75-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM75:
	R1=1	// QImode move
	[_sDate+1]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,190,',0,0
	.dd LM76-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM76:
	R1=[_sDate]	// QImode move
	R2=1	// QImode move
	[_sDate]=R1+R2
L19:
.debug
	.dw '.stabn 0x44,0,192,',0,0
	.dd LM77-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM77:
	R1=[_sDate]	// QImode move
	[SP--]=R1	// QImode move
	R1=[_sDate+1]	// QImode move
	[SP--]=R1	// QImode move
	call _Cal_In_GetDayofMonth	// call with return value
	SP=SP+2
	[_uiDayofCurMonth]=R1	// QImode move
L18:
.debug
	.dw '.stabn 0x44,0,194,',0,0
	.dd LM78-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM78:
	R1=1	// QImode move
	[_uiDateChanged]=R1	// QImode move
L17:
.debug
	.dw '.stabn 0x44,0,196,',0,0
	.dd LM79-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM79:
	R1=1	// QImode move
	[_uiHourChanged]=R1	// QImode move
L16:
.debug
	.dw '.stabn 0x44,0,198,',0,0
	.dd LM80-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM80:
	R1=1	// QImode move
	[_uiMinuteChanged]=R1	// QImode move
L15:
.debug
	.dw '.stabn 0x44,0,200,',0,0
	.dd LM81-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM81:
.debug
	.dw '.stabn 0x44,0,200,',0,0
	.dd LM82-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LM82:
L14:

	sp+=1
	pop bp from [sp]
	retf
	.endp	// end of Cal_In_IRQ_ServiceLoop

.debug
	.dw '.stabf ',0,0
	.dd LME13-_Cal_In_IRQ_ServiceLoop
	.dw 0x0d,0x0a
.code
LME13:
.code
.debug
	.dw '.stabs "Cal_HourChanged:F4",36,0,0,',0,0,offset _Cal_HourChanged,seg _Cal_HourChanged,0x0d,0x0a
.CODE
.public _Cal_HourChanged
_Cal_HourChanged:	.proc
.debug
	.dw '.stabn 0x44,0,210,',0,0
	.dd LM83-_Cal_HourChanged
	.dw 0x0d,0x0a
.code
LM83:
	// total=0, vars=0
	// frame_pointer_needed: 1
	push bp to [sp]
	bp=sp+1

	R2=BP+3
.debug
	.dw '.stabn 0x44,0,211,',0,0
	.dd LM84-_Cal_HourChanged
	.dw 0x0d,0x0a
.code
LM84:
	R1=[_uiHourChanged]	// QImode move
	CMP R1,1	// QImode compare
	JZ L28	// QImode NE
	PC=L26
L28:
.debug
	.dw '.stabn 0x44,0,213,',0,0
	.dd LM85-_Cal_HourChanged
	.dw 0x0d,0x0a
.code
LM85:
	R1=0	// QImode move
	[_uiHourChanged]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,214,',0,0
	.dd LM86-_Cal_HourChanged
	.dw 0x0d,0x0a
.code
LM86:
	R1=1	// QImode move
	pc=L25	// Indirect jump
.debug
	.dw '.stabn 0x44,0,215,',0,0
	.dd LM87-_Cal_HourChanged
	.dw 0x0d,0x0a
.code
LM87:
	pc=L27	// Indirect jump
L26:
.debug
	.dw '.stabn 0x44,0,217,',0,0
	.dd LM88-_Cal_HourChanged
	.dw 0x0d,0x0a
.code
LM88:
	R1=0	// QImode move
	pc=L25	// Indirect jump
L27:
.debug
	.dw '.stabn 0x44,0,218,',0,0
	.dd LM89-_Cal_HourChanged

⌨️ 快捷键说明

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