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

📄 uip_arp.lst

📁 一个AVR 上的UIP移植程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -