📄 uip_arp.lst
字号:
754 0404 4F5F subi r20,lo8(-(1))
755 0406 31F3 breq .L92
756 .L111:
757 0408 4093 0000 sts i,r20
295:uip_arp.c **** ipaddr[1] == arp_table[i].ipaddr[1])
296:uip_arp.c **** break;
297:uip_arp.c **** }
298:uip_arp.c ****
299:uip_arp.c **** if(i == UIP_ARPTAB_SIZE) {
758 .stabn 68,0,299,.LM82-uip_arp_out
759 .LM82:
760 040c 742F mov r23,r20
761 040e 4130 cpi r20,lo8(1)
762 0410 09F0 breq .+2
763 0412 4FC0 rjmp .L93
300:uip_arp.c **** /* The destination address was not in our ARP table, so we
301:uip_arp.c **** overwrite the IP packet with an ARP request. */
302:uip_arp.c ****
303:uip_arp.c **** for(c = 0; c < 6; ++c) {
764 .stabn 68,0,303,.LM83-uip_arp_out
765 .LM83:
766 0414 1092 0000 sts c,__zero_reg__
767 0418 20E0 ldi r18,lo8(0)
768 041a A0E0 ldi r26,lo8(ethaddr)
769 041c B0E0 ldi r27,hi8(ethaddr)
770 041e E0E0 ldi r30,lo8(uip_buf)
771 0420 F0E0 ldi r31,hi8(uip_buf)
772 .L98:
304:uip_arp.c **** BUF->ethhdr.dest.addr[c] = 0xff; /* Broadcast ARP request. */
773 .stabn 68,0,304,.LM84-uip_arp_out
774 .LM84:
775 0422 8FEF ldi r24,lo8(-1)
776 0424 8083 st Z,r24
305:uip_arp.c **** BUF->ethhdr.src.addr[c] =
777 .stabn 68,0,305,.LM85-uip_arp_out
778 .LM85:
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 20
779 0426 8D91 ld r24,X+
780 0428 868B std Z+22,r24
781 042a 8683 std Z+6,r24
306:uip_arp.c **** BUF->shwaddr.addr[c] = ethaddr.addr[c];
307:uip_arp.c **** BUF->dhwaddr.addr[c] = 0;
782 .stabn 68,0,307,.LM86-uip_arp_out
783 .LM86:
784 042c 10A2 std Z+32,__zero_reg__
785 .stabn 68,0,303,.LM87-uip_arp_out
786 .LM87:
787 042e 2F5F subi r18,lo8(-(1))
788 0430 3196 adiw r30,1
789 0432 2630 cpi r18,lo8(6)
790 0434 B0F3 brlo .L98
791 0436 26E0 ldi r18,lo8(6)
792 0438 2093 0000 sts c,r18
308:uip_arp.c **** }
309:uip_arp.c ****
310:uip_arp.c **** BUF->dipaddr[0] = ipaddr[0];
793 .stabn 68,0,310,.LM88-uip_arp_out
794 .LM88:
795 043c D093 0000 sts (uip_buf+38)+1,r29
796 0440 C093 0000 sts uip_buf+38,r28
311:uip_arp.c **** BUF->dipaddr[1] = ipaddr[1];
797 .stabn 68,0,311,.LM89-uip_arp_out
798 .LM89:
799 0444 8091 0000 lds r24,ipaddr+2
800 0448 9091 0000 lds r25,(ipaddr+2)+1
801 044c 9093 0000 sts (uip_buf+40)+1,r25
802 0450 8093 0000 sts uip_buf+40,r24
312:uip_arp.c **** BUF->sipaddr[0] = htons((UIP_IPADDR0 << 8) | UIP_IPADDR1);
803 .stabn 68,0,312,.LM90-uip_arp_out
804 .LM90:
805 0454 80EC ldi r24,lo8(-22336)
806 0456 98EA ldi r25,hi8(-22336)
807 0458 9093 0000 sts (uip_buf+28)+1,r25
808 045c 8093 0000 sts uip_buf+28,r24
313:uip_arp.c **** BUF->sipaddr[1] = htons((UIP_IPADDR2 << 8) | UIP_IPADDR3);
809 .stabn 68,0,313,.LM91-uip_arp_out
810 .LM91:
811 0460 81E0 ldi r24,lo8(3073)
812 0462 9CE0 ldi r25,hi8(3073)
813 0464 9093 0000 sts (uip_buf+30)+1,r25
814 0468 8093 0000 sts uip_buf+30,r24
314:uip_arp.c **** BUF->opcode = htons(ARP_REQUEST); /* ARP request. */
815 .stabn 68,0,314,.LM92-uip_arp_out
816 .LM92:
817 046c 80E0 ldi r24,lo8(256)
818 046e 91E0 ldi r25,hi8(256)
819 0470 9093 0000 sts (uip_buf+20)+1,r25
820 0474 8093 0000 sts uip_buf+20,r24
315:uip_arp.c **** BUF->hwtype = htons(ARP_HWTYPE_ETH);
821 .stabn 68,0,315,.LM93-uip_arp_out
822 .LM93:
823 0478 9093 0000 sts (uip_buf+14)+1,r25
824 047c 8093 0000 sts uip_buf+14,r24
316:uip_arp.c **** BUF->protocol = htons(UIP_ETHTYPE_IP);
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 21
825 .stabn 68,0,316,.LM94-uip_arp_out
826 .LM94:
827 0480 88E0 ldi r24,lo8(8)
828 0482 90E0 ldi r25,hi8(8)
829 0484 9093 0000 sts (uip_buf+16)+1,r25
830 0488 8093 0000 sts uip_buf+16,r24
317:uip_arp.c **** BUF->hwlen = 6;
831 .stabn 68,0,317,.LM95-uip_arp_out
832 .LM95:
833 048c 2093 0000 sts uip_buf+18,r18
318:uip_arp.c **** BUF->protolen = 4;
834 .stabn 68,0,318,.LM96-uip_arp_out
835 .LM96:
836 0490 84E0 ldi r24,lo8(4)
837 0492 8093 0000 sts uip_buf+19,r24
319:uip_arp.c **** BUF->ethhdr.type = htons(UIP_ETHTYPE_ARP);
838 .stabn 68,0,319,.LM97-uip_arp_out
839 .LM97:
840 0496 88E0 ldi r24,lo8(1544)
841 0498 96E0 ldi r25,hi8(1544)
842 049a 9093 0000 sts (uip_buf+12)+1,r25
843 049e 8093 0000 sts uip_buf+12,r24
320:uip_arp.c ****
321:uip_arp.c **** uip_appdata = &uip_buf[40 + UIP_LLH_LEN];
844 .stabn 68,0,321,.LM98-uip_arp_out
845 .LM98:
846 04a2 80E0 ldi r24,lo8(uip_buf+54)
847 04a4 90E0 ldi r25,hi8(uip_buf+54)
848 04a6 9093 0000 sts (uip_appdata)+1,r25
849 04aa 8093 0000 sts uip_appdata,r24
322:uip_arp.c ****
323:uip_arp.c **** uip_len = sizeof(struct arp_hdr);
850 .stabn 68,0,323,.LM99-uip_arp_out
851 .LM99:
852 04ae 8AE2 ldi r24,lo8(42)
853 04b0 30C0 rjmp .L113
854 .L93:
324:uip_arp.c **** return;
325:uip_arp.c **** }
326:uip_arp.c ****
327:uip_arp.c **** /* Build an ethernet header. */
328:uip_arp.c **** for(c = 0; c < 6; ++c) {
855 .stabn 68,0,328,.LM100-uip_arp_out
856 .LM100:
857 04b2 1092 0000 sts c,__zero_reg__
858 04b6 60E0 ldi r22,lo8(0)
859 04b8 C0E0 ldi r28,lo8(ethaddr)
860 04ba D0E0 ldi r29,hi8(ethaddr)
861 04bc A0E0 ldi r26,lo8(uip_buf)
862 04be B0E0 ldi r27,hi8(uip_buf)
863 04c0 40E0 ldi r20,lo8(0)
864 04c2 50E0 ldi r21,hi8(0)
865 .L103:
329:uip_arp.c **** IPBUF->ethhdr.dest.addr[c] = arp_table[i].ethaddr.addr[c];
866 .stabn 68,0,329,.LM101-uip_arp_out
867 .LM101:
868 04c4 272F mov r18,r23
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 22
869 04c6 3327 clr r19
870 04c8 8BE0 ldi r24,lo8(11)
871 04ca 90E0 ldi r25,hi8(11)
872 04cc 289F mul r18,r24
873 04ce F001 movw r30,r0
874 04d0 299F mul r18,r25
875 04d2 F00D add r31,r0
876 04d4 389F mul r19,r24
877 04d6 F00D add r31,r0
878 04d8 1124 clr r1
879 04da E40F add r30,r20
880 04dc F51F adc r31,r21
881 04de E050 subi r30,lo8(-(arp_table))
882 04e0 F040 sbci r31,hi8(-(arp_table))
883 04e2 8481 ldd r24,Z+4
884 04e4 8C93 st X,r24
330:uip_arp.c **** IPBUF->ethhdr.src.addr[c] = ethaddr.addr[c];
885 .stabn 68,0,330,.LM102-uip_arp_out
886 .LM102:
887 04e6 8991 ld r24,Y+
888 04e8 1696 adiw r26,6
889 04ea 8C93 st X,r24
890 04ec 1697 sbiw r26,6
891 .stabn 68,0,328,.LM103-uip_arp_out
892 .LM103:
893 04ee 6F5F subi r22,lo8(-(1))
894 04f0 4F5F subi r20,lo8(-(1))
895 04f2 5F4F sbci r21,hi8(-(1))
896 04f4 1196 adiw r26,1
897 04f6 6630 cpi r22,lo8(6)
898 04f8 28F3 brlo .L103
899 04fa 66E0 ldi r22,lo8(6)
900 04fc 6093 0000 sts c,r22
331:uip_arp.c **** }
332:uip_arp.c **** IPBUF->ethhdr.type = htons(UIP_ETHTYPE_IP);
901 .stabn 68,0,332,.LM104-uip_arp_out
902 .LM104:
903 0500 88E0 ldi r24,lo8(8)
904 0502 90E0 ldi r25,hi8(8)
905 0504 9093 0000 sts (uip_buf+12)+1,r25
906 0508 8093 0000 sts uip_buf+12,r24
333:uip_arp.c ****
334:uip_arp.c **** uip_len += sizeof(struct uip_eth_hdr);
907 .stabn 68,0,334,.LM105-uip_arp_out
908 .LM105:
909 050c 8091 0000 lds r24,uip_len
910 0510 825F subi r24,lo8(-(14))
911 .L113:
912 0512 8093 0000 sts uip_len,r24
335:uip_arp.c **** }
913 .stabn 68,0,335,.LM106-uip_arp_out
914 .LM106:
915 /* epilogue: frame size=0 */
916 0516 DF91 pop r29
917 0518 CF91 pop r28
918 051a 0895 ret
919 /* epilogue end (size=3) */
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 23
920 /* function uip_arp_out size 209 (204) */
921 .size uip_arp_out, .-uip_arp_out
922 .Lscope5:
923 .stabs "",36,0,0,.Lscope5-uip_arp_out
924 .lcomm arp_table,11
925 .lcomm ipaddr,4
926 .lcomm i,1
927 .lcomm c,1
928 .lcomm time,1
929 .lcomm tmpage,1
930 .stabs "ethaddr:S(1,6)=k(2,1)",38,0,91,ethaddr
931 .stabs "arp_table:S(1,7)=ar(3,3);0;0;(1,3)",40,0,98,arp_table
932 .stabs "ipaddr:S(3,2)",40,0,99,ipaddr
933 .stabs "i:S(4,1)",40,0,100,i
934 .stabs "c:S(4,1)",40,0,100,c
935 .stabs "time:S(4,1)",40,0,102,time
936 .stabs "tmpage:S(4,1)",40,0,103,tmpage
937 .text
938 .stabs "",100,0,0,Letext
939 Letext:
940 /* File "uip_arp.c": code 664 = 0x0298 ( 646), prologues 6, epilogues 12 */
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 24
DEFINED SYMBOLS
*ABS*:00000000 uip_arp.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:59 .data:00000000 ethaddr
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:70 .text:00000000 uip_arp_init
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:925 .bss:0000000f i
.bss:00000000 arp_table
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:108 .text:00000022 uip_arp_timer
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:927 .bss:00000011 time
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:181 .text:00000082 uip_arp_update
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:926 .bss:00000010 c
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:928 .bss:00000012 tmpage
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:465 .text:00000244 uip_arp_ipin
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:508 .text:00000276 uip_arp_arpin
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:675 .text:0000037c uip_arp_out
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:924 .bss:0000000b ipaddr
C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s:939 .text:0000051c Letext
*ABS*:00000000 *ABS*
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
uip_buf
uip_len
uip_appdata
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -