📄 uip_arp.lst
字号:
524 .LM51:
525 0282 0895 ret
526 .L67:
527 .stabn 68,0,224,.LM52-uip_arp_arpin
528 .LM52:
529 0284 1092 0000 sts uip_len,__zero_reg__
530 .stabn 68,0,226,.LM53-uip_arp_arpin
531 .LM53:
532 0288 8091 0000 lds r24,uip_buf+20
533 028c 9091 0000 lds r25,(uip_buf+20)+1
534 0290 21E0 ldi r18,hi8(256)
535 0292 8030 cpi r24,lo8(256)
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 15
536 0294 9207 cpc r25,r18
537 0296 29F0 breq .L69
538 0298 8050 subi r24,lo8(512)
539 029a 9240 sbci r25,hi8(512)
540 029c 09F4 brne .+2
541 029e 58C0 rjmp .L76
542 .stabn 68,0,263,.LM54-uip_arp_arpin
543 .LM54:
544 02a0 0895 ret
545 .L69:
546 .stabn 68,0,230,.LM55-uip_arp_arpin
547 .LM55:
548 02a2 8091 0000 lds r24,uip_buf+38
549 02a6 9091 0000 lds r25,(uip_buf+38)+1
550 02aa 805C subi r24,lo8(-22336)
551 02ac 984A sbci r25,hi8(-22336)
552 02ae 09F0 breq .+2
553 02b0 63C0 rjmp .L66
554 02b2 8091 0000 lds r24,uip_buf+40
555 02b6 9091 0000 lds r25,(uip_buf+40)+1
556 02ba 8150 subi r24,lo8(3073)
557 02bc 9C40 sbci r25,hi8(3073)
558 02be 09F0 breq .+2
559 02c0 5BC0 rjmp .L66
560 .stabn 68,0,233,.LM56-uip_arp_arpin
561 .LM56:
562 02c2 80E0 ldi r24,lo8(512)
563 02c4 92E0 ldi r25,hi8(512)
564 02c6 9093 0000 sts (uip_buf+20)+1,r25
565 02ca 8093 0000 sts uip_buf+20,r24
566 .stabn 68,0,234,.LM57-uip_arp_arpin
567 .LM57:
568 02ce 86E0 ldi r24,lo8(6)
569 02d0 E0E0 ldi r30,lo8(uip_buf+32)
570 02d2 F0E0 ldi r31,hi8(uip_buf+32)
571 02d4 DF01 movw r26,r30
572 02d6 1A97 sbiw r26,10
573 02d8 0D90 ld __tmp_reg__,X+
574 02da 0192 st Z+,__tmp_reg__
575 02dc 8A95 dec r24
576 02de E1F7 brne .-8
577 .stabn 68,0,236,.LM58-uip_arp_arpin
578 .LM58:
579 02e0 1092 0000 sts c,__zero_reg__
580 02e4 90E0 ldi r25,lo8(0)
581 02e6 A0E0 ldi r26,lo8(ethaddr)
582 02e8 B0E0 ldi r27,hi8(ethaddr)
583 02ea E0E0 ldi r30,lo8(uip_buf)
584 02ec F0E0 ldi r31,hi8(uip_buf)
585 .L75:
586 .stabn 68,0,237,.LM59-uip_arp_arpin
587 .LM59:
588 02ee 8D91 ld r24,X+
589 02f0 8683 std Z+6,r24
590 02f2 868B std Z+22,r24
591 .stabn 68,0,239,.LM60-uip_arp_arpin
592 .LM60:
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 16
593 02f4 80A1 ldd r24,Z+32
594 02f6 8193 st Z+,r24
595 .stabn 68,0,236,.LM61-uip_arp_arpin
596 .LM61:
597 02f8 9F5F subi r25,lo8(-(1))
598 02fa 9630 cpi r25,lo8(6)
599 02fc C0F3 brlo .L75
600 02fe 96E0 ldi r25,lo8(6)
601 0300 9093 0000 sts c,r25
602 .stabn 68,0,242,.LM62-uip_arp_arpin
603 .LM62:
604 0304 8091 0000 lds r24,uip_buf+28
605 0308 9091 0000 lds r25,(uip_buf+28)+1
606 030c 9093 0000 sts (uip_buf+38)+1,r25
607 0310 8093 0000 sts uip_buf+38,r24
608 .stabn 68,0,243,.LM63-uip_arp_arpin
609 .LM63:
610 0314 8091 0000 lds r24,uip_buf+30
611 0318 9091 0000 lds r25,(uip_buf+30)+1
612 031c 9093 0000 sts (uip_buf+40)+1,r25
613 0320 8093 0000 sts uip_buf+40,r24
614 .stabn 68,0,244,.LM64-uip_arp_arpin
615 .LM64:
616 0324 80EC ldi r24,lo8(-22336)
617 0326 98EA ldi r25,hi8(-22336)
618 0328 9093 0000 sts (uip_buf+28)+1,r25
619 032c 8093 0000 sts uip_buf+28,r24
620 .stabn 68,0,245,.LM65-uip_arp_arpin
621 .LM65:
622 0330 81E0 ldi r24,lo8(3073)
623 0332 9CE0 ldi r25,hi8(3073)
624 0334 9093 0000 sts (uip_buf+30)+1,r25
625 0338 8093 0000 sts uip_buf+30,r24
626 .stabn 68,0,247,.LM66-uip_arp_arpin
627 .LM66:
628 033c 88E0 ldi r24,lo8(1544)
629 033e 96E0 ldi r25,hi8(1544)
630 0340 9093 0000 sts (uip_buf+12)+1,r25
631 0344 8093 0000 sts uip_buf+12,r24
632 .stabn 68,0,248,.LM67-uip_arp_arpin
633 .LM67:
634 0348 8AE2 ldi r24,lo8(42)
635 034a 8093 0000 sts uip_len,r24
636 .stabn 68,0,250,.LM68-uip_arp_arpin
637 .LM68:
638 .stabn 68,0,263,.LM69-uip_arp_arpin
639 .LM69:
640 034e 0895 ret
641 .L76:
642 .stabn 68,0,254,.LM70-uip_arp_arpin
643 .LM70:
644 0350 8091 0000 lds r24,uip_buf+38
645 0354 9091 0000 lds r25,(uip_buf+38)+1
646 0358 805C subi r24,lo8(-22336)
647 035a 984A sbci r25,hi8(-22336)
648 035c 69F4 brne .L66
649 035e 8091 0000 lds r24,uip_buf+40
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 17
650 0362 9091 0000 lds r25,(uip_buf+40)+1
651 0366 8150 subi r24,lo8(3073)
652 0368 9C40 sbci r25,hi8(3073)
653 036a 31F4 brne .L66
654 .stabn 68,0,257,.LM71-uip_arp_arpin
655 .LM71:
656 036c 60E0 ldi r22,lo8(uip_buf+22)
657 036e 70E0 ldi r23,hi8(uip_buf+22)
658 0370 80E0 ldi r24,lo8(uip_buf+28)
659 0372 90E0 ldi r25,hi8(uip_buf+28)
660 0374 0E94 0000 call uip_arp_update
661 .stabn 68,0,263,.LM72-uip_arp_arpin
662 .LM72:
663 .L66:
664 0378 0895 ret
665 /* epilogue: frame size=0 */
666 037a 0895 ret
667 /* epilogue end (size=1) */
668 /* function uip_arp_arpin size 136 (135) */
669 .size uip_arp_arpin, .-uip_arp_arpin
670 .Lscope4:
671 .stabs "",36,0,0,.Lscope4-uip_arp_arpin
672 .stabs "uip_arp_out:F(0,20)",36,0,267,uip_arp_out
673 .global uip_arp_out
674 .type uip_arp_out, @function
675 uip_arp_out:
264:uip_arp.c **** /*-----------------------------------------------------------------------------------*/
265:uip_arp.c **** void
266:uip_arp.c **** uip_arp_out(void)
267:uip_arp.c **** {
676 .stabn 68,0,267,.LM73-uip_arp_out
677 .LM73:
678 /* prologue: frame size=0 */
679 037c CF93 push r28
680 037e DF93 push r29
681 /* prologue end (size=2) */
268:uip_arp.c **** /* Find the destination IP address in the ARP table and construct
269:uip_arp.c **** the Ethernet header. If the destination IP addres isn't on the
270:uip_arp.c **** local network, we use the default router's IP address instead.
271:uip_arp.c ****
272:uip_arp.c **** If not ARP table entry is found, we overwrite the original IP
273:uip_arp.c **** packet with an ARP request for the IP address. */
274:uip_arp.c ****
275:uip_arp.c **** /* Check if the destination address is on the local network. */
276:uip_arp.c **** if((IPBUF->destipaddr[0] & htons((UIP_NETMASK0 << 8) | UIP_NETMASK1)) !=
682 .stabn 68,0,276,.LM74-uip_arp_out
683 .LM74:
684 0380 2091 0000 lds r18,uip_buf+30
685 0384 3091 0000 lds r19,(uip_buf+30)+1
686 0388 88EA ldi r24,hi8(-22336)
687 038a 203C cpi r18,lo8(-22336)
688 038c 3807 cpc r19,r24
689 038e 31F4 brne .L85
690 0390 8091 0000 lds r24,uip_buf+32
691 0394 9091 0000 lds r25,(uip_buf+32)+1
692 0398 8130 cpi r24,lo8(1)
693 039a 49F0 breq .L84
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 18
694 .L85:
277:uip_arp.c **** (htons((UIP_IPADDR0 << 8) | UIP_IPADDR1)
278:uip_arp.c **** & htons((UIP_NETMASK0 << 8) | UIP_NETMASK1)) ||
279:uip_arp.c **** (IPBUF->destipaddr[1] & htons((UIP_NETMASK2 << 8) | UIP_NETMASK3)) !=
280:uip_arp.c **** (htons((UIP_IPADDR2 << 8) | UIP_IPADDR3)
281:uip_arp.c **** & htons((UIP_NETMASK2 << 8) | UIP_NETMASK3))) {
282:uip_arp.c **** /* Destination address was not on the local network, so we need to
283:uip_arp.c **** use the default router's IP address instead of the destination
284:uip_arp.c **** address when determining the MAC address. */
285:uip_arp.c **** ipaddr[0] = htons((UIP_DRIPADDR0 << 8) | UIP_DRIPADDR1);
695 .stabn 68,0,285,.LM75-uip_arp_out
696 .LM75:
697 039c 80EC ldi r24,lo8(-22336)
698 039e 98EA ldi r25,hi8(-22336)
699 03a0 9093 0000 sts (ipaddr)+1,r25
700 03a4 8093 0000 sts ipaddr,r24
286:uip_arp.c **** ipaddr[1] = htons((UIP_DRIPADDR2 << 8) | UIP_DRIPADDR3);
701 .stabn 68,0,286,.LM76-uip_arp_out
702 .LM76:
703 03a8 81E0 ldi r24,lo8(257)
704 03aa 91E0 ldi r25,hi8(257)
705 03ac 04C0 rjmp .L112
706 .L84:
287:uip_arp.c **** } else {
288:uip_arp.c **** /* Else, we use the destination IP address. */
289:uip_arp.c **** ipaddr[0] = IPBUF->destipaddr[0];
707 .stabn 68,0,289,.LM77-uip_arp_out
708 .LM77:
709 03ae 3093 0000 sts (ipaddr)+1,r19
710 03b2 2093 0000 sts ipaddr,r18
711 .L112:
290:uip_arp.c **** ipaddr[1] = IPBUF->destipaddr[1];
712 .stabn 68,0,290,.LM78-uip_arp_out
713 .LM78:
714 03b6 9093 0000 sts (ipaddr+2)+1,r25
715 03ba 8093 0000 sts ipaddr+2,r24
291:uip_arp.c **** }
292:uip_arp.c ****
293:uip_arp.c **** for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
716 .stabn 68,0,293,.LM79-uip_arp_out
717 .LM79:
718 03be 1092 0000 sts i,__zero_reg__
719 03c2 40E0 ldi r20,lo8(0)
720 03c4 A091 0000 lds r26,ipaddr
721 03c8 B091 0000 lds r27,(ipaddr)+1
722 03cc 6091 0000 lds r22,ipaddr+2
723 03d0 7091 0000 lds r23,(ipaddr+2)+1
724 .L92:
294:uip_arp.c **** if(ipaddr[0] == arp_table[i].ipaddr[0] &&
725 .stabn 68,0,294,.LM80-uip_arp_out
726 .LM80:
727 03d4 842F mov r24,r20
728 03d6 9927 clr r25
729 03d8 2BE0 ldi r18,lo8(11)
730 03da 30E0 ldi r19,hi8(11)
731 03dc 829F mul r24,r18
732 03de F001 movw r30,r0
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 19
733 03e0 839F mul r24,r19
734 03e2 F00D add r31,r0
735 03e4 929F mul r25,r18
736 03e6 F00D add r31,r0
737 03e8 1124 clr r1
738 03ea E050 subi r30,lo8(-(arp_table))
739 03ec F040 sbci r31,hi8(-(arp_table))
740 03ee ED01 movw r28,r26
741 03f0 8081 ld r24,Z
742 03f2 9181 ldd r25,Z+1
743 03f4 A817 cp r26,r24
744 03f6 B907 cpc r27,r25
745 03f8 29F4 brne .L89
746 03fa 8281 ldd r24,Z+2
747 03fc 9381 ldd r25,Z+3
748 03fe 6817 cp r22,r24
749 0400 7907 cpc r23,r25
750 0402 11F0 breq .L111
751 .stabn 68,0,293,.LM81-uip_arp_out
752 .LM81:
753 .L89:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -