📄 distance.asm
字号:
call __divf2 // call with return value
SP=SP+4
push R1,R2 to [sp] // pushhf
R1=[bp+1] // HFmode RD=[BP+#IM6]
R2=[bp+2]
push R1,R2 to [sp] // pushhf
call __addf2 // call with return value
SP=SP+4
[bp+1]=R1 // HFmode [BP+#IM6]=RS
[bp+2]=R2
R3=[bp+1] // HFmode RD=[BP+#IM6]
R4=[bp+2]
R1=R3 // HFmode register to register move
R2=R4
pc=L6 // Indirect jump
.debug
.dw '.stabn 0x44,0,87,',0,0
.dd LM33-_Dis_GetDistance
.dw 0x0d,0x0a
.code
LM33:
.debug
.dw '.stabn 0x44,0,87,',0,0
.dd LM34-_Dis_GetDistance
.dw 0x0d,0x0a
.code
LM34:
L6:
sp+=5
pop bp from [sp]
retf
.endp // end of Dis_GetDistance
.debug
.dw '.stabf ',0,0
.dd LME5-_Dis_GetDistance
.dw 0x0d,0x0a
.code
LME5:
.code
.debug
.dw '.stabs "Dis_GetSpeed:F4",36,0,0,',0,0,offset _Dis_GetSpeed,seg _Dis_GetSpeed,0x0d,0x0a
.CODE
.public _Dis_GetSpeed
_Dis_GetSpeed: .proc
.debug
.dw '.stabn 0x44,0,96,',0,0
.dd LM35-_Dis_GetSpeed
.dw 0x0d,0x0a
.code
LM35:
// total=0, vars=0
// frame_pointer_needed: 1
push bp to [sp]
bp=sp+1
R2=BP+3
.debug
.dw '.stabn 0x44,0,97,',0,0
.dd LM36-_Dis_GetSpeed
.dw 0x0d,0x0a
.code
LM36:
R3=[_uiSpeed] // QImode move
R1=R3 // QImode move
pc=L7 // Indirect jump
.debug
.dw '.stabn 0x44,0,98,',0,0
.dd LM37-_Dis_GetSpeed
.dw 0x0d,0x0a
.code
LM37:
.debug
.dw '.stabn 0x44,0,98,',0,0
.dd LM38-_Dis_GetSpeed
.dw 0x0d,0x0a
.code
LM38:
L7:
pop bp from [sp]
retf
.endp // end of Dis_GetSpeed
.debug
.dw '.stabf ',0,0
.dd LME6-_Dis_GetSpeed
.dw 0x0d,0x0a
.code
LME6:
.code
.debug
.dw '.stabs "Dis_GetRunTime:F5",36,0,0,',0,0,offset _Dis_GetRunTime,seg _Dis_GetRunTime,0x0d,0x0a
.CODE
.public _Dis_GetRunTime
_Dis_GetRunTime: .proc
.debug
.dw '.stabn 0x44,0,107,',0,0
.dd LM39-_Dis_GetRunTime
.dw 0x0d,0x0a
.code
LM39:
// 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,108,',0,0
.dd LM40-_Dis_GetRunTime
.dw 0x0d,0x0a
.code
LM40:
R1=0 // QImode move
[SP--]=R1 // QImode move
call _Cal_ReadTimer // call with return value
SP=SP+1
R3=1 // QImode move
[SP--]=R3 // QImode move
push R1,R2 to [sp] // pushhi
call __rshu2 // call with return value
SP=SP+3
R3=R1 // HImode register to register move
R4=R2
R1=R3 // HImode register to register move
R2=R4
pc=L8 // Indirect jump
.debug
.dw '.stabn 0x44,0,109,',0,0
.dd LM41-_Dis_GetRunTime
.dw 0x0d,0x0a
.code
LM41:
.debug
.dw '.stabn 0x44,0,109,',0,0
.dd LM42-_Dis_GetRunTime
.dw 0x0d,0x0a
.code
LM42:
L8:
sp+=1
pop bp from [sp]
retf
.endp // end of Dis_GetRunTime
.debug
.dw '.stabf ',0,0
.dd LME7-_Dis_GetRunTime
.dw 0x0d,0x0a
.code
LME7:
.code
.debug
.dw '.stabs "Dis_In_IRQ_DistanceServiceLoop:F19",36,0,0,',0,0,offset _Dis_In_IRQ_DistanceServiceLoop,seg _Dis_In_IRQ_DistanceServiceLoop,0x0d,0x0a
.CODE
.public _Dis_In_IRQ_DistanceServiceLoop
_Dis_In_IRQ_DistanceServiceLoop: .proc
.debug
.dw '.stabn 0x44,0,118,',0,0
.dd LM43-_Dis_In_IRQ_DistanceServiceLoop
.dw 0x0d,0x0a
.code
LM43:
// total=4, vars=4
// frame_pointer_needed: 1
push bp to [sp]
sp-=4
bp=sp+1
R1=BP+7
.debug
.dw '.stabn 0x44,0,119,',0,0
.dd LM44-_Dis_In_IRQ_DistanceServiceLoop
.dw 0x0d,0x0a
.code
LM44:
R3=[_ulPulseForSpeed] // HImode RD=[Label]
R4=[_ulPulseForSpeed+1]
[bp+2]=R3 // HImode [BP+#IM6]=RS
[bp+3]=R4
R3=[bp+2] // HImode RD=[BP+#IM6]
R4=[bp+3]
R3=R3+1 // HImode RD=RS+#IMM16
R4=R4+0, Carry
[BP++]=R3 // [RD]=RS HImode, RD!=RS+1
[BP--]=R4
R3=[BP++] // RD=[RS] HImode, RD!=RS
R4=[BP--]
[_ulPulseForSpeed]=R3 // HImode [Label]=RS
[_ulPulseForSpeed+1]=R4
.debug
.dw '.stabn 0x44,0,120,',0,0
.dd LM45-_Dis_In_IRQ_DistanceServiceLoop
.dw 0x0d,0x0a
.code
LM45:
R3=[_uiPulseNum] // QImode move
R2=R3+1
R3=R2 // QImode move
[_uiPulseNum]=R3 // QImode move
CMP R3,[_c_uiPulsePerKM] // QImode compare
JZ L11 // QImode NE
PC=L10
L11:
.debug
.dw '.stabn 0x44,0,122,',0,0
.dd LM46-_Dis_In_IRQ_DistanceServiceLoop
.dw 0x0d,0x0a
.code
LM46:
R2=0 // QImode move
[_uiPulseNum]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,123,',0,0
.dd LM47-_Dis_In_IRQ_DistanceServiceLoop
.dw 0x0d,0x0a
.code
LM47:
R2=[_uiDistance] // QImode move
R3=1 // QImode move
[_uiDistance]=R2+R3
L10:
.debug
.dw '.stabn 0x44,0,125,',0,0
.dd LM48-_Dis_In_IRQ_DistanceServiceLoop
.dw 0x0d,0x0a
.code
LM48:
.debug
.dw '.stabn 0x44,0,125,',0,0
.dd LM49-_Dis_In_IRQ_DistanceServiceLoop
.dw 0x0d,0x0a
.code
LM49:
L9:
sp+=4
pop bp from [sp]
retf
.endp // end of Dis_In_IRQ_DistanceServiceLoop
.debug
.dw '.stabf ',0,0
.dd LME8-_Dis_In_IRQ_DistanceServiceLoop
.dw 0x0d,0x0a
.code
LME8:
.code
.debug
.dw '.stabs "Dis_In_IRQ_SpeedServiceLoop:F19",36,0,0,',0,0,offset _Dis_In_IRQ_SpeedServiceLoop,seg _Dis_In_IRQ_SpeedServiceLoop,0x0d,0x0a
.CODE
.public _Dis_In_IRQ_SpeedServiceLoop
_Dis_In_IRQ_SpeedServiceLoop: .proc
.debug
.dw '.stabn 0x44,0,134,',0,0
.dd LM50-_Dis_In_IRQ_SpeedServiceLoop
.dw 0x0d,0x0a
.code
LM50:
// total=9, vars=9
// frame_pointer_needed: 1
push bp to [sp]
sp-=9
bp=sp+1
R1=BP+12
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,135,',0,0
.dd LM51-_Dis_In_IRQ_SpeedServiceLoop
.dw 0x0d,0x0a
.code
LM51:
R3=[_ulPulseForSpeed] // HImode RD=[Label]
R4=[_ulPulseForSpeed+1]
[bp+1]=R3 // HImode [BP+#IM6]=RS
[bp+2]=R4
R3=[bp+1] // HImode RD=[BP+#IM6]
R4=[bp+2]
R1=R3 // HImode register to register move
R2=R4
R3=3 // QImode move
[SP--]=R3 // QImode move
push R1,R2 to [sp] // pushhi
call __lshiu2 // call with return value
SP=SP+3
[bp+7]=R1 // HImode [BP+#IM6]=RS
[bp+8]=R2
R4=[bp+7] // QImode move
[bp+3]=R4 // QImode move
R3=[bp+3] // QImode move
R4=[bp+1] // QImode move
R3-=R4
[bp+3]=R3 // QImode move
R1=[bp+3] // QImode move
R3=1 // QImode move
[bp+4]=R3 // QImode move
R4=[bp+3] // QImode move
R3=[bp+7] // QImode move
CMP R4,R3 // QImode compare
JNA L15 // QImode GTU
PC=L13
L15:
R4=0 // QImode move
[bp+4]=R4 // QImode move
L13:
R4=[bp+8] // QImode move
R3=R4 // QImode move
R4=[bp+2] // QImode move
R3-=R4
R2=R3 // QImode move
R4=[bp+4] // QImode move
R3-=R4
R2=R3 // QImode move
R3=5 // QImode move
[SP--]=R3 // QImode move
push R1,R2 to [sp] // pushhi
call __lshiu2 // call with return value
SP=SP+3
[bp+7]=R1 // HImode [BP+#IM6]=RS
[bp+8]=R2
R3=[bp+7] // QImode move
[bp+5]=R3 // QImode move
R4=[bp+5] // QImode move
R3=[bp+1] // QImode move
R4+=R3 // addqi3_r0r
[bp+5]=R4 // QImode move
R1=[bp+5] // QImode move
R4=1 // QImode move
[bp+6]=R4 // QImode move
R3=[bp+5] // QImode move
R4=[bp+7] // QImode move
CMP R3,R4 // QImode compare
JNB L16 // QImode LTU
PC=L14
L16:
R3=0 // QImode move
[bp+6]=R3 // QImode move
L14:
R4=[bp+8] // QImode move
R3=R4 // QImode move
R4=[bp+2] // QImode move
R3+=R4 // addqi3_r0r
R2=R3 // QImode move
R4=[bp+6] // QImode move
R3+=R4 // addqi3_r0r
R2=R3 // QImode move
R3=5 // QImode move
[SP--]=R3 // QImode move
push R1,R2 to [sp] // pushhi
call __lshiu2 // call with return value
SP=SP+3
R3=[_c_uiPulsePerKM]
R4=0
push R3,R4 to [sp] // pushhi
push R1,R2 to [sp] // pushhi
call __divu2 // call with return value
SP=SP+4
R3=R1 // QImode move
[_uiSpeed]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,136,',0,0
.dd LM52-_Dis_In_IRQ_SpeedServiceLoop
.dw 0x0d,0x0a
.code
LM52:
R1=0 // HImode immediate to register move
R2=0
[_ulPulseForSpeed]=R1 // HImode [Label]=RS
[_ulPulseForSpeed+1]=R2
.debug
.dw '.stabn 0x44,0,137,',0,0
.dd LM53-_Dis_In_IRQ_SpeedServiceLoop
.dw 0x0d,0x0a
.code
LM53:
.debug
.dw '.stabn 0x44,0,137,',0,0
.dd LM54-_Dis_In_IRQ_SpeedServiceLoop
.dw 0x0d,0x0a
.code
LM54:
L12:
sp+=9
pop bp from [sp]
retf
.endp // end of Dis_In_IRQ_SpeedServiceLoop
.debug
.dw '.stabf ',0,0
.dd LME9-_Dis_In_IRQ_SpeedServiceLoop
.dw 0x0d,0x0a
.code
LME9:
.debug
.dw '.stabs "c_uiPulsePerKM:G4",32,0,0,',0,0,offset _c_uiPulsePerKM,seg _c_uiPulsePerKM,0x0d,0x0a
.CODE
.ram
.public _c_uiPulsePerKM
_c_uiPulsePerKM:
.dw 0
.debug
.dw '.stabs "uiDistance:G4",32,0,0,',0,0,offset _uiDistance,seg _uiDistance,0x0d,0x0a
.CODE
.ram
.public _uiDistance
_uiDistance:
.dw 0
.debug
.dw '.stabs "uiPulseNum:G4",32,0,0,',0,0,offset _uiPulseNum,seg _uiPulseNum,0x0d,0x0a
.CODE
.ram
.public _uiPulseNum
_uiPulseNum:
.dw 0
.debug
.dw '.stabs "ulPulseForSpeed:G5",32,0,0,',0,0,offset _ulPulseForSpeed,seg _ulPulseForSpeed,0x0d,0x0a
.CODE
.ram
.public _ulPulseForSpeed
_ulPulseForSpeed:
.dw 2 dup(0)
.debug
.dw '.stabs "uiSpeed:G4",32,0,0,',0,0,offset _uiSpeed,seg _uiSpeed,0x0d,0x0a
.CODE
.ram
.public _uiSpeed
_uiSpeed:
.dw 0
.debug
.dw '.stabs "ulRunTime:G5",32,0,0,',0,0,offset _ulRunTime,seg _ulRunTime,0x0d,0x0a
.CODE
.ram
.public _ulRunTime
_ulRunTime:
.dw 2 dup(0)
.external _Cal_ReadTimer
.external _Cal_ClearTimer
.external _ClearINTStatus
.external _Cal_StartTimer
.external _SetINTStatus
.external _C_PulsePerKM
.external __divu2
.external __lshiu2
.external __rshu2
.external __addf2
.external __divf2
.external __cvi2f2
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -