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

📄 cost.asm

📁 此程序为出租车计价器
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	.dd LM51-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM51:
	// 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,134,',0,0
	.dd LM52-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM52:
	R1=0	// HFmode immediate to register move
	R2=0
	[_fCost]=R1	// HFmode [Label]=RS
	[_fCost+1]=R2
.debug
	.dw '.stabn 0x44,0,135,',0,0
	.dd LM53-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM53:
	R1=0	// HFmode immediate to register move
	R2=0
	[_fDayMilege]=R1	// HFmode [Label]=RS
	[_fDayMilege+1]=R2
.debug
	.dw '.stabn 0x44,0,136,',0,0
	.dd LM54-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM54:
	R1=0	// HFmode immediate to register move
	R2=0
	[_fNightMilege]=R1	// HFmode [Label]=RS
	[_fNightMilege+1]=R2
.debug
	.dw '.stabn 0x44,0,137,',0,0
	.dd LM55-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM55:
	R1=0	// HFmode immediate to register move
	R2=0
	[_fRevMilegePoint]=R1	// HFmode [Label]=RS
	[_fRevMilegePoint+1]=R2
.debug
	.dw '.stabn 0x44,0,138,',0,0
	.dd LM56-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM56:
	R1=0	// HImode immediate to register move
	R2=0
	[_ulWaitTime]=R1	// HImode [Label]=RS
	[_ulWaitTime+1]=R2
.debug
	.dw '.stabn 0x44,0,139,',0,0
	.dd LM57-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM57:
	R1=0	// QImode move
	[_uiWaiting]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,140,',0,0
	.dd LM58-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM58:
	R1=0	// QImode move
	[_uiLongWay]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,141,',0,0
	.dd LM59-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM59:
	R1=0	// HFmode immediate to register move
	R2=0
	[_fCurPrice]=R1	// HFmode [Label]=RS
	[_fCurPrice+1]=R2
.debug
	.dw '.stabn 0x44,0,142,',0,0
	.dd LM60-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM60:
	call _Dis_ClearDistance	// call without return value
.debug
	.dw '.stabn 0x44,0,143,',0,0
	.dd LM61-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM61:
.debug
	.dw '.stabn 0x44,0,143,',0,0
	.dd LM62-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LM62:
L16:

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

.debug
	.dw '.stabf ',0,0
	.dd LME4-_Cost_ClearCost
	.dw 0x0d,0x0a
.code
LME4:
.code
.debug
	.dw '.stabs "Cost_WTimeToMilege:F4",36,0,0,',0,0,offset _Cost_WTimeToMilege,seg _Cost_WTimeToMilege,0x0d,0x0a
.CODE
.public _Cost_WTimeToMilege
_Cost_WTimeToMilege:	.proc
.debug
	.dw '.stabn 0x44,0,152,',0,0
	.dd LM63-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM63:
	// total=37, vars=37
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=37
	bp=sp+1

	R1=BP+40
	[bp+3]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,153,',0,0
	.dd LM64-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM64:
LBB2:
.debug
	.dw '.stabn 0x44,0,155,',0,0
	.dd LM65-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM65:
	R1=0	// QImode move
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,156,',0,0
	.dd LM66-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM66:
	R1=BP	// QImode move
	R2=BP+1
	[bp+4]=R2	// QImode move
	R1=[_ulWaitTime]	// HImode RD=[Label]
	R2=[_ulWaitTime+1]
	R3=60	// HImode immediate to register move
	R4=0
	push R3,R4 to [sp]	// pushhi
	push R1,R2 to [sp]	// pushhi
	call __divu2	// call with return value
	SP=SP+4
	R3=[bp+4]	// QImode move
	[R3++]=R1	// [RD]=RS HImode, RD!=RS+1
	[R3--]=R2
.debug
	.dw '.stabn 0x44,0,157,',0,0
	.dd LM67-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM67:
	R1=[_uiWaiting]	// QImode move
	CMP R1,0	// QImode test
	JNZ L32	// QImode EQ
	PC=L18
L32:
.debug
	.dw '.stabn 0x44,0,158,',0,0
	.dd LM68-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM68:
	R1=BP	// QImode move
	R4=BP+1
	[bp+5]=R4	// QImode move
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	call _Cal_ReadTimer	// call with return value
	SP=SP+1
	R3=BP	// QImode move
	R3=BP+1
	[bp+6]=R3	// QImode move
	R3=120	// HImode immediate to register move
	R4=0
	push R3,R4 to [sp]	// pushhi
	push R1,R2 to [sp]	// pushhi
	call __divu2	// call with return value
	SP=SP+4
	[bp+34]=R1	// HImode [BP+#IM6]=RS
	[bp+35]=R2
	R2=[bp+6]	// QImode move
	R1=[R2++]	// RD=[RS] HImode, RD+1=RS
	R2=[R2]
	[bp+7]=R1	// HImode [BP+#IM6]=RS
	[bp+8]=R2
	R3=[bp+7]	// QImode move
	[bp+9]=R3	// QImode move
	R4=[bp+9]	// QImode move
	R3=[bp+34]	// QImode move
	R4+=R3	// addqi3_r0r
	[bp+9]=R4	// QImode move
	R1=[bp+9]	// QImode move
	R4=1	// QImode move
	[bp+10]=R4	// QImode move
	R3=[bp+9]	// QImode move
	R4=[bp+7]	// QImode move
	CMP R3,R4	// QImode compare
	JNB L33	// QImode LTU
	PC=L19
L33:
	R3=0	// QImode move
	[bp+10]=R3	// QImode move
L19:
	R4=[bp+8]	// QImode move
	[bp+11]=R4	// QImode move
	R3=[bp+11]	// QImode move
	R4=[bp+35]	// QImode move
	R3+=R4	// addqi3_r0r
	[bp+11]=R3	// QImode move
	R2=[bp+11]	// QImode move
	R3=[bp+11]	// QImode move
	R4=[bp+10]	// QImode move
	R3+=R4	// addqi3_r0r
	R2=R3	// QImode move
	R3=[bp+5]	// QImode move
	[R3++]=R1	// [RD]=RS HImode, RD!=RS+1
	[R3--]=R2
L18:
.debug
	.dw '.stabn 0x44,0,159,',0,0
	.dd LM69-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM69:
	R1=BP	// QImode move
	R4=BP+1
	[bp+12]=R4	// QImode move
	R3=[bp+12]	// QImode move
	R1=[R3++]	// RD=[RS] HImode, RD!=RS
	R2=[R3--]
	CMP R2,0	// HImode test
	JL  L34	// HImode LT
	JNZ L35
	CMP R1,0
	JNB L35
L34:
	PC=L22
L35:
	R4=[bp+12]	// QImode move
	R1=[R4++]	// RD=[RS] HImode, RD!=RS
	R2=[R4--]
	push R1,R2 to [sp]	// pushhi
	call __cvi2f2	// call with return value
	SP=SP+2
	[bp+13]=R1	// HFmode [BP+#IM6]=RS
	[bp+14]=R2
	pc=L21	// Indirect jump
L22:
	R3=[bp+12]	// QImode move
	R1=[R3++]	// RD=[RS] HImode, RD!=RS
	R2=[R3--]
	R3=R1&1	// HImode RD=RS&#IMM16
	R4=R2&0
	[bp+15]=R3	// HImode [BP+#IM6]=RS
	[bp+16]=R4
	R4=[bp+12]	// QImode move
	R1=[R4++]	// RD=[RS] HImode, RD!=RS
	R2=[R4--]
	R3=1	// QImode move
	[SP--]=R3	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __rshu2	// call with return value
	SP=SP+3
	R4=[bp+15]	// QImode move
	R3=R4	// QImode move
	R3|=R1
	R4=[bp+16]	// QImode move
	[bp+36]=R4	// QImode move
	R4=[bp+36]	// QImode move
	R4|=R2
	[bp+36]=R4	// QImode move
	R1=R3	// QImode move
	R2=[bp+36]	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __cvi2f2	// call with return value
	SP=SP+2
	[bp+13]=R1	// HFmode [BP+#IM6]=RS
	[bp+14]=R2
	R1=[bp+13]	// HFmode RD=[BP+#IM6]
	R2=[bp+14]
	push R1,R2 to [sp]	// pushhf
	R3=[bp+13]	// HFmode RD=[BP+#IM6]
	R4=[bp+14]
	push R3,R4 to [sp]	// pushhf
	call __addf2	// call with return value
	SP=SP+4
	[bp+13]=R1	// HFmode [BP+#IM6]=RS
	[bp+14]=R2
L21:
	R1=[_c_fFirstWaitTimeLimit]	// HFmode RD=[Label]
	R2=[_c_fFirstWaitTimeLimit+1]
	push R1,R2 to [sp]	// pushhf
	R1=[bp+13]	// HFmode RD=[BP+#IM6]
	R2=[bp+14]
	push R1,R2 to [sp]	// pushhf
	call __cmpf2	// call with return value
	SP=SP+4
	CMP R1,1	// QImode compare
	JNL L36	// QImode LT
	PC=L20
L36:
.debug
	.dw '.stabn 0x44,0,161,',0,0
	.dd LM70-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM70:
	R1=BP	// QImode move
	R2=BP+1
	[bp+17]=R2	// QImode move
	R1=BP	// QImode move
	R3=BP+1
	[bp+18]=R3	// QImode move
	R4=[bp+18]	// QImode move
	R1=[R4++]	// RD=[RS] HImode, RD!=RS
	R2=[R4--]
	CMP R2,0	// HImode test
	JL  L37	// HImode LT
	JNZ L38
	CMP R1,0
	JNB L38
L37:
	PC=L24
L38:
	R3=[bp+18]	// QImode move
	R1=[R3++]	// RD=[RS] HImode, RD!=RS
	R2=[R3--]
	push R1,R2 to [sp]	// pushhi
	call __cvi2f2	// call with return value
	SP=SP+2
	[bp+19]=R1	// HFmode [BP+#IM6]=RS
	[bp+20]=R2
	pc=L23	// Indirect jump
L24:
	R4=[bp+18]	// QImode move
	R1=[R4++]	// RD=[RS] HImode, RD!=RS
	R2=[R4--]
	R3=R1&1	// HImode RD=RS&#IMM16
	R4=R2&0
	[bp+21]=R3	// HImode [BP+#IM6]=RS
	[bp+22]=R4
	R4=[bp+18]	// QImode move
	R1=[R4++]	// RD=[RS] HImode, RD!=RS
	R2=[R4--]
	R3=1	// QImode move
	[SP--]=R3	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __rshu2	// call with return value
	SP=SP+3
	R4=[bp+21]	// QImode move
	R3=R4	// QImode move
	R3|=R1
	R4=[bp+22]	// QImode move
	[bp+36]=R4	// QImode move
	R4=[bp+36]	// QImode move
	R4|=R2
	[bp+36]=R4	// QImode move
	R1=R3	// QImode move
	R2=[bp+36]	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __cvi2f2	// call with return value
	SP=SP+2
	[bp+19]=R1	// HFmode [BP+#IM6]=RS
	[bp+20]=R2
	R1=[bp+19]	// HFmode RD=[BP+#IM6]
	R2=[bp+20]
	push R1,R2 to [sp]	// pushhf
	R3=[bp+19]	// HFmode RD=[BP+#IM6]
	R4=[bp+20]
	push R3,R4 to [sp]	// pushhf
	call __addf2	// call with return value
	SP=SP+4
	[bp+19]=R1	// HFmode [BP+#IM6]=RS
	[bp+20]=R2
L23:
	R1=[_c_fFirstWaitTimeLimit]	// HFmode RD=[Label]
	R2=[_c_fFirstWaitTimeLimit+1]
	push R1,R2 to [sp]	// pushhf
	R1=[bp+19]	// HFmode RD=[BP+#IM6]
	R2=[bp+20]
	push R1,R2 to [sp]	// pushhf
	call __subf2	// call with return value
	SP=SP+4
	push R1,R2 to [sp]	// pushhf
	call __cvf2i2	// call with return value
	SP=SP+2
	R3=[bp+17]	// QImode move
	[R3++]=R1	// [RD]=RS HImode, RD!=RS+1
	[R3--]=R2
.debug
	.dw '.stabn 0x44,0,162,',0,0
	.dd LM71-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM71:
	R1=1	// QImode move
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,163,',0,0
	.dd LM72-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM72:
L25:
	R1=BP	// QImode move
	R4=BP+1
	[bp+23]=R4	// QImode move
	R3=[bp+23]	// QImode move
	R1=[R3++]	// RD=[RS] HImode, RD!=RS
	R2=[R3--]
	CMP R2,0	// HImode test
	JL  L39	// HImode LT
	JNZ L40
	CMP R1,0
	JNB L40
L39:
	PC=L29
L40:
	R4=[bp+23]	// QImode move
	R1=[R4++]	// RD=[RS] HImode, RD!=RS
	R2=[R4--]
	push R1,R2 to [sp]	// pushhi
	call __cvi2f2	// call with return value
	SP=SP+2
	[bp+24]=R1	// HFmode [BP+#IM6]=RS
	[bp+25]=R2
	pc=L28	// Indirect jump
L29:
	R3=[bp+23]	// QImode move
	R1=[R3++]	// RD=[RS] HImode, RD!=RS
	R2=[R3--]
	R3=R1&1	// HImode RD=RS&#IMM16
	R4=R2&0
	[bp+26]=R3	// HImode [BP+#IM6]=RS
	[bp+27]=R4
	R4=[bp+23]	// QImode move
	R1=[R4++]	// RD=[RS] HImode, RD!=RS
	R2=[R4--]
	R3=1	// QImode move
	[SP--]=R3	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __rshu2	// call with return value
	SP=SP+3
	R4=[bp+26]	// QImode move
	R3=R4	// QImode move
	R3|=R1
	R4=[bp+27]	// QImode move
	[bp+36]=R4	// QImode move
	R4=[bp+36]	// QImode move
	R4|=R2
	[bp+36]=R4	// QImode move
	R1=R3	// QImode move
	R2=[bp+36]	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __cvi2f2	// call with return value
	SP=SP+2
	[bp+24]=R1	// HFmode [BP+#IM6]=RS
	[bp+25]=R2
	R1=[bp+24]	// HFmode RD=[BP+#IM6]
	R2=[bp+25]
	push R1,R2 to [sp]	// pushhf
	R3=[bp+24]	// HFmode RD=[BP+#IM6]
	R4=[bp+25]
	push R3,R4 to [sp]	// pushhf
	call __addf2	// call with return value
	SP=SP+4
	[bp+24]=R1	// HFmode [BP+#IM6]=RS
	[bp+25]=R2
L28:
	R1=[_c_fWaitTimeLimit]	// HFmode RD=[Label]
	R2=[_c_fWaitTimeLimit+1]
	push R1,R2 to [sp]	// pushhf
	R1=[bp+24]	// HFmode RD=[BP+#IM6]
	R2=[bp+25]
	push R1,R2 to [sp]	// pushhf
	call __cmpf2	// call with return value
	SP=SP+4
	CMP R1,1	// QImode compare
	JL L41	// QImode GE
	PC=L27
L41:
	pc=L20	// Indirect jump
L27:
.debug
	.dw '.stabn 0x44,0,165,',0,0
	.dd LM73-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM73:
	R1=[BP]	// QImode move
	R2=R1+1
	[BP]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,166,',0,0
	.dd LM74-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM74:
	R1=BP	// QImode move
	R2=BP+1
	[bp+28]=R2	// QImode move
	R1=BP	// QImode move
	R3=BP+1
	[bp+29]=R3	// QImode move
	R4=[bp+29]	// QImode move
	R1=[R4++]	// RD=[RS] HImode, RD!=RS
	R2=[R4--]
	CMP R2,0	// HImode test
	JL  L42	// HImode LT
	JNZ L43
	CMP R1,0
	JNB L43
L42:
	PC=L31
L43:
	R3=[bp+29]	// QImode move
	R1=[R3++]	// RD=[RS] HImode, RD!=RS
	R2=[R3--]
	push R1,R2 to [sp]	// pushhi
	call __cvi2f2	// call with return value
	SP=SP+2
	[bp+30]=R1	// HFmode [BP+#IM6]=RS
	[bp+31]=R2
	pc=L30	// Indirect jump
L31:
	R4=[bp+29]	// QImode move
	R1=[R4++]	// RD=[RS] HImode, RD!=RS
	R2=[R4--]
	R3=R1&1	// HImode RD=RS&#IMM16
	R4=R2&0
	[bp+32]=R3	// HImode [BP+#IM6]=RS
	[bp+33]=R4
	R4=[bp+29]	// QImode move
	R1=[R4++]	// RD=[RS] HImode, RD!=RS
	R2=[R4--]
	R3=1	// QImode move
	[SP--]=R3	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __rshu2	// call with return value
	SP=SP+3
	R4=[bp+32]	// QImode move
	R3=R4	// QImode move
	R3|=R1
	R4=[bp+33]	// QImode move
	[bp+36]=R4	// QImode move
	R4=[bp+36]	// QImode move
	R4|=R2
	[bp+36]=R4	// QImode move
	R1=R3	// QImode move
	R2=[bp+36]	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __cvi2f2	// call with return value
	SP=SP+2
	[bp+30]=R1	// HFmode [BP+#IM6]=RS
	[bp+31]=R2
	R1=[bp+30]	// HFmode RD=[BP+#IM6]
	R2=[bp+31]
	push R1,R2 to [sp]	// pushhf
	R3=[bp+30]	// HFmode RD=[BP+#IM6]
	R4=[bp+31]
	push R3,R4 to [sp]	// pushhf
	call __addf2	// call with return value
	SP=SP+4
	[bp+30]=R1	// HFmode [BP+#IM6]=RS
	[bp+31]=R2
L30:
	R1=[_c_fWaitTimeLimit]	// HFmode RD=[Label]
	R2=[_c_fWaitTimeLimit+1]
	push R1,R2 to [sp]	// pushhf
	R1=[bp+30]	// HFmode RD=[BP+#IM6]
	R2=[bp+31]
	push R1,R2 to [sp]	// pushhf
	call __subf2	// call with return value
	SP=SP+4
	push R1,R2 to [sp]	// pushhf
	call __cvf2i2	// call with return value
	SP=SP+2
	R3=[bp+28]	// QImode move
	[R3++]=R1	// [RD]=RS HImode, RD!=RS+1
	[R3--]=R2
.debug
	.dw '.stabn 0x44,0,167,',0,0
	.dd LM75-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM75:
	pc=L25	// Indirect jump
L26:
L20:
.debug
	.dw '.stabn 0x44,0,169,',0,0
	.dd LM76-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM76:
	R2=[BP]	// QImode move
	R1=R2	// QImode move
	pc=L17	// Indirect jump
.debug
	.dw '.stabn 0x44,0,170,',0,0
	.dd LM77-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM77:
LBE2:
.debug
	.dw '.stabn 0x44,0,170,',0,0
	.dd LM78-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
LM78:
L17:

	sp+=37
	pop bp from [sp]
	retf
	.endp	// end of Cost_WTimeToMilege

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB2-_Cost_WTimeToMilege
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "uiRet:4",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "ulTemp:5",128,0,0,1',0x0d,0x0a

⌨️ 快捷键说明

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