📄 zdobject.lst
字号:
\ In segment BANKED_CODE, align 1, keep-with-next
478 static byte ZDO_CompareClusterLists( byte numList1, uint16 *list1,
\ ??ZDO_CompareClusterLists:
479 byte numList2, uint16 *list2, uint16 *pMatches )
480 {
\ 000000 74F0 MOV A,#-0x10
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 16
\ 000005 ; Auto size: 0
\ 000005 89.. MOV ?V0 + 2,R1
\ 000007 8A.. MOV ?V0 + 6,R2
\ 000009 8B.. MOV ?V0 + 7,R3
\ 00000B 7410 MOV A,#0x10
\ 00000D 12.... LCALL ?XSTACK_DISP0_8
\ 000010 12.... LCALL ??Subroutine54_0 & 0xFFFF
\ ??CrossCallReturnLabel_162:
\ 000013 7412 MOV A,#0x12
\ 000015 12.... LCALL ?XSTACK_DISP0_8
\ 000018 12.... LCALL ?Subroutine56 & 0xFFFF
481 byte x, y;
482 uint16 z;
483 byte numMatches = 0;
\ ??CrossCallReturnLabel_178:
\ 00001B 7D00 MOV R5,#0x0
484
485 // Check the first in against the seconds out
486 for ( x = 0; x < numList1; x++ )
\ 00001D 8D.. MOV ?V0 + 3,R5
\ 00001F 804E SJMP ??ZDO_CompareClusterLists_1
487 {
488 for ( y = 0; y < numList2; y++ )
489 {
490 z = list2[y];
\ ??ZDO_CompareClusterLists_2:
\ 000021 E5.. MOV A,?V0 + 4
\ 000023 C3 CLR C
\ 000024 33 RLC A
\ 000025 F8 MOV R0,A
\ 000026 E4 CLR A
\ 000027 33 RLC A
\ 000028 F9 MOV R1,A
\ 000029 EA MOV A,R2
\ 00002A 28 ADD A,R0
\ 00002B F582 MOV DPL,A
\ 00002D EB MOV A,R3
\ 00002E 12.... LCALL ?Subroutine72 & 0xFFFF
491 if ( list1[x] == z )
\ ??CrossCallReturnLabel_227:
\ 000031 E5.. MOV A,?V0 + 3
\ 000033 C3 CLR C
\ 000034 33 RLC A
\ 000035 F8 MOV R0,A
\ 000036 E4 CLR A
\ 000037 33 RLC A
\ 000038 F9 MOV R1,A
\ 000039 E5.. MOV A,?V0 + 6
\ 00003B 28 ADD A,R0
\ 00003C F582 MOV DPL,A
\ 00003E E5.. MOV A,?V0 + 7
\ 000040 39 ADDC A,R1
\ 000041 F583 MOV DPH,A
\ 000043 E0 MOVX A,@DPTR
\ 000044 65.. XRL A,?V0 + 0
\ 000046 7004 JNZ ??ZDO_CompareClusterLists_3
\ 000048 A3 INC DPTR
\ 000049 E0 MOVX A,@DPTR
\ 00004A 65.. XRL A,?V0 + 1
\ ??ZDO_CompareClusterLists_3:
\ 00004C 7017 JNZ ??ZDO_CompareClusterLists_4
492 pMatches[numMatches++] = z;
\ 00004E ED MOV A,R5
\ 00004F C3 CLR C
\ 000050 33 RLC A
\ 000051 F8 MOV R0,A
\ 000052 E4 CLR A
\ 000053 33 RLC A
\ 000054 F9 MOV R1,A
\ 000055 EE MOV A,R6
\ 000056 28 ADD A,R0
\ 000057 F582 MOV DPL,A
\ 000059 EF MOV A,R7
\ 00005A 39 ADDC A,R1
\ 00005B F583 MOV DPH,A
\ 00005D E5.. MOV A,?V0 + 0
\ 00005F F0 MOVX @DPTR,A
\ 000060 A3 INC DPTR
\ 000061 E5.. MOV A,?V0 + 1
\ 000063 F0 MOVX @DPTR,A
\ 000064 0D INC R5
493 }
\ ??ZDO_CompareClusterLists_4:
\ 000065 05.. INC ?V0 + 4
\ ??ZDO_CompareClusterLists_5:
\ 000067 E5.. MOV A,?V0 + 4
\ 000069 C3 CLR C
\ 00006A 9C SUBB A,R4
\ 00006B 40B4 JC ??ZDO_CompareClusterLists_2
\ 00006D 05.. INC ?V0 + 3
\ ??ZDO_CompareClusterLists_1:
\ 00006F E5.. MOV A,?V0 + 3
\ 000071 C3 CLR C
\ 000072 95.. SUBB A,?V0 + 2
\ 000074 5005 JNC ??ZDO_CompareClusterLists_6
\ 000076 75..00 MOV ?V0 + 4,#0x0
\ 000079 80EC SJMP ??ZDO_CompareClusterLists_5
494 }
495
496 return ( numMatches );
\ ??ZDO_CompareClusterLists_6:
\ 00007B ED MOV A,R5
\ 00007C F9 MOV R1,A
\ 00007D 02.... LJMP ??Subroutine103_1 & 0xFFFF
497 }
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine72:
\ 000000 39 ADDC A,R1
\ ??Subroutine72_0:
\ 000001 F583 MOV DPH,A
\ ??Subroutine72_1:
\ 000003 E0 MOVX A,@DPTR
\ 000004 F5.. MOV ?V0 + 0,A
\ 000006 A3 INC DPTR
\ 000007 E0 MOVX A,@DPTR
\ 000008 F5.. MOV ?V0 + 1,A
\ 00000A 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine103:
\ 000000 7415 MOV A,#0x15
\ ??Subroutine103_0:
\ 000002 12.... LCALL ?DEALLOC_XSTACK8
\ ??Subroutine103_1:
\ 000005 7F08 MOV R7,#0x8
\ 000007 02.... LJMP ?BANKED_LEAVE_XDATA
498 #endif // REFLECTOR || ZDO_COORDINATOR
499
500 #if defined ( REFLECTOR )
501 /*********************************************************************
502 * @fn ZDO_DoEndDeviceBind
503 *
504 * @brief Process the End Device Bind Req from ZDApp
505 *
506 * @param bindReq - Bind Request Information
507 * @param SecurityUse - Security enable/disable
508 *
509 * @return none
510 */
\ In segment BANKED_CODE, align 1, keep-with-next
511 void ZDO_DoEndDeviceBind( ZDEndDeviceBind_t *bindReq )
\ ZDO_DoEndDeviceBind:
512 {
\ 000000 74F4 MOV A,#-0xc
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 12
\ 000005 ; Auto size: 24
\ 000005 74E8 MOV A,#-0x18
\ 000007 12.... LCALL ?ALLOC_XSTACK8
\ 00000A EA MOV A,R2
\ 00000B FE MOV R6,A
\ 00000C EB MOV A,R3
\ 00000D FF MOV R7,A
513 uint8 numMatches;
514 uint8 Status;
515 BindingEntry_t *pBind;
516 AddrMgrEntry_t addrEntry;
517 zAddrType_t SrcAddr;
518
519 SrcAddr.addrMode = Addr16Bit;
\ 00000E 740A MOV A,#0xa
\ 000010 12.... LCALL ?XSTACK_DISP0_8
\ 000013 7402 MOV A,#0x2
\ 000015 F0 MOVX @DPTR,A
520 SrcAddr.addr.shortAddr = bindReq->srcAddr;
\ 000016 EE MOV A,R6
\ 000017 2402 ADD A,#0x2
\ 000019 12.... LCALL ?Subroutine94 & 0xFFFF
\ ??CrossCallReturnLabel_295:
\ 00001C 12.... LCALL ??Subroutine54_0 & 0xFFFF
\ ??CrossCallReturnLabel_163:
\ 00001F 7402 MOV A,#0x2
\ 000021 12.... LCALL ?XSTACK_DISP0_8
\ 000024 12.... LCALL ??Subroutine0_0 & 0xFFFF
521
522 // Ask for IEEE address
523 if ( (bindReq->srcAddr != ZDAppNwkAddr.addr.shortAddr) )
\ ??CrossCallReturnLabel_4:
\ 000027 F8 MOV R0,A
\ 000028 A3 INC DPTR
\ 000029 E0 MOVX A,@DPTR
\ 00002A F9 MOV R1,A
\ 00002B 90.... MOV DPTR,#ZDAppNwkAddr
\ 00002E E0 MOVX A,@DPTR
\ 00002F 68 XRL A,R0
\ 000030 7003 JNZ ??ZDO_DoEndDeviceBind_0
\ 000032 A3 INC DPTR
\ 000033 E0 MOVX A,@DPTR
\ 000034 69 XRL A,R1
\ ??ZDO_DoEndDeviceBind_0:
\ 000035 7003 JNZ $+5
\ 000037 02.... LJMP ??ZDO_DoEndDeviceBind_1 & 0xFFFF
524 {
525 addrEntry.user = ADDRMGR_USER_BINDING;
\ 00003A 740B MOV A,#0xb
\ 00003C 12.... LCALL ?XSTACK_DISP0_8
\ 00003F 7404 MOV A,#0x4
\ 000041 12.... LCALL ?Subroutine70 & 0xFFFF
526 addrEntry.nwkAddr = bindReq->srcAddr;
\ ??CrossCallReturnLabel_221:
\ 000044 A3 INC DPTR
\ 000045 12.... LCALL ?Subroutine58 & 0xFFFF
\ ??CrossCallReturnLabel_180:
\ 000048 740C MOV A,#0xc
\ 00004A 12.... LCALL ?XSTACK_DISP0_8
\ 00004D 12.... LCALL ??Subroutine12_0 & 0xFFFF
527 Status = AddrMgrEntryLookupNwk( &addrEntry );
528 if ( Status == TRUE)
\ ??CrossCallReturnLabel_35:
\ 000050 ; Setup parameters for call to function AddrMgrEntryLookupNwk
\ 000050 740B MOV A,#0xb
\ 000052 12.... LCALL ?XSTACK_DISP0_8
\ 000055 AA82 MOV R2,DPL
\ 000057 AB83 MOV R3,DPH
\ 000059 90.... MOV DPTR,#(AddrMgrEntryLookupNwk & 0xffff)
\ 00005C 74.. MOV A,#((AddrMgrEntryLookupNwk >> 16) & 0xff)
\ 00005E 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000061 E9 MOV A,R1
\ 000062 6401 XRL A,#0x1
\ 000064 7010 JNZ ??ZDO_DoEndDeviceBind_2
529 {
530 // Add a reference to entry
531 AddrMgrEntryAddRef( &addrEntry );
\ 000066 ; Setup parameters for call to function AddrMgrEntryAddRef
\ 000066 740B MOV A,#0xb
\ 000068 12.... LCALL ?XSTACK_DISP0_8
\ 00006B AA82 MOV R2,DPL
\ 00006D AB83 MOV R3,DPH
\ 00006F 90.... MOV DPTR,#(AddrMgrEntryAddRef & 0xffff)
\ 000072 74.. MOV A,#((AddrMgrEntryAddRef >> 16) & 0xff)
\ 000074 8034 SJMP ??ZDO_DoEndDeviceBind_3
532 }
533 else
534 {
535 // If we have the extended address
536 if ( NLME_GetProtocolVersion() != ZB_PROT_V1_0 )
\ ??ZDO_DoEndDeviceBind_2:
\ 000076 ; Setup parameters for call to function NLME_GetProtocolVersion
\ 000076 90.... MOV DPTR,#(NLME_GetProtocolVersion & 0xffff)
\ 000079 74.. MOV A,#((NLME_GetProtocolVersion >> 16) & 0xff)
\ 00007B 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00007E E9
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -