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

📄 cost.asm

📁 此程序为出租车计价器
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	call _Cal_GetHour	// call with return value
	R2=BP	// QImode move
	R3=BP+2
	R2=R3	// QImode move
	[R2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,257,',0,0
	.dd LM114-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM114:
	R1=[_uiNightRun]	// QImode move
	CMP R1,0	// QImode test
	JNZ L78	// QImode EQ
	PC=L63
L78:
.debug
	.dw '.stabn 0x44,0,259,',0,0
	.dd LM115-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM115:
	R1=[BP++]	// RD=[RS] HFmode, RD!=RS
	R2=[BP--]
	R3=[_fRevMilegePoint]	// HFmode RD=[Label]
	R4=[_fRevMilegePoint+1]
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __subf2	// call with return value
	SP=SP+4
	R3=[_fNightMilege]	// HFmode RD=[Label]
	R4=[_fNightMilege+1]
	push R1,R2 to [sp]	// pushhf
	push R3,R4 to [sp]	// pushhf
	call __addf2	// call with return value
	SP=SP+4
	[_fNightMilege]=R1	// HFmode [Label]=RS
	[_fNightMilege+1]=R2
.debug
	.dw '.stabn 0x44,0,260,',0,0
	.dd LM116-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM116:
	R1=BP	// QImode move
	R2=BP+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,[_c_uiNightTime1]	// QImode compare
	JB L79	// QImode GEU
	PC=L64
L79:
	R1=BP	// QImode move
	R2=BP+2
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	CMP R1,[_c_uiNightTime2]	// QImode compare
	JNB L80	// QImode LTU
	PC=L64
L80:
.debug
	.dw '.stabn 0x44,0,262,',0,0
	.dd LM117-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM117:
	R1=[_fNightMilege]	// HFmode RD=[Label]
	R2=[_fNightMilege+1]
	R3=0	// HFmode immediate to register move
	R4=0
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __cmpf2	// call with return value
	SP=SP+4
	CMP R1,1	// QImode compare
	JL L81	// QImode GE
	PC=L65
L81:
.debug
	.dw '.stabn 0x44,0,264,',0,0
	.dd LM118-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM118:
	R1=[_fNightMilege]	// HFmode RD=[Label]
	R2=[_fNightMilege+1]
	[_fDayMilege]=R1	// HFmode [Label]=RS
	[_fDayMilege+1]=R2
.debug
	.dw '.stabn 0x44,0,265,',0,0
	.dd LM119-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM119:
	R1=0	// HFmode immediate to register move
	R2=0
	[_fNightMilege]=R1	// HFmode [Label]=RS
	[_fNightMilege+1]=R2
L65:
.debug
	.dw '.stabn 0x44,0,267,',0,0
	.dd LM120-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM120:
	R1=[_c_fPricePerKM]	// HFmode RD=[Label]
	R2=[_c_fPricePerKM+1]
	[_fCurPrice]=R1	// HFmode [Label]=RS
	[_fCurPrice+1]=R2
.debug
	.dw '.stabn 0x44,0,268,',0,0
	.dd LM121-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM121:
	R1=0	// QImode move
	[_uiNightRun]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,269,',0,0
	.dd LM122-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM122:
	R1=[_uiLongWay]	// QImode move
	CMP R1,0	// QImode test
	JNZ L82	// QImode EQ
	PC=L64
L82:
.debug
	.dw '.stabn 0x44,0,270,',0,0
	.dd LM123-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM123:
	R1=[_fCurPrice]	// HFmode RD=[Label]
	R2=[_fCurPrice+1]
	R3=[_c_fLongWayPrice]	// HFmode RD=[Label]
	R4=[_c_fLongWayPrice+1]
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP=SP+4
	[_fCurPrice]=R1	// HFmode [Label]=RS
	[_fCurPrice+1]=R2
L66:
L64:
.debug
	.dw '.stabn 0x44,0,272,',0,0
	.dd LM124-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM124:
	pc=L67	// Indirect jump
L63:
.debug
	.dw '.stabn 0x44,0,275,',0,0
	.dd LM125-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM125:
	R1=[BP++]	// RD=[RS] HFmode, RD!=RS
	R2=[BP--]
	R3=[_fRevMilegePoint]	// HFmode RD=[Label]
	R4=[_fRevMilegePoint+1]
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __subf2	// call with return value
	SP=SP+4
	R3=[_fDayMilege]	// HFmode RD=[Label]
	R4=[_fDayMilege+1]
	push R1,R2 to [sp]	// pushhf
	push R3,R4 to [sp]	// pushhf
	call __addf2	// call with return value
	SP=SP+4
	[_fDayMilege]=R1	// HFmode [Label]=RS
	[_fDayMilege+1]=R2
.debug
	.dw '.stabn 0x44,0,276,',0,0
	.dd LM126-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM126:
	call _Cal_GetHour	// call with return value
	CMP R1,[_c_uiNightTime1]	// QImode compare
	JB L83	// QImode GEU
	PC=L69
L83:
	call _Cal_GetHour	// call with return value
	CMP R1,[_c_uiNightTime2]	// QImode compare
	JNB L84	// QImode LTU
	PC=L69
L84:
	pc=L67	// Indirect jump
L69:
.debug
	.dw '.stabn 0x44,0,278,',0,0
	.dd LM127-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM127:
	R1=[_fDayMilege]	// HFmode RD=[Label]
	R2=[_fDayMilege+1]
	R3=0	// HFmode immediate to register move
	R4=0
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __cmpf2	// call with return value
	SP=SP+4
	CMP R1,1	// QImode compare
	JL L85	// QImode GE
	PC=L70
L85:
.debug
	.dw '.stabn 0x44,0,280,',0,0
	.dd LM128-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM128:
	R1=[_fDayMilege]	// HFmode RD=[Label]
	R2=[_fDayMilege+1]
	[_fNightMilege]=R1	// HFmode [Label]=RS
	[_fNightMilege+1]=R2
.debug
	.dw '.stabn 0x44,0,281,',0,0
	.dd LM129-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM129:
	R1=0	// HFmode immediate to register move
	R2=0
	[_fDayMilege]=R1	// HFmode [Label]=RS
	[_fDayMilege+1]=R2
L70:
.debug
	.dw '.stabn 0x44,0,283,',0,0
	.dd LM130-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM130:
	R1=1	// QImode move
	[_uiNightRun]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,284,',0,0
	.dd LM131-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM131:
	R1=[_c_fNightPricePerKM]	// HFmode RD=[Label]
	R2=[_c_fNightPricePerKM+1]
	[_fCurPrice]=R1	// HFmode [Label]=RS
	[_fCurPrice+1]=R2
.debug
	.dw '.stabn 0x44,0,285,',0,0
	.dd LM132-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM132:
	R1=[_uiLongWay]	// QImode move
	CMP R1,0	// QImode test
	JNZ L86	// QImode EQ
	PC=L67
L86:
.debug
	.dw '.stabn 0x44,0,286,',0,0
	.dd LM133-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM133:
	R1=[_fCurPrice]	// HFmode RD=[Label]
	R2=[_fCurPrice+1]
	R3=[_c_fLongWayPrice]	// HFmode RD=[Label]
	R4=[_c_fLongWayPrice+1]
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP=SP+4
	[_fCurPrice]=R1	// HFmode [Label]=RS
	[_fCurPrice+1]=R2
L71:
L68:
L67:
.debug
	.dw '.stabn 0x44,0,289,',0,0
	.dd LM134-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM134:
	R1=[BP++]	// RD=[RS] HFmode, RD!=RS
	R2=[BP--]
	[_fRevMilegePoint]=R1	// HFmode [Label]=RS
	[_fRevMilegePoint+1]=R2
.debug
	.dw '.stabn 0x44,0,291,',0,0
	.dd LM135-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM135:
	R1=[_uiLongWay]	// QImode move
	CMP R1,0	// QImode test
	JZ L87	// QImode NE
	PC=L72
L87:
.debug
	.dw '.stabn 0x44,0,293,',0,0
	.dd LM136-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM136:
	R1=[BP++]	// RD=[RS] HFmode, RD!=RS
	R2=[BP--]
	R3=[_c_fLongWayLimit]	// HFmode RD=[Label]
	R4=[_c_fLongWayLimit+1]
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __cmpf2	// call with return value
	SP=SP+4
	CMP R1,1	// QImode compare
	JG L88	// QImode LE
	PC=L72
L88:
.debug
	.dw '.stabn 0x44,0,295,',0,0
	.dd LM137-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM137:
	R1=1	// QImode move
	[_uiLongWay]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,296,',0,0
	.dd LM138-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM138:
	call _Cost_WTimeToMilege	// call with return value
	R3=R1
	R4=0
	push R3,R4 to [sp]	// pushhi
	call __cvi2f2	// call with return value
	SP=SP+2
	[bp+9]=R1	// HFmode [BP+#IM6]=RS
	[bp+10]=R2
	R1=[_fDayMilege]	// HFmode RD=[Label]
	R2=[_fDayMilege+1]
	R3=[_c_fPricePerKM]	// HFmode RD=[Label]
	R4=[_c_fPricePerKM+1]
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP=SP+4
	push R1,R2 to [sp]	// pushhf
	R1=[bp+9]	// HFmode RD=[BP+#IM6]
	R2=[bp+10]
	push R1,R2 to [sp]	// pushhf
	call __addf2	// call with return value
	SP=SP+4
	[bp+11]=R1	// HFmode [BP+#IM6]=RS
	[bp+12]=R2
	R1=[_fNightMilege]	// HFmode RD=[Label]
	R2=[_fNightMilege+1]
	R3=[_c_fNightPricePerKM]	// HFmode RD=[Label]
	R4=[_c_fNightPricePerKM+1]
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP=SP+4
	push R1,R2 to [sp]	// pushhf
	R3=[bp+11]	// HFmode RD=[BP+#IM6]
	R4=[bp+12]
	push R3,R4 to [sp]	// pushhf
	call __addf2	// call with return value
	SP=SP+4
	R3=[_fCost]	// HFmode RD=[Label]
	R4=[_fCost+1]
	push R1,R2 to [sp]	// pushhf
	push R3,R4 to [sp]	// pushhf
	call __addf2	// call with return value
	SP=SP+4
	[_fCost]=R1	// HFmode [Label]=RS
	[_fCost+1]=R2
.debug
	.dw '.stabn 0x44,0,299,',0,0
	.dd LM139-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM139:
	R1=0	// HFmode immediate to register move
	R2=0
	[_fDayMilege]=R1	// HFmode [Label]=RS
	[_fDayMilege+1]=R2
.debug
	.dw '.stabn 0x44,0,300,',0,0
	.dd LM140-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM140:
	R1=0	// HFmode immediate to register move
	R2=0
	[_fNightMilege]=R1	// HFmode [Label]=RS
	[_fNightMilege+1]=R2
.debug
	.dw '.stabn 0x44,0,301,',0,0
	.dd LM141-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM141:
	R1=[_fCurPrice]	// HFmode RD=[Label]
	R2=[_fCurPrice+1]
	R3=[_c_fLongWayPrice]	// HFmode RD=[Label]
	R4=[_c_fLongWayPrice+1]
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP=SP+4
	[_fCurPrice]=R1	// HFmode [Label]=RS
	[_fCurPrice+1]=R2
L73:
L72:
.debug
	.dw '.stabn 0x44,0,304,',0,0
	.dd LM142-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM142:
LBE3:
.debug
	.dw '.stabn 0x44,0,304,',0,0
	.dd LM143-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LM143:
L57:

	sp+=15
	pop bp from [sp]
	retf
	.endp	// end of Cost_ServiceLoop

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB3-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "fTemp:12",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "Hour:4",128,0,0,2',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE3-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME10-_Cost_ServiceLoop
	.dw 0x0d,0x0a
.code
LME10:
.debug
	.dw '.stabs "c_fStartPrice:G12",32,0,0,',0,0,offset _c_fStartPrice,seg _c_fStartPrice,0x0d,0x0a
.CODE
.ram
.public _c_fStartPrice
_c_fStartPrice:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fNightStartPrice:G12",32,0,0,',0,0,offset _c_fNightStartPrice,seg _c_fNightStartPrice,0x0d,0x0a
.CODE
.ram
.public _c_fNightStartPrice
_c_fNightStartPrice:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fStartMilege:G12",32,0,0,',0,0,offset _c_fStartMilege,seg _c_fStartMilege,0x0d,0x0a
.CODE
.ram
.public _c_fStartMilege
_c_fStartMilege:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fPricePerKM:G12",32,0,0,',0,0,offset _c_fPricePerKM,seg _c_fPricePerKM,0x0d,0x0a
.CODE
.ram
.public _c_fPricePerKM
_c_fPricePerKM:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fNightPricePerKM:G12",32,0,0,',0,0,offset _c_fNightPricePerKM,seg _c_fNightPricePerKM,0x0d,0x0a
.CODE
.ram
.public _c_fNightPricePerKM
_c_fNightPricePerKM:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fWaitSpeed1:G12",32,0,0,',0,0,offset _c_fWaitSpeed1,seg _c_fWaitSpeed1,0x0d,0x0a
.CODE
.ram
.public _c_fWaitSpeed1
_c_fWaitSpeed1:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fWaitSpeed2:G12",32,0,0,',0,0,offset _c_fWaitSpeed2,seg _c_fWaitSpeed2,0x0d,0x0a
.CODE
.ram
.public _c_fWaitSpeed2
_c_fWaitSpeed2:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fFirstWaitTimeLimit:G12",32,0,0,',0,0,offset _c_fFirstWaitTimeLimit,seg _c_fFirstWaitTimeLimit,0x0d,0x0a
.CODE
.ram
.public _c_fFirstWaitTimeLimit
_c_fFirstWaitTimeLimit:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fWaitTimeLimit:G12",32,0,0,',0,0,offset _c_fWaitTimeLimit,seg _c_fWaitTimeLimit,0x0d,0x0a
.CODE
.ram
.public _c_fWaitTimeLimit
_c_fWaitTimeLimit:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fWaitPrice:G12",32,0,0,',0,0,offset _c_fWaitPrice,seg _c_fWaitPrice,0x0d,0x0a
.CODE
.ram
.public _c_fWaitPrice
_c_fWaitPrice:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fLongWayLimit:G12",32,0,0,',0,0,offset _c_fLongWayLimit,seg _c_fLongWayLimit,0x0d,0x0a
.CODE
.ram
.public _c_fLongWayLimit
_c_fLongWayLimit:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_fLongWayPrice:G12",32,0,0,',0,0,offset _c_fLongWayPrice,seg _c_fLongWayPrice,0x0d,0x0a
.CODE
.ram
.public _c_fLongWayPrice
_c_fLongWayPrice:
	.dw 2 dup(0)
.debug
	.dw '.stabs "c_uiNightTime1:G4",32,0,0,',0,0,offset _c_uiNightTime1,seg _c_uiNightTime1,0x0d,0x0a
.CODE
.ram
.public _c_uiNightTime1
_c_uiNightTime1:
	.dw 0
.debug
	.dw '.stabs "c_uiNightTime2:G4",32,0,0,',0,0,offset _c_uiNightTime2,seg _c_uiNightTime2,0x0d,0x0a
.CODE
.ram
.public _c_uiNightTime2
_c_uiNightTime2:
	.dw 0
.debug
	.dw '.stabs "fCurPrice:G12",32,0,0,',0,0,offset _fCurPrice,seg _fCurPrice,0x0d,0x0a
.CODE
.ram
.public _fCurPrice
_fCurPrice:
	.dw 2 dup(0)
.debug
	.dw '.stabs "fCost:G12",32,0,0,',0,0,offset _fCost,seg _fCost,0x0d,0x0a
.CODE
.ram
.public _fCost
_fCost:
	.dw 2 dup(0)
.debug
	.dw '.stabs "fDayMilege:G12",32,0,0,',0,0,offset _fDayMilege,seg _fDayMilege,0x0d,0x0a
.CODE
.ram
.public _fDayMilege
_fDayMilege:
	.dw 2 dup(0)
.debug
	.dw '.stabs "fNightMilege:G12",32,0,0,',0,0,offset _fNightMilege,seg _fNightMilege,0x0d,0x0a
.CODE
.ram
.public _fNightMilege
_fNightMilege:
	.dw 2 dup(0)
.debug
	.dw '.stabs "fRevMilegePoint:G12",32,0,0,',0,0,offset _fRevMilegePoint,seg _fRevMilegePoint,0x0d,0x0a
.CODE
.ram
.public _fRevMilegePoint
_fRevMilegePoint:
	.dw 2 dup(0)
.debug
	.dw '.stabs "ulWaitTime:G5",32,0,0,',0,0,offset _ulWaitTime,seg _ulWaitTime,0x0d,0x0a
.CODE
.ram
.public _ulWaitTime
_ulWaitTime:
	.dw 2 dup(0)
.debug
	.dw '.stabs "uiWaiting:G4",32,0,0,',0,0,offset _uiWaiting,seg _uiWaiting,0x0d,0x0a
.CODE
.ram
.public _uiWaiting
_uiWaiting:
	.dw 0
.debug
	.dw '.stabs "uiNightRun:G4",32,0,0,',0,0,offset _uiNightRun,seg _uiNightRun,0x0d,0x0a
.CODE
.ram
.public _uiNightRun
_uiNightRun:
	.dw 0
.debug
	.dw '.stabs "uiLongWay:G4",32,0,0,',0,0,offset _uiLongWay,seg _uiLongWay,0x0d,0x0a
.CODE
.ram
.public _uiLongWay
_uiLongWay:
	.dw 0
.external _Dis_GetDistance
.external _Cal_StartTimer
.external _Cal_ClearTimer
.external _Dis_GetSpeed
.external _Dis_ClearDistance
.external _Speed_Stop
.external _Dis_StopMessure
.external _Cal_ReadTimer
.external _Cal_GetHour
.external _Dis_StartMessure
.external _Speed_Start
.external _C_NightTime2
.external _C_NightTime1
.external _C_LongWayPrice
.external _C_LongWayLimit
.external _C_WaitPrice
.external _C_WaitTimeLimit
.external _C_FirstWaitTimeLimit
.external _C_WaitSpeed2
.external _C_WaitSpeed1
.external _C_NightPricePerKM
.external _C_PricePerKM
.external _C_StartMilege
.external _C_NightStartPrice
.external _C_StartPrice
.external __mulf2
.external __addf2
.external __cvi2f2
.external __cmpf2
.external __subf2
.external __rshu2
.external __cvf2i2
.external __divu2
	.end

⌨️ 快捷键说明

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