main.lss
来自「ARP协议,含ARP」· LSS 代码 · 共 2,272 行 · 第 1/5 页
LSS
2,272 行
1da: f1 1d adc r31, r1
1dc: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
1de: 80 91 9b 00 lds r24, 0x009B
1e2: 85 ff sbrs r24, 5
1e4: fc cf rjmp .-8 ; 0x1de <put_str_hex+0x30>
UDR1 = c; /* 发送数据*/
1e6: e0 93 9c 00 sts 0x009C, r30
{//发送字符串函数,发送数组
while(0!=*p)
{
put_hex(*p);
p++;
1ea: 11 96 adiw r26, 0x01 ; 1
}
void put_str_hex(uc *p)
{//发送字符串函数,发送数组
while(0!=*p)
1ec: 9c 91 ld r25, X
1ee: 99 23 and r25, r25
1f0: 21 f7 brne .-56 ; 0x1ba <put_str_hex+0xc>
{
put_hex(*p);
p++;
}
}
1f2: 08 95 ret
000001f4 <put_hex_2>:
void put_hex_2 (us n) {
1f4: df 93 push r29
1f6: cf 93 push r28
1f8: 00 d0 rcall .+0 ; 0x1fa <put_hex_2+0x6>
1fa: cd b7 in r28, 0x3d ; 61
1fc: de b7 in r29, 0x3e ; 62
1fe: 9a 83 std Y+2, r25 ; 0x02
200: 89 83 std Y+1, r24 ; 0x01
uc *p;
p = (uc *)&n;
202: 9e 01 movw r18, r28
204: 2f 5f subi r18, 0xFF ; 255
206: 3f 4f sbci r19, 0xFF ; 255
put_hex (p[1]);
208: f9 01 movw r30, r18
20a: 91 81 ldd r25, Z+1 ; 0x01
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
20c: a0 91 11 01 lds r26, 0x0111
210: b0 91 12 01 lds r27, 0x0112
214: 89 2f mov r24, r25
216: 82 95 swap r24
218: 8f 70 andi r24, 0x0F ; 15
21a: fd 01 movw r30, r26
21c: e8 0f add r30, r24
21e: f1 1d adc r31, r1
220: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
222: 80 91 9b 00 lds r24, 0x009B
226: 85 ff sbrs r24, 5
228: fc cf rjmp .-8 ; 0x222 <put_hex_2+0x2e>
UDR1 = c; /* 发送数据*/
22a: e0 93 9c 00 sts 0x009C, r30
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
idx = (ch & 0x0f);
put_char (hex_char[idx]);
22e: 9f 70 andi r25, 0x0F ; 15
230: fd 01 movw r30, r26
232: e9 0f add r30, r25
234: f1 1d adc r31, r1
236: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
238: 80 91 9b 00 lds r24, 0x009B
23c: 85 ff sbrs r24, 5
23e: fc cf rjmp .-8 ; 0x238 <put_hex_2+0x44>
UDR1 = c; /* 发送数据*/
240: e0 93 9c 00 sts 0x009C, r30
uc *p;
p = (uc *)&n;
put_hex (p[1]);
put_hex (p[0]);
244: f9 01 movw r30, r18
246: 90 81 ld r25, Z
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
248: 89 2f mov r24, r25
24a: 82 95 swap r24
24c: 8f 70 andi r24, 0x0F ; 15
24e: fd 01 movw r30, r26
250: e8 0f add r30, r24
252: f1 1d adc r31, r1
254: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
256: 80 91 9b 00 lds r24, 0x009B
25a: 85 ff sbrs r24, 5
25c: fc cf rjmp .-8 ; 0x256 <put_hex_2+0x62>
UDR1 = c; /* 发送数据*/
25e: e0 93 9c 00 sts 0x009C, r30
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
idx = (ch & 0x0f);
put_char (hex_char[idx]);
262: 9f 70 andi r25, 0x0F ; 15
264: a9 0f add r26, r25
266: b1 1d adc r27, r1
268: 9c 91 ld r25, X
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
26a: 80 91 9b 00 lds r24, 0x009B
26e: 85 ff sbrs r24, 5
270: fc cf rjmp .-8 ; 0x26a <put_hex_2+0x76>
UDR1 = c; /* 发送数据*/
272: 90 93 9c 00 sts 0x009C, r25
p = (uc *)&n;
put_hex (p[1]);
put_hex (p[0]);
}
276: 0f 90 pop r0
278: 0f 90 pop r0
27a: cf 91 pop r28
27c: df 91 pop r29
27e: 08 95 ret
00000280 <put_hex_4>:
void put_hex_4 (ul n)
{
280: df 93 push r29
282: cf 93 push r28
284: 00 d0 rcall .+0 ; 0x286 <put_hex_4+0x6>
286: 00 d0 rcall .+0 ; 0x288 <put_hex_4+0x8>
288: cd b7 in r28, 0x3d ; 61
28a: de b7 in r29, 0x3e ; 62
28c: 69 83 std Y+1, r22 ; 0x01
28e: 7a 83 std Y+2, r23 ; 0x02
290: 8b 83 std Y+3, r24 ; 0x03
292: 9c 83 std Y+4, r25 ; 0x04
uc *p;
p = (uc *)&n;
294: 9e 01 movw r18, r28
296: 2f 5f subi r18, 0xFF ; 255
298: 3f 4f sbci r19, 0xFF ; 255
put_hex (p[3]);
29a: f9 01 movw r30, r18
29c: 93 81 ldd r25, Z+3 ; 0x03
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
29e: a0 91 11 01 lds r26, 0x0111
2a2: b0 91 12 01 lds r27, 0x0112
2a6: 89 2f mov r24, r25
2a8: 82 95 swap r24
2aa: 8f 70 andi r24, 0x0F ; 15
2ac: fd 01 movw r30, r26
2ae: e8 0f add r30, r24
2b0: f1 1d adc r31, r1
2b2: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
2b4: 80 91 9b 00 lds r24, 0x009B
2b8: 85 ff sbrs r24, 5
2ba: fc cf rjmp .-8 ; 0x2b4 <put_hex_4+0x34>
UDR1 = c; /* 发送数据*/
2bc: e0 93 9c 00 sts 0x009C, r30
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
idx = (ch & 0x0f);
put_char (hex_char[idx]);
2c0: 9f 70 andi r25, 0x0F ; 15
2c2: fd 01 movw r30, r26
2c4: e9 0f add r30, r25
2c6: f1 1d adc r31, r1
2c8: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
2ca: 80 91 9b 00 lds r24, 0x009B
2ce: 85 ff sbrs r24, 5
2d0: fc cf rjmp .-8 ; 0x2ca <put_hex_4+0x4a>
UDR1 = c; /* 发送数据*/
2d2: e0 93 9c 00 sts 0x009C, r30
uc *p;
p = (uc *)&n;
put_hex (p[3]);
put_hex (p[2]);
2d6: f9 01 movw r30, r18
2d8: 92 81 ldd r25, Z+2 ; 0x02
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
2da: 89 2f mov r24, r25
2dc: 82 95 swap r24
2de: 8f 70 andi r24, 0x0F ; 15
2e0: fd 01 movw r30, r26
2e2: e8 0f add r30, r24
2e4: f1 1d adc r31, r1
2e6: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
2e8: 80 91 9b 00 lds r24, 0x009B
2ec: 85 ff sbrs r24, 5
2ee: fc cf rjmp .-8 ; 0x2e8 <put_hex_4+0x68>
UDR1 = c; /* 发送数据*/
2f0: e0 93 9c 00 sts 0x009C, r30
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
idx = (ch & 0x0f);
put_char (hex_char[idx]);
2f4: 9f 70 andi r25, 0x0F ; 15
2f6: fd 01 movw r30, r26
2f8: e9 0f add r30, r25
2fa: f1 1d adc r31, r1
2fc: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
2fe: 80 91 9b 00 lds r24, 0x009B
302: 85 ff sbrs r24, 5
304: fc cf rjmp .-8 ; 0x2fe <put_hex_4+0x7e>
UDR1 = c; /* 发送数据*/
306: e0 93 9c 00 sts 0x009C, r30
p = (uc *)&n;
put_hex (p[3]);
put_hex (p[2]);
put_hex (p[1]);
30a: f9 01 movw r30, r18
30c: 91 81 ldd r25, Z+1 ; 0x01
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
30e: 89 2f mov r24, r25
310: 82 95 swap r24
312: 8f 70 andi r24, 0x0F ; 15
314: fd 01 movw r30, r26
316: e8 0f add r30, r24
318: f1 1d adc r31, r1
31a: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
31c: 80 91 9b 00 lds r24, 0x009B
320: 85 ff sbrs r24, 5
322: fc cf rjmp .-8 ; 0x31c <put_hex_4+0x9c>
UDR1 = c; /* 发送数据*/
324: e0 93 9c 00 sts 0x009C, r30
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
idx = (ch & 0x0f);
put_char (hex_char[idx]);
328: 9f 70 andi r25, 0x0F ; 15
32a: fd 01 movw r30, r26
32c: e9 0f add r30, r25
32e: f1 1d adc r31, r1
330: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
332: 80 91 9b 00 lds r24, 0x009B
336: 85 ff sbrs r24, 5
338: fc cf rjmp .-8 ; 0x332 <put_hex_4+0xb2>
UDR1 = c; /* 发送数据*/
33a: e0 93 9c 00 sts 0x009C, r30
p = (uc *)&n;
put_hex (p[3]);
put_hex (p[2]);
put_hex (p[1]);
put_hex (p[0]);
33e: f9 01 movw r30, r18
340: 90 81 ld r25, Z
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
342: 89 2f mov r24, r25
344: 82 95 swap r24
346: 8f 70 andi r24, 0x0F ; 15
348: fd 01 movw r30, r26
34a: e8 0f add r30, r24
34c: f1 1d adc r31, r1
34e: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
350: 80 91 9b 00 lds r24, 0x009B
354: 85 ff sbrs r24, 5
356: fc cf rjmp .-8 ; 0x350 <put_hex_4+0xd0>
UDR1 = c; /* 发送数据*/
358: e0 93 9c 00 sts 0x009C, r30
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
idx = (ch & 0x0f);
put_char (hex_char[idx]);
35c: 9f 70 andi r25, 0x0F ; 15
35e: a9 0f add r26, r25
360: b1 1d adc r27, r1
362: 9c 91 ld r25, X
extern volatile uc rx1_char;
void put_char(uc c)
{
while (!(UCSR1A & (1<<UDRE1))); /* 等待发送缓冲器为空*/
364: 80 91 9b 00 lds r24, 0x009B
368: 85 ff sbrs r24, 5
36a: fc cf rjmp .-8 ; 0x364 <put_hex_4+0xe4>
UDR1 = c; /* 发送数据*/
36c: 90 93 9c 00 sts 0x009C, r25
put_hex (p[3]);
put_hex (p[2]);
put_hex (p[1]);
put_hex (p[0]);
}
370: 0f 90 pop r0
372: 0f 90 pop r0
374: 0f 90 pop r0
376: 0f 90 pop r0
378: cf 91 pop r28
37a: df 91 pop r29
37c: 08 95 ret
0000037e <put_hex_6>:
void put_hex_6 (uc *p)
{
37e: dc 01 movw r26, r24
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
380: 40 91 11 01 lds r20, 0x0111
384: 50 91 12 01 lds r21, 0x0112
388: 20 e0 ldi r18, 0x00 ; 0
void put_hex_6 (uc *p)
{
uc i;
for(i=0;i<6;i++)
{
put_hex(*p);
38a: 9c 91 ld r25, X
void put_hex (uc ch) {
uc idx;
idx = (ch >> 4);
put_char (hex_char[idx]);
38c: 89 2f mov r24, r25
38e: 82 95 swap r24
390: 8f 70 andi r24, 0x0F ; 15
392: fa 01 movw r30, r20
394: e8 0f add r30, r24
396: f1 1d adc r31, r1
398: e0 81 ld r30, Z
extern volatile uc rx1_char;
void put_char(uc c)
{
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?