⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uip_arp.lst

📁 AVR单片机使用U-IP库的例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -