📄 mac_rx_engine.lst
字号:
\ 000151 8002 SJMP ??mrxMakeBeaconNotifyIndication_4
\ ??mrxMakeBeaconNotifyIndication_3:
\ 000153 C2F0 CLR B.0
\ ??mrxMakeBeaconNotifyIndication_4:
\ 000155 A2F0 MOV C,B.0
\ 000157 E4 CLR A
\ 000158 92E0 MOV 0xE0 /* A */.0,C
\ 00015A C0E0 PUSH A
\ 00015C E5.. MOV A,?V0 + 6
\ 00015E 2413 ADD A,#0x13
\ 000160 F582 MOV DPL,A
\ 000162 E5.. MOV A,?V0 + 7
\ 000164 3400 ADDC A,#0x0
\ 000166 F583 MOV DPH,A
\ 000168 D0E0 POP A
\ 00016A F0 MOVX @DPTR,A
351 pPanDescriptor->securityUse = pMDI->securityUse;
\ 00016B E5.. MOV A,?V0 + 0
\ 00016D 2417 ADD A,#0x17
\ 00016F F8 MOV R0,A
\ 000170 E5.. MOV A,?V0 + 1
\ 000172 3400 ADDC A,#0x0
\ 000174 F9 MOV R1,A
\ 000175 8882 MOV DPL,R0
\ 000177 8983 MOV DPH,R1
\ 000179 E0 MOVX A,@DPTR
\ 00017A C0E0 PUSH A
\ 00017C E5.. MOV A,?V0 + 6
\ 00017E 2410 ADD A,#0x10
\ 000180 F582 MOV DPL,A
\ 000182 E5.. MOV A,?V0 + 7
\ 000184 3400 ADDC A,#0x0
\ 000186 F583 MOV DPH,A
\ 000188 D0E0 POP A
\ 00018A F0 MOVX @DPTR,A
352 pPanDescriptor->aclEntry = pMDI->aclEntry;
\ 00018B E5.. MOV A,?V0 + 0
\ 00018D 2418 ADD A,#0x18
\ 00018F F582 MOV DPL,A
\ 000191 E5.. MOV A,?V0 + 1
\ 000193 3400 ADDC A,#0x0
\ 000195 F583 MOV DPH,A
\ 000197 E0 MOVX A,@DPTR
\ 000198 C0E0 PUSH A
\ 00019A E5.. MOV A,?V0 + 6
\ 00019C 2415 ADD A,#0x15
\ 00019E F582 MOV DPL,A
\ 0001A0 E5.. MOV A,?V0 + 7
\ 0001A2 3400 ADDC A,#0x0
\ 0001A4 F583 MOV DPH,A
\ 0001A6 D0E0 POP A
\ 0001A8 F0 MOVX @DPTR,A
353 #if ((MAC_OPT_SECURITY) || (MAC_OPT_ACL_SIZE>0))
354 pPanDescriptor->securityFailure = (pPacket->securityStatus != SUCCESS);
355 #else
356 pPanDescriptor->securityFailure = pMDI->securityUse;
\ 0001A9 8882 MOV DPL,R0
\ 0001AB 8983 MOV DPH,R1
\ 0001AD E0 MOVX A,@DPTR
\ 0001AE 85..82 MOV DPL,?V0 + 6
\ 0001B1 85..83 MOV DPH,?V0 + 7
\ 0001B4 F0 MOVX @DPTR,A
357 #endif
358 pMBNI->pendAddrSpec = pendAddrSpec;
\ 0001B5 85..82 MOV DPL,?XSP + 0
\ 0001B8 85..83 MOV DPH,?XSP + 1
\ 0001BB E0 MOVX A,@DPTR
\ 0001BC 2418 ADD A,#0x18
\ 0001BE F8 MOV R0,A
\ 0001BF A3 INC DPTR
\ 0001C0 E0 MOVX A,@DPTR
\ 0001C1 3400 ADDC A,#0x0
\ 0001C3 F9 MOV R1,A
\ 0001C4 8882 MOV DPL,R0
\ 0001C6 8983 MOV DPH,R1
\ 0001C8 E5.. MOV A,?V0 + 5
\ 0001CA F0 MOVX @DPTR,A
359
360 // Copy the pending addresses in the reverse order
361 pendingIndex = (pendAddrSpec & 0x07) + ((pendAddrSpec & 0x70) >> 4) - 1;
\ 0001CB 7402 MOV A,#0x2
\ 0001CD 12.... LCALL ?XSTACK_DISP0_8
\ 0001D0 7407 MOV A,#0x7
\ 0001D2 55.. ANL A,?V0 + 5
\ 0001D4 FA MOV R2,A
\ 0001D5 E0 MOVX A,@DPTR
\ 0001D6 2A ADD A,R2
\ 0001D7 14 DEC A
\ 0001D8 FE MOV R6,A
362
363 // Extended addresses first
364 n = (pendAddrSpec & 0x70) >> 4;
\ 0001D9 E0 MOVX A,@DPTR
\ 0001DA FF MOV R7,A
\ 0001DB 8041 SJMP ??mrxMakeBeaconNotifyIndication_5
365 while (n--) {
366 pendAddrOffset -= sizeof(ADDRESS);
\ ??mrxMakeBeaconNotifyIndication_6:
\ 0001DD 74F8 MOV A,#-0x8
\ 0001DF 25.. ADD A,?V0 + 4
\ 0001E1 F5.. MOV ?V0 + 4,A
367 msupReverseCopy((BYTE *) (&pMBNI->pAddrList[pendingIndex--]), (BYTE *) (&pMDI->pMsdu[pendAddrOffset]), sizeof(ADDRESS));
\ 0001E3 ; Setup parameters for call to function msupReverseCopy
\ 0001E3 7908 MOV R1,#0x8
\ 0001E5 F5.. MOV ?V0 + 2,A
\ 0001E7 E5.. MOV A,?V0 + 0
\ 0001E9 25.. ADD A,?V0 + 2
\ 0001EB FA MOV R2,A
\ 0001EC E5.. MOV A,?V0 + 1
\ 0001EE 3400 ADDC A,#0x0
\ 0001F0 FB MOV R3,A
\ 0001F1 741A MOV A,#0x1a
\ 0001F3 2A ADD A,R2
\ 0001F4 FC MOV R4,A
\ 0001F5 E4 CLR A
\ 0001F6 3B ADDC A,R3
\ 0001F7 FD MOV R5,A
\ 0001F8 8E.. MOV ?V0 + 2,R6
\ 0001FA 75..00 MOV ?V0 + 3,#0x0
\ 0001FD 7403 MOV A,#0x3
\ 0001FF 78.. MOV R0,#?V0 + 2
\ 000201 12.... LCALL ?S_SHL
\ 000204 85..82 MOV DPL,?XSP + 0
\ 000207 85..83 MOV DPH,?XSP + 1
\ 00020A E0 MOVX A,@DPTR
\ 00020B 25.. ADD A,?V0 + 2
\ 00020D FA MOV R2,A
\ 00020E A3 INC DPTR
\ 00020F E0 MOVX A,@DPTR
\ 000210 35.. ADDC A,?V0 + 3
\ 000212 FB MOV R3,A
\ 000213 741A MOV A,#0x1a
\ 000215 2A ADD A,R2
\ 000216 FA MOV R2,A
\ 000217 E4 CLR A
\ 000218 3B ADDC A,R3
\ 000219 FB MOV R3,A
\ 00021A 12.... LCALL msupReverseCopy
\ 00021D 1E DEC R6
368 }
\ ??mrxMakeBeaconNotifyIndication_5:
\ 00021E EF MOV A,R7
\ 00021F 1F DEC R7
\ 000220 70BB JNZ ??mrxMakeBeaconNotifyIndication_6
369
370 // Then short addresses
371 n = pendAddrSpec & 0x07;
\ 000222 7407 MOV A,#0x7
\ 000224 55.. ANL A,?V0 + 5
\ 000226 FF MOV R7,A
\ 000227 8040 SJMP ??mrxMakeBeaconNotifyIndication_7
372 while (n--) {
373 pendAddrOffset -= sizeof(WORD);
\ ??mrxMakeBeaconNotifyIndication_8:
\ 000229 15.. DEC ?V0 + 4
\ 00022B 15.. DEC ?V0 + 4
374 msupReverseCopy((BYTE *) (&pMBNI->pAddrList[pendingIndex--]), (BYTE *) (&pMDI->pMsdu[pendAddrOffset]), sizeof(WORD));
\ 00022D ; Setup parameters for call to function msupReverseCopy
\ 00022D 7902 MOV R1,#0x2
\ 00022F 85.... MOV ?V0 + 2,?V0 + 4
\ 000232 E5.. MOV A,?V0 + 0
\ 000234 25.. ADD A,?V0 + 2
\ 000236 FA MOV R2,A
\ 000237 E5.. MOV A,?V0 + 1
\ 000239 3400 ADDC A,#0x0
\ 00023B FB MOV R3,A
\ 00023C 741A MOV A,#0x1a
\ 00023E 2A ADD A,R2
\ 00023F FC MOV R4,A
\ 000240 E4 CLR A
\ 000241 3B ADDC A,R3
\ 000242 FD MOV R5,A
\ 000243 8E.. MOV ?V0 + 2,R6
\ 000245 75..00 MOV ?V0 + 3,#0x0
\ 000248 7403 MOV A,#0x3
\ 00024A 78.. MOV R0,#?V0 + 2
\ 00024C 12.... LCALL ?S_SHL
\ 00024F 85..82 MOV DPL,?XSP + 0
\ 000252 85..83 MOV DPH,?XSP + 1
\ 000255 E0 MOVX A,@DPTR
\ 000256 25.. ADD A,?V0 + 2
\ 000258 FA MOV R2,A
\ 000259 A3 INC DPTR
\ 00025A E0 MOVX A,@DPTR
\ 00025B 35.. ADDC A,?V0 + 3
\ 00025D FB MOV R3,A
\ 00025E 741A MOV A,#0x1a
\ 000260 2A ADD A,R2
\ 000261 FA MOV R2,A
\ 000262 E4 CLR A
\ 000263 3B ADDC A,R3
\ 000264 FB MOV R3,A
\ 000265 12.... LCALL msupReverseCopy
\ 000268 1E DEC R6
375 }
\ ??mrxMakeBeaconNotifyIndication_7:
\ 000269 EF MOV A,R7
\ 00026A 1F DEC R7
\ 00026B 70BC JNZ ??mrxMakeBeaconNotifyIndication_8
376
377 return pMBNI;
\ 00026D 85..82 MOV DPL,?XSP + 0
\ 000270 85..83 MOV DPH,?XSP + 1
\ 000273 E0 MOVX A,@DPTR
\ 000274 FA MOV R2,A
\ 000275 A3 INC DPTR
\ 000276 E0 MOVX A,@DPTR
\ 000277 FB MOV R3,A
\ 000278 7403 MOV A,#0x3
\ 00027A REQUIRE ?Subroutine4
\ 00027A ; // Fall through to label ?Subroutine4
378
379 } // mrxMakeBeaconNotifyIndication
\ In segment NEAR_CODE, align 1, keep-with-next
\ ?Subroutine4:
\ 000000 12.... LCALL ?DEALLOC_XSTACK8
\ 000003 7F08 MOV R7,#0x8
\ 000005 02.... LJMP ?FUNC_LEAVE_XDATA
380
381
382
383
384 //-------------------------------------------------------------------------------------------------------
385 // void mrxProcessBeacon(MAC_TASK_INFO *pTask)
386 //
387 // DESCRIPTION:
388 // This task is responsible for processing beacon packets.
389 //
390 // TASK DATA
391 // A pointer to the MAC_RX_PACKET to be processed
392 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
393 void mrxProcessBeacon(MAC_TASK_INFO *pTask) NEAR {
\ mrxProcessBeacon:
\ 000000 74F0 MOV A,#-0x10
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 16
\ 000005 ; Auto size: 6
\ 000005 74FA MOV A,#-0x6
\ 000007 12.... LCALL ?ALLOC_XSTACK8
\ 00000A 7404 MOV A,#0x4
\ 00000C 12.... LCALL ?XSTACK_DISP0_8
\ 00000F EA MOV A,R2
\ 000010 F0 MOVX @DPTR,A
\ 000011 A3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -