📄 zdprofile.s51
字号:
// 307 uint8 protoVer = NLME_GetProtocolVersion();
??CrossCallReturnLabel_137:
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,R1
MOV R3,A
// 308
// 309 len += (NumInClusters + NumOutClusters)*((protoVer != ZB_PROT_V1_0) ? sizeof ( uint16 ) : sizeof( uint8 ));
MOV A,#0x1
XRL A,R3
JZ ??ZDP_MatchDescReq_0
MOV R0,#0x2
SJMP ??ZDP_MatchDescReq_1
??ZDP_MatchDescReq_0:
MOV R0,#0x1
??ZDP_MatchDescReq_1:
MOV A,?V0 + 7
ADD A,?V0 + 6
MOV B,A
MOV A,R0
MUL AB
ADD A,#0x6
MOV R2,A
// 310
// 311 if ( len >= ZDP_BUF_SZ-1 )
CLR C
SUBB A,#0x4f
JC ??ZDP_MatchDescReq_2
// 312 {
// 313 return afStatus_MEM_FAIL;
MOV R1,#-0x7f
LJMP ??ZDP_MatchDescReq_3 & 0xFFFF
// 314 }
// 315
// 316 *pBuf++ = LO_UINT16( nwkAddr ); // NWKAddrOfInterest
??ZDP_MatchDescReq_2:
MOV A,R6
MOV DPL,?V0 + 2
MOV DPH,?V0 + 3
MOVX @DPTR,A
INC DPTR
// 317 *pBuf++ = HI_UINT16( nwkAddr );
MOV A,R7
LCALL ?Subroutine29 & 0xFFFF
// 318
// 319 *pBuf++ = LO_UINT16( ProfileID ); // Profile ID
// 320 *pBuf++ = HI_UINT16( ProfileID );
// 321
// 322 *pBuf++ = NumInClusters; // Input cluster list
??CrossCallReturnLabel_67:
MOV A,?V0 + 6
LCALL ?Subroutine31 & 0xFFFF
// 323 if ( NumInClusters )
??CrossCallReturnLabel_71:
JZ ??ZDP_MatchDescReq_4
// 324 {
// 325 for (i=0; i<NumInClusters; ++i) {
MOV R4,#0x0
// 326 *pBuf++ = LO_UINT16( InClusterList[i] );
??ZDP_MatchDescReq_5:
MOV A,R4
CLR C
RLC A
MOV R0,A
CLR A
RLC A
MOV R1,A
MOV A,#0x14
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine26 & 0xFFFF
??CrossCallReturnLabel_61:
LCALL ?Subroutine9 & 0xFFFF
// 327 if (protoVer != ZB_PROT_V1_0) {
??CrossCallReturnLabel_20:
JZ ??CrossCallReturnLabel_36
// 328 *pBuf++ = HI_UINT16( InClusterList[i] );
MOV A,#0x14
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine26 & 0xFFFF
??CrossCallReturnLabel_62:
LCALL ?Subroutine14 & 0xFFFF
// 329 }
// 330 }
??CrossCallReturnLabel_36:
INC R4
MOV A,R4
CLR C
SUBB A,?V0 + 6
JC ??ZDP_MatchDescReq_5
// 331 }
// 332
// 333 *pBuf++ = NumOutClusters; // Output cluster list
??ZDP_MatchDescReq_4:
MOV DPL,?V0 + 2
MOV DPH,?V0 + 3
MOV A,?V0 + 7
LCALL ?Subroutine31 & 0xFFFF
// 334 if ( NumOutClusters )
??CrossCallReturnLabel_72:
JZ ??ZDP_MatchDescReq_6
// 335 {
// 336 for (i=0; i<NumOutClusters; ++i) {
MOV R4,#0x0
// 337 *pBuf++ = LO_UINT16( OutClusterList[i] );
??ZDP_MatchDescReq_7:
MOV A,R4
CLR C
RLC A
MOV R0,A
CLR A
RLC A
MOV R1,A
MOV A,?V0 + 4
ADD A,R0
MOV DPL,A
MOV A,?V0 + 5
ADDC A,R1
LCALL ?Subroutine9 & 0xFFFF
// 338 if (protoVer != ZB_PROT_V1_0) {
??CrossCallReturnLabel_21:
JZ ??CrossCallReturnLabel_37
// 339 *pBuf++ = HI_UINT16( OutClusterList[i] );
MOV A,?V0 + 4
ADD A,R0
MOV DPL,A
MOV A,?V0 + 5
ADDC A,R1
LCALL ?Subroutine14 & 0xFFFF
// 340 }
// 341 }
??CrossCallReturnLabel_37:
INC R4
MOV A,R4
CLR C
SUBB A,?V0 + 7
JC ??ZDP_MatchDescReq_7
// 342 }
// 343
// 344 return fillAndSend( &ZDP_TransID, dstAddr, Match_Desc_req, len );
??ZDP_MatchDescReq_6:
; Setup parameters for call to function fillAndSend
MOV ?V0 + 0,#0x6
MOV ?V0 + 1,#0x0
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 20)
MOV A,R2
MOV R1,A
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine2 & 0xFFFF
??CrossCallReturnLabel_4:
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x2
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 18)
??ZDP_MatchDescReq_3:
MOV A,#0x2
SJMP ??Subroutine61_0
CFI EndBlock cfiBlock6
// 345 }
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine61:
CFI Block cfiBlock7 Using cfiCommon0
CFI NoFunction
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 19)
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
MOV A,#0x3
??Subroutine61_0:
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 16)
MOV R7,#0x8
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock7
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine26:
CFI Block cfiCond8 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_62
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 18)
CFI Block cfiCond9 Using cfiCommon0
CFI (cfiCond9) NoFunction
CFI (cfiCond9) Conditional ??CrossCallReturnLabel_61
CFI (cfiCond9) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond9) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond9) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond9) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond9) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond9) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond9) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond9) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond9) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond9) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond9) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond9) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond9) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond9) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond9) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond9) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond9) CFA_SP SP+0
CFI (cfiCond9) CFA_XSP16 add(XSP16, 18)
CFI Block cfiPicker10 Using cfiCommon1
CFI (cfiPicker10) NoFunction
CFI (cfiPicker10) Picker
LCALL ?Subroutine57 & 0xFFFF
??CrossCallReturnLabel_131:
RET
CFI EndBlock cfiCond8
CFI EndBlock cfiCond9
CFI EndBlock cfiPicker10
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine57:
CFI Block cfiCond11 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_132, ??CrossCallReturnLabel_101, ??CrossCallReturnLabel_15
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 16)
CFI Block cfiCond12 Using cfiCommon0
CFI (cfiCond12) NoFunction
CFI (cfiCond12) Conditional ??CrossCallReturnLabel_132, ??CrossCallReturnLabel_100, ??CrossCallReturnLabel_13
CFI (cfiCond12) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond12) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond12) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond12) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond12) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond12) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond12) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond12) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond12) V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond12) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond12) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond12) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond12) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond12) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond12) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond12) CFA_SP SP+0
CFI (cfiCond12) CFA_XSP16 add(XSP16, 16)
CFI Block cfiCond13 Using cfiCommon0
CFI (cfiCond13) NoFunction
CFI (cfiCond13) Conditional ??CrossCallReturnLabel_132, ??CrossCallReturnLabel_101, ??CrossCallReturnLabel_14
CFI (cfiCond13) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond13) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond13) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond13) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond13) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond13) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond13) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond13) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond13) V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond13) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond13) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond13) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond13) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond13) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond13) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond13) CFA_SP SP+0
CFI (cfiCond13) CFA_XSP16 add(XSP16, 16)
CFI Block cfiCond14 Using cfiCommon0
CFI (cfiCond14) NoFunction
CFI (cfiCond14) Conditional ??CrossCallReturnLabel_131, ??CrossCallReturnLabel_62
CFI (cfiCond14) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond14) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond14) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond14) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond14) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond14) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond14) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond14) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond14) V6 load(1, XDATA, add(CFA_X
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -