📄 mac.lst
字号:
242 for(c=0;c<8;c++) {
\ ??MACPutHeader_5:
\ 0001BE 75..00 MOV ?V0 + 0,#0x0
\ ??MACPutHeader_6:
\ 0001C1 E5.. MOV A,?V0 + 0
\ 0001C3 C3 CLR C
\ 0001C4 9408 SUBB A,#0x8
\ 0001C6 503B JNC ??MACPutHeader_7
243 phy_pib.currentTxFrm++;
\ 0001C8 90.... MOV DPTR,#(phy_pib + 14)
\ 0001CB E0 MOVX A,@DPTR
\ 0001CC 2401 ADD A,#0x1
\ 0001CE F8 MOV R0,A
\ 0001CF A3 INC DPTR
\ 0001D0 E0 MOVX A,@DPTR
\ 0001D1 3400 ADDC A,#0x0
\ 0001D3 F9 MOV R1,A
\ 0001D4 90.... MOV DPTR,#(phy_pib + 14)
\ 0001D7 E8 MOV A,R0
\ 0001D8 F0 MOVX @DPTR,A
\ 0001D9 A3 INC DPTR
\ 0001DA E9 MOV A,R1
\ 0001DB F0 MOVX @DPTR,A
244 *phy_pib.currentTxFrm = a_mac_tx_data.DestAddr.laddr.bytes[c];
\ 0001DC 85.... MOV ?V0 + 2,?V0 + 0
\ 0001DF 75..00 MOV ?V0 + 3,#0x0
\ 0001E2 E5.. MOV A,?V0 + 2
\ 0001E4 24.. ADD A,#((a_mac_tx_data + 2) & 0xff)
\ 0001E6 F582 MOV DPL,A
\ 0001E8 E5.. MOV A,?V0 + 3
\ 0001EA 34.. ADDC A,#(((a_mac_tx_data + 2) >> 8) & 0xff)
\ 0001EC F583 MOV DPH,A
\ 0001EE E0 MOVX A,@DPTR
\ 0001EF C0E0 PUSH A
\ 0001F1 90.... MOV DPTR,#(phy_pib + 14)
\ 0001F4 E0 MOVX A,@DPTR
\ 0001F5 F8 MOV R0,A
\ 0001F6 A3 INC DPTR
\ 0001F7 E0 MOVX A,@DPTR
\ 0001F8 F583 MOV DPH,A
\ 0001FA 8882 MOV DPL,R0
\ 0001FC D0E0 POP A
\ 0001FE F0 MOVX @DPTR,A
245 }
\ 0001FF 05.. INC ?V0 + 0
\ 000201 80BE SJMP ??MACPutHeader_6
246 phy_pib.currentTxFlen=phy_pib.currentTxFlen+8;
\ ??MACPutHeader_7:
\ 000203 90.... MOV DPTR,#(phy_pib + 16)
\ 000206 E0 MOVX A,@DPTR
\ 000207 2408 ADD A,#0x8
\ 000209 F0 MOVX @DPTR,A
247 break;
248 default:
249 break;
250 }
251
252 //format src PANID
253 if ( !LRWPAN_GET_INTRAPAN(a_mac_tx_data.fcflsb) &&
254 srcmode != LRWPAN_ADDRMODE_NOADDR
255 )
\ ??MACPutHeader_3:
\ 00020A 90.... MOV DPTR,#(a_mac_tx_data + 14)
\ 00020D E0 MOVX A,@DPTR
\ 00020E A2E6 MOV C,0xE0 /* A */.6
\ 000210 405E JC ??MACPutHeader_8
\ 000212 E5.. MOV A,?V0 + 5
\ 000214 605A JZ ??MACPutHeader_8
256 {
257 phy_pib.currentTxFrm++;
\ 000216 90.... MOV DPTR,#(phy_pib + 14)
\ 000219 E0 MOVX A,@DPTR
\ 00021A 2401 ADD A,#0x1
\ 00021C F8 MOV R0,A
\ 00021D A3 INC DPTR
\ 00021E E0 MOVX A,@DPTR
\ 00021F 3400 ADDC A,#0x0
\ 000221 F9 MOV R1,A
\ 000222 90.... MOV DPTR,#(phy_pib + 14)
\ 000225 E8 MOV A,R0
\ 000226 F0 MOVX @DPTR,A
\ 000227 A3 INC DPTR
\ 000228 E9 MOV A,R1
\ 000229 F0 MOVX @DPTR,A
258 *phy_pib.currentTxFrm = (BYTE)a_mac_tx_data.SrcPANID;
\ 00022A 90.... MOV DPTR,#(a_mac_tx_data + 10)
\ 00022D E0 MOVX A,@DPTR
\ 00022E C0E0 PUSH A
\ 000230 90.... MOV DPTR,#(phy_pib + 14)
\ 000233 E0 MOVX A,@DPTR
\ 000234 F8 MOV R0,A
\ 000235 A3 INC DPTR
\ 000236 E0 MOVX A,@DPTR
\ 000237 F583 MOV DPH,A
\ 000239 8882 MOV DPL,R0
\ 00023B D0E0 POP A
\ 00023D F0 MOVX @DPTR,A
259 phy_pib.currentTxFrm++;
\ 00023E 90.... MOV DPTR,#(phy_pib + 14)
\ 000241 E0 MOVX A,@DPTR
\ 000242 2401 ADD A,#0x1
\ 000244 F8 MOV R0,A
\ 000245 A3 INC DPTR
\ 000246 E0 MOVX A,@DPTR
\ 000247 3400 ADDC A,#0x0
\ 000249 F9 MOV R1,A
\ 00024A 90.... MOV DPTR,#(phy_pib + 14)
\ 00024D E8 MOV A,R0
\ 00024E F0 MOVX @DPTR,A
\ 00024F A3 INC DPTR
\ 000250 E9 MOV A,R1
\ 000251 F0 MOVX @DPTR,A
260 *phy_pib.currentTxFrm = (BYTE) (a_mac_tx_data.SrcPANID >> 8);
\ 000252 90.... MOV DPTR,#(a_mac_tx_data + 10)
\ 000255 A3 INC DPTR
\ 000256 E0 MOVX A,@DPTR
\ 000257 F9 MOV R1,A
\ 000258 E9 MOV A,R1
\ 000259 C0E0 PUSH A
\ 00025B 90.... MOV DPTR,#(phy_pib + 14)
\ 00025E E0 MOVX A,@DPTR
\ 00025F F8 MOV R0,A
\ 000260 A3 INC DPTR
\ 000261 E0 MOVX A,@DPTR
\ 000262 F583 MOV DPH,A
\ 000264 8882 MOV DPL,R0
\ 000266 D0E0 POP A
\ 000268 F0 MOVX @DPTR,A
261 phy_pib.currentTxFlen=phy_pib.currentTxFlen+2;
\ 000269 90.... MOV DPTR,#(phy_pib + 16)
\ 00026C E0 MOVX A,@DPTR
\ 00026D 2402 ADD A,#0x2
\ 00026F F0 MOVX @DPTR,A
262 }
263
264 //format src Address
265 switch(srcmode)
\ ??MACPutHeader_8:
\ 000270 E5.. MOV A,?V0 + 5
\ 000272 12.... LCALL ?UC_SWITCH_DENSE
\ `?<Jumptable for MACPutHeader>_1`:
\ 000275 02 DB 2
\ 000276 01 DB 1
\ 000277 .... DW ??MACPutHeader_9
\ 000279 .... DW ??MACPutHeader_10
\ 00027B .... DW ??MACPutHeader_11
266 {
267 case LRWPAN_ADDRMODE_NOADDR:
268 break;
269 case LRWPAN_ADDRMODE_SADDR:
270 phy_pib.currentTxFrm++;
\ ??MACPutHeader_10:
\ 00027D 90.... MOV DPTR,#(phy_pib + 14)
\ 000280 E0 MOVX A,@DPTR
\ 000281 2401 ADD A,#0x1
\ 000283 F8 MOV R0,A
\ 000284 A3 INC DPTR
\ 000285 E0 MOVX A,@DPTR
\ 000286 3400 ADDC A,#0x0
\ 000288 F9 MOV R1,A
\ 000289 90.... MOV DPTR,#(phy_pib + 14)
\ 00028C E8 MOV A,R0
\ 00028D F0 MOVX @DPTR,A
\ 00028E A3 INC DPTR
\ 00028F E9 MOV A,R1
\ 000290 F0 MOVX @DPTR,A
271 *phy_pib.currentTxFrm = (BYTE)a_mac_tx_data.SrcAddr;
\ 000291 90.... MOV DPTR,#(a_mac_tx_data + 12)
\ 000294 E0 MOVX A,@DPTR
\ 000295 C0E0 PUSH A
\ 000297 90.... MOV DPTR,#(phy_pib + 14)
\ 00029A E0 MOVX A,@DPTR
\ 00029B F8 MOV R0,A
\ 00029C A3 INC DPTR
\ 00029D E0 MOVX A,@DPTR
\ 00029E F583 MOV DPH,A
\ 0002A0 8882 MOV DPL,R0
\ 0002A2 D0E0 POP A
\ 0002A4 F0 MOVX @DPTR,A
272 phy_pib.currentTxFrm++;
\ 0002A5 90.... MOV DPTR,#(phy_pib + 14)
\ 0002A8 E0 MOVX A,@DPTR
\ 0002A9 2401 ADD A,#0x1
\ 0002AB F8 MOV R0,A
\ 0002AC A3 INC DPTR
\ 0002AD E0 MOVX A,@DPTR
\ 0002AE 3400 ADDC A,#0x0
\ 0002B0 F9 MOV R1,A
\ 0002B1 90.... MOV DPTR,#(phy_pib + 14)
\ 0002B4 E8 MOV A,R0
\ 0002B5 F0 MOVX @DPTR,A
\ 0002B6 A3 INC DPTR
\ 0002B7 E9 MOV A,R1
\ 0002B8 F0 MOVX @DPTR,A
273 *phy_pib.currentTxFrm = (BYTE)(a_mac_tx_data.SrcAddr >> 8);
\ 0002B9 90.... MOV DPTR,#(a_mac_tx_data + 12)
\ 0002BC A3 INC DPTR
\ 0002BD E0 MOVX A,@DPTR
\ 0002BE F9 MOV R1,A
\ 0002BF E9 MOV A,R1
\ 0002C0 C0E0 PUSH A
\ 0002C2 90.... MOV DPTR,#(phy_pib + 14)
\ 0002C5 E0 MOVX A,@DPTR
\ 0002C6 F8 MOV R0,A
\ 0002C7 A3 INC DPTR
\ 0002C8 E0 MOVX A,@DPTR
\ 0002C9 F583 MOV DPH,A
\ 0002CB 8882 MOV DPL,R0
\ 0002CD D0E0 POP A
\ 0002CF F0 MOVX @DPTR,A
274 phy_pib.currentTxFlen=phy_pib.currentTxFlen+2;
\ 0002D0 90.... MOV DPTR,#(phy_pib + 16)
\ 0002D3 E0 MOVX A,@DPTR
\ 0002D4 2402 ADD A,#0x2
\ 0002D6 F0 MOVX @DPTR,A
\ 0002D7 802A SJMP ??MACPutHeader_9
275 break;
276 case LRWPAN_ADDRMODE_LADDR:
277 //this has to be our own long address, get it
278 halGetProcessorIEEEAddress_ASC(phy_pib.currentTxFrm-8);
\ ??MACPutHeader_11:
\ 0002D9 ; Setup parameters for call to function halGetProcessorIEEEAddress_ASC
\ 0002D9 90.... MOV DPTR,#(phy_pib + 14)
\ 0002DC E0 MOVX A,@DPTR
\ 0002DD 24F8 ADD A,#-0x8
\ 0002DF FA MOV R2,A
\ 0002E0 A3 INC DPTR
\ 0002E1 E0 MOVX A,@DPTR
\ 0002E2 34FF ADDC A,#-0x1
\ 0002E4 FB MOV R3,A
\ 0002E5 12.... LCALL halGetProcessorIEEEAddress_ASC
279 phy_pib.currentTxFlen=phy_pib.currentTxFlen+8;
\ 0002E8 90.... MOV DPTR,#(phy_pib + 16)
\ 0002EB E0 MOVX A,@DPTR
\ 0002EC 2408 ADD A,#0x8
\ 0002EE F0 MOVX @DPTR,A
280 phy_pib.currentTxFrm = phy_pib.currentTxFrm+8;
\ 0002EF 90.... MOV DPTR,#(phy_pib + 14)
\ 0002F2 E0 MOVX A,@DPTR
\ 0002F3 2408 ADD A,#0x8
\ 0002F5 F8 MOV R0,A
\ 0002F6 A3 INC DPTR
\ 0002F7 E0 MOVX A,@DPTR
\ 0002F8 3400 ADDC A,#0x0
\ 0002FA F9 MOV R1,A
\ 0002FB 90.... MOV DPTR,#(phy_pib + 14)
\ 0002FE E8 MOV A,R0
\ 0002FF F0 MOVX @DPTR,A
\ 000300 A3 INC DPTR
\ 000301 E9 MOV A,R1
\ 000302 F0 MOVX @DPTR,A
281 break;
282 default:
283 break;
284 }
285
286
287 }
\ ??MACPutHeader_9:
\ 000303 7F06 MOV R7,#0x6
\ 000305 02.... LJMP ?FUNC_LEAVE_XDATA
288
289
290
\ In segment NEAR_CODE, align 1, keep-with-next
291 void MACPutArray(BYTE *data,BYTE len) //bhj 本函数在数组的最后追加了一个校验字节
\ MACPutArray:
292 {
\ 000000 74F6 MOV A,#-0xa
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 10
\ 000005 ; Auto size: 0
\ 000005 E9 MOV A,R1
\ 000006 FC MOV R4,A
293 BYTE i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -