zdobject.s51
来自「TI的基于ZIGBEE2006的协议栈」· S51 代码 · 共 1,570 行 · 第 1/5 页
S51
1,570 行
// 469 *
// 470 * @param numList1 - number of items in list 1
// 471 * @param list1 - first list of cluster IDs
// 472 * @param numList2 - number of items in list 2
// 473 * @param list2 - second list of cluster IDs
// 474 * @param pMatches - buffer to put matches
// 475 *
// 476 * @return number of matches
// 477 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 478 static byte ZDO_CompareClusterLists( byte numList1, uint16 *list1,
??ZDO_CompareClusterLists:
CFI Block cfiBlock4 Using cfiCommon0
CFI Function ??ZDO_CompareClusterLists
// 479 byte numList2, uint16 *list2, uint16 *pMatches )
// 480 {
MOV A,#-0x10
LCALL ?BANKED_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
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)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 16)
; Saved register size: 16
; Auto size: 0
MOV ?V0 + 2,R1
MOV ?V0 + 6,R2
MOV ?V0 + 7,R3
MOV A,#0x10
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine40 & 0xFFFF
??CrossCallReturnLabel_114:
MOV A,#0x12
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine41 & 0xFFFF
// 481 byte x, y;
// 482 uint16 z;
// 483 byte numMatches = 0;
??CrossCallReturnLabel_120:
MOV R5,#0x0
// 484
// 485 // Check the first in against the seconds out
// 486 for ( x = 0; x < numList1; x++ )
MOV ?V0 + 3,R5
SJMP ??ZDO_CompareClusterLists_1
// 487 {
// 488 for ( y = 0; y < numList2; y++ )
// 489 {
// 490 z = list2[y];
??ZDO_CompareClusterLists_2:
MOV A,?V0 + 4
CLR C
RLC A
MOV R0,A
CLR A
RLC A
MOV R1,A
MOV A,R2
ADD A,R0
MOV DPL,A
MOV A,R3
LCALL ?Subroutine55 & 0xFFFF
// 491 if ( list1[x] == z )
??CrossCallReturnLabel_154:
MOV A,?V0 + 3
CLR C
RLC A
MOV R0,A
CLR A
RLC A
MOV R1,A
MOV A,?V0 + 6
ADD A,R0
MOV DPL,A
MOV A,?V0 + 7
ADDC A,R1
MOV DPH,A
MOVX A,@DPTR
XRL A,?V0 + 0
JNZ ??ZDO_CompareClusterLists_3
INC DPTR
MOVX A,@DPTR
XRL A,?V0 + 1
??ZDO_CompareClusterLists_3:
JNZ ??ZDO_CompareClusterLists_4
// 492 pMatches[numMatches++] = z;
MOV A,R5
CLR C
RLC A
MOV R0,A
CLR A
RLC A
MOV R1,A
MOV A,R6
ADD A,R0
MOV DPL,A
MOV A,R7
ADDC A,R1
MOV DPH,A
MOV A,?V0 + 0
MOVX @DPTR,A
INC DPTR
MOV A,?V0 + 1
MOVX @DPTR,A
INC R5
// 493 }
??ZDO_CompareClusterLists_4:
INC ?V0 + 4
??ZDO_CompareClusterLists_5:
MOV A,?V0 + 4
CLR C
SUBB A,R4
JC ??ZDO_CompareClusterLists_2
INC ?V0 + 3
??ZDO_CompareClusterLists_1:
MOV A,?V0 + 3
CLR C
SUBB A,?V0 + 2
JNC ??ZDO_CompareClusterLists_6
MOV ?V0 + 4,#0x0
SJMP ??ZDO_CompareClusterLists_5
// 494 }
// 495
// 496 return ( numMatches );
??ZDO_CompareClusterLists_6:
MOV A,R5
MOV R1,A
SJMP ??Subroutine64_0
CFI EndBlock cfiBlock4
// 497 }
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine64:
CFI Block cfiBlock5 Using cfiCommon0
CFI NoFunction
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 30)
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)))
CFI Invalid
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 16)
CFI Valid
??Subroutine64_0:
MOV R7,#0x8
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock5
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine55:
CFI Block cfiCond6 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_155, ??CrossCallReturnLabel_203
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, 37)
CFI Block cfiCond7 Using cfiCommon0
CFI (cfiCond7) NoFunction
CFI (cfiCond7) Conditional ??CrossCallReturnLabel_155, ??CrossCallReturnLabel_204
CFI (cfiCond7) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond7) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond7) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond7) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond7) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond7) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond7) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond7) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond7) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond7) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond7) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond7) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond7) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond7) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond7) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond7) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond7) CFA_SP SP+0
CFI (cfiCond7) CFA_XSP16 add(XSP16, 37)
CFI Block cfiCond8 Using cfiCommon0
CFI (cfiCond8) NoFunction
CFI (cfiCond8) Conditional ??CrossCallReturnLabel_154
CFI (cfiCond8) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond8) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond8) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond8) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond8) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond8) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond8) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond8) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond8) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond8) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond8) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond8) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond8) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond8) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond8) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond8) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond8) CFA_SP SP+0
CFI (cfiCond8) CFA_XSP16 add(XSP16, 16)
CFI Block cfiPicker9 Using cfiCommon1
CFI (cfiPicker9) NoFunction
CFI (cfiPicker9) Picker
ADDC A,R1
CFI Block cfiCond10 Using cfiCommon0
CFI (cfiCond10) NoFunction
CFI (cfiCond10) Conditional ??CrossCallReturnLabel_156, ??CrossCallReturnLabel_123
CFI (cfiCond10) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond10) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond10) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond10) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond10) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond10) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond10) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond10) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond10) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond10) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond10) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond10) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond10) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond10) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond10) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond10) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond10) CFA_SP SP+0
CFI (cfiCond10) CFA_XSP16 add(XSP16, 16)
CFI Block cfiCond11 Using cfiCommon0
CFI (cfiCond11) NoFunction
CFI (cfiCond11) Conditional ??CrossCallReturnLabel_156, ??CrossCallReturnLabel_122
CFI (cfiCond11) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond11) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond11) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond11) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond11) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond11) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond11) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond11) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond11) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond11) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond11) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond11) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond11) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond11) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond11) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond11) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond11) CFA_SP SP+0
CFI (cfiCond11) CFA_XSP16 add(XSP16, 16)
??Subroutine55_0:
MOV DPH,A
MOVX A,@DPTR
MOV ?V0 + 0,A
INC DPTR
MOVX A,@DPTR
MOV ?V0 + 1,A
RET
CFI EndBlock cfiCond6
CFI EndBlock cfiCond7
CFI EndBlock cfiCond8
CFI EndBlock cfiPicker9
CFI EndBlock cfiCond10
CFI EndBlock cfiCond11
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine41:
CFI Block cfiCond12 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_120
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 V
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?