📄 uip_arp.lst
字号:
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 1
1 .file "uip_arp.c"
2 .arch atmega323
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "C:\\Code\\AVR\\uip-avr/",100,0,0,.Ltext0
11 .stabs "uip_arp.c",100,0,0,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);0020000000000;0017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0000000000000;0000000177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0000000000000;0037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;",128,0,0,
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0000000000000;0000000177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "complex int:t(0,15)=s4real:(0,1),0,16;imag:(0,1),16,16;;",128,0,0,0
30 .stabs "complex float:t(0,16)=R3;8;0;",128,0,0,0
31 .stabs "complex double:t(0,17)=R3;8;0;",128,0,0,0
32 .stabs "complex long double:t(0,18)=R3;8;0;",128,0,0,0
33 .stabs "__builtin_va_list:t(0,19)=*(0,20)=(0,20)",128,0,0,0
34 .stabs "_Bool:t(0,21)=@s8;-16;",128,0,0,0
35 .stabs "uip_arp.c",130,0,0,0
36 .stabs "uip_arp.h",130,0,0,0
37 .stabs "uip.h",130,0,0,0
38 .stabs "uipopt.h",130,0,0,0
39 .stabs "u8_t:t(4,1)=(0,11)",128,0,52,0
40 .stabs "u16_t:t(4,2)=(0,9)",128,0,53,0
41 .stabs "app.h",130,0,0,0
42 .stabs "uip.h",130,0,0,0
43 .stabn 162,0,0,0
44 .stabn 162,0,0,0
45 .stabn 162,0,0,0
46 .stabs "uip_conn:T(3,1)=s25tcpstateflags:(4,1),0,8;lport:(4,2),8,16;rport:(4,2),24,16;ripaddr:(3,2
47 .stabs "uip_stats:T(3,6)=s44ip:(3,7)=s18drop:(4,2),0,16;recv:(4,2),16,16;sent:(4,2),32,16;vhlerr:(
48 .stabs "uip_tcpip_hdr:t(3,10)=(3,11)=s44vhl:(4,1),0,8;tos:(4,1),8,8;len:(3,12)=ar(3,3);0;1;(4,1),1
49 .stabn 162,0,0,0
50 .stabs "uip_eth_addr:T(2,1)=s6addr:(2,2)=ar(3,3);0;5;(4,1),0,48;;",128,0,0,0
51 .stabs "uip_eth_hdr:T(2,3)=s14dest:(2,1),0,48;src:(2,1),48,48;type:(4,2),96,16;;",128,0,0,0
52 .stabn 162,0,0,0
53 .stabs "arp_hdr:T(1,1)=s42ethhdr:(2,3),0,112;hwtype:(4,2),112,16;protocol:(4,2),128,16;hwlen:(4,1)
54 .stabs "ethip_hdr:T(1,2)=s34ethhdr:(2,3),0,112;vhl:(4,1),112,8;tos:(4,1),120,8;len:(3,12),128,16;i
55 .stabs "arp_entry:T(1,3)=s11ipaddr:(3,2),0,32;ethaddr:(2,1),32,48;time:(4,1),80,8;;",128,0,0,0
56 .data
57 .type ethaddr, @object
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 2
58 .size ethaddr, 6
59 ethaddr:
60 0000 30 .byte 48
61 0001 46 .byte 70
62 0002 46 .byte 70
63 0003 49 .byte 73
64 0004 43 .byte 67
65 0005 45 .byte 69
66 .text
67 .stabs "uip_arp_init:F(0,20)",36,0,110,uip_arp_init
68 .global uip_arp_init
69 .type uip_arp_init, @function
70 uip_arp_init:
1:uip_arp.c **** /*****************************************************************************
2:uip_arp.c **** * modified by Louis Beaudoin for uIP-AVR port - September 20, 2002
3:uip_arp.c **** * www.embedded-creations.com
4:uip_arp.c **** *
5:uip_arp.c **** * added: sets uip_len to length of packet ignoring Ethernet trailer
6:uip_arp.c **** * in uip_arp_ipin(void) (yes, kind of a hack, but it works for now)
7:uip_arp.c **** *
8:uip_arp.c **** * fixed: array index error under uip_arp_out() - Build an ethernet header.
9:uip_arp.c **** *
10:uip_arp.c **** *****************************************************************************/
11:uip_arp.c ****
12:uip_arp.c **** /*
13:uip_arp.c **** * Copyright (c) 2001-2002, Adam Dunkels.
14:uip_arp.c **** * All rights reserved.
15:uip_arp.c **** *
16:uip_arp.c **** * Redistribution and use in source and binary forms, with or without
17:uip_arp.c **** * modification, are permitted provided that the following conditions
18:uip_arp.c **** * are met:
19:uip_arp.c **** * 1. Redistributions of source code must retain the above copyright
20:uip_arp.c **** * notice, this list of conditions and the following disclaimer.
21:uip_arp.c **** * 2. Redistributions in binary form must reproduce the above copyright
22:uip_arp.c **** * notice, this list of conditions and the following disclaimer in the
23:uip_arp.c **** * documentation and/or other materials provided with the distribution.
24:uip_arp.c **** * 3. All advertising materials mentioning features or use of this software
25:uip_arp.c **** * must display the following acknowledgement:
26:uip_arp.c **** * This product includes software developed by Adam Dunkels.
27:uip_arp.c **** * 4. The name of the author may not be used to endorse or promote
28:uip_arp.c **** * products derived from this software without specific prior
29:uip_arp.c **** * written permission.
30:uip_arp.c **** *
31:uip_arp.c **** * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
32:uip_arp.c **** * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
33:uip_arp.c **** * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
34:uip_arp.c **** * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
35:uip_arp.c **** * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36:uip_arp.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
37:uip_arp.c **** * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
38:uip_arp.c **** * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
39:uip_arp.c **** * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
40:uip_arp.c **** * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
41:uip_arp.c **** * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42:uip_arp.c **** *
43:uip_arp.c **** * This file is part of the uIP TCP/IP stack.
44:uip_arp.c **** *
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 3
45:uip_arp.c **** * $Id: uip_arp.c,v 1.2 2002/09/22 06:34:36 User Exp $
46:uip_arp.c **** *
47:uip_arp.c **** */
48:uip_arp.c ****
49:uip_arp.c ****
50:uip_arp.c **** #include "uip_arp.h"
51:uip_arp.c ****
52:uip_arp.c **** struct arp_hdr {
53:uip_arp.c **** struct uip_eth_hdr ethhdr;
54:uip_arp.c **** u16_t hwtype;
55:uip_arp.c **** u16_t protocol;
56:uip_arp.c **** u8_t hwlen;
57:uip_arp.c **** u8_t protolen;
58:uip_arp.c **** u16_t opcode;
59:uip_arp.c **** struct uip_eth_addr shwaddr;
60:uip_arp.c **** u16_t sipaddr[2];
61:uip_arp.c **** struct uip_eth_addr dhwaddr;
62:uip_arp.c **** u16_t dipaddr[2];
63:uip_arp.c **** };
64:uip_arp.c ****
65:uip_arp.c **** struct ethip_hdr {
66:uip_arp.c **** struct uip_eth_hdr ethhdr;
67:uip_arp.c **** /* IP header. */
68:uip_arp.c **** u8_t vhl,
69:uip_arp.c **** tos,
70:uip_arp.c **** len[2],
71:uip_arp.c **** ipid[2],
72:uip_arp.c **** ipoffset[2],
73:uip_arp.c **** ttl,
74:uip_arp.c **** proto;
75:uip_arp.c **** u16_t ipchksum;
76:uip_arp.c **** u16_t srcipaddr[2],
77:uip_arp.c **** destipaddr[2];
78:uip_arp.c **** };
79:uip_arp.c ****
80:uip_arp.c **** #define ARP_REQUEST 1
81:uip_arp.c **** #define ARP_REPLY 2
82:uip_arp.c ****
83:uip_arp.c **** #define ARP_HWTYPE_ETH 1
84:uip_arp.c ****
85:uip_arp.c **** struct arp_entry {
86:uip_arp.c **** u16_t ipaddr[2];
87:uip_arp.c **** struct uip_eth_addr ethaddr;
88:uip_arp.c **** u8_t time;
89:uip_arp.c **** };
90:uip_arp.c ****
91:uip_arp.c **** static const struct uip_eth_addr ethaddr = {{UIP_ETHADDR0,
92:uip_arp.c **** UIP_ETHADDR1,
93:uip_arp.c **** UIP_ETHADDR2,
94:uip_arp.c **** UIP_ETHADDR3,
95:uip_arp.c **** UIP_ETHADDR4,
96:uip_arp.c **** UIP_ETHADDR5}};
97:uip_arp.c ****
98:uip_arp.c **** static struct arp_entry arp_table[UIP_ARPTAB_SIZE];
99:uip_arp.c **** static u16_t ipaddr[2];
100:uip_arp.c **** static u8_t i, c;
101:uip_arp.c ****
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 4
102:uip_arp.c **** static u8_t time;
103:uip_arp.c **** static u8_t tmpage;
104:uip_arp.c ****
105:uip_arp.c **** #define BUF ((struct arp_hdr *)&uip_buf[0])
106:uip_arp.c **** #define IPBUF ((struct ethip_hdr *)&uip_buf[0])
107:uip_arp.c **** /*-----------------------------------------------------------------------------------*/
108:uip_arp.c **** void
109:uip_arp.c **** uip_arp_init(void)
110:uip_arp.c **** {
71 .stabn 68,0,110,.LM1-uip_arp_init
72 .LM1:
73 /* prologue: frame size=0 */
74 /* prologue end (size=0) */
111:uip_arp.c **** for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
75 .stabn 68,0,111,.LM2-uip_arp_init
76 .LM2:
77 0000 1092 0000 sts i,__zero_reg__
78 0004 80E0 ldi r24,lo8(0)
79 0006 E0E0 ldi r30,lo8(arp_table)
80 0008 F0E0 ldi r31,hi8(arp_table)
81 .L6:
112:uip_arp.c **** arp_table[i].ipaddr[0] =
82 .stabn 68,0,112,.LM3-uip_arp_init
83 .LM3:
84 000a 1282 std Z+2,__zero_reg__
85 000c 1382 std Z+3,__zero_reg__
86 000e 1082 st Z,__zero_reg__
87 0010 1182 std Z+1,__zero_reg__
88 .stabn 68,0,111,.LM4-uip_arp_init
89 .LM4:
90 0012 8F5F subi r24,lo8(-(1))
91 0014 3B96 adiw r30,11
92 0016 8823 tst r24
93 0018 C1F3 breq .L6
94 001a 81E0 ldi r24,lo8(1)
95 001c 8093 0000 sts i,r24
113:uip_arp.c **** arp_table[i].ipaddr[1] = 0;
114:uip_arp.c **** }
115:uip_arp.c **** }
96 .stabn 68,0,115,.LM5-uip_arp_init
97 .LM5:
98 /* epilogue: frame size=0 */
99 0020 0895 ret
100 /* epilogue end (size=1) */
101 /* function uip_arp_init size 17 (16) */
102 .size uip_arp_init, .-uip_arp_init
103 .Lscope0:
104 .stabs "",36,0,0,.Lscope0-uip_arp_init
105 .stabs "uip_arp_timer:F(0,20)",36,0,119,uip_arp_timer
106 .global uip_arp_timer
107 .type uip_arp_timer, @function
108 uip_arp_timer:
116:uip_arp.c **** /*-----------------------------------------------------------------------------------*/
117:uip_arp.c **** void
118:uip_arp.c **** uip_arp_timer(void)
119:uip_arp.c **** {
109 .stabn 68,0,119,.LM6-uip_arp_timer
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 5
110 .LM6:
111 /* prologue: frame size=0 */
112 /* prologue end (size=0) */
120:uip_arp.c **** ++time;
113 .stabn 68,0,120,.LM7-uip_arp_timer
114 .LM7:
115 0022 8091 0000 lds r24,time
116 0026 8F5F subi r24,lo8(-(1))
117 0028 8093 0000 sts time,r24
121:uip_arp.c **** for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
118 .stabn 68,0,121,.LM8-uip_arp_timer
119 .LM8:
120 002c 1092 0000 sts i,__zero_reg__
121 0030 20E0 ldi r18,lo8(0)
122 0032 582F mov r21,r24
123 .L16:
122:uip_arp.c **** if((arp_table[i].ipaddr[0] | arp_table[i].ipaddr[1]) != 0 &&
124 .stabn 68,0,122,.LM9-uip_arp_timer
125 .LM9:
126 0034 422F mov r20,r18
127 0036 3327 clr r19
128 0038 8BE0 ldi r24,lo8(11)
129 003a 90E0 ldi r25,hi8(11)
130 003c 289F mul r18,r24
131 003e F001 movw r30,r0
132 0040 299F mul r18,r25
133 0042 F00D add r31,r0
134 0044 389F mul r19,r24
135 0046 F00D add r31,r0
136 0048 1124 clr r1
137 004a E050 subi r30,lo8(-(arp_table))
138 004c F040 sbci r31,hi8(-(arp_table))
139 004e 8081 ld r24,Z
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -