?? main.lss
字號:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00001404 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000022 00800060 00001404 00001498 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000088 00800082 00800082 000014ba 2**0
ALLOC
3 .noinit 00000000 0080010a 0080010a 000014ba 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000014ba 2**0
CONTENTS
5 .stab 00002628 00000000 00000000 000014bc 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000d77 00000000 00000000 00003ae4 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 <__ctors_end>
4: 0c 94 4e 02 jmp 0x49c <__vector_1>
8: 0c 94 72 02 jmp 0x4e4 <__vector_2>
c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
10: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
14: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
18: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
1c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
20: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
24: 0c 94 c3 01 jmp 0x386 <__vector_9>
28: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
2c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
30: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
34: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
38: 0c 94 9e 01 jmp 0x33c <__vector_14>
3c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
40: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
44: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
48: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
4c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
50: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
00000054 <__ctors_end>:
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf e5 ldi r28, 0x5F ; 95
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61
00000060 <__do_copy_data>:
60: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: e4 e0 ldi r30, 0x04 ; 4
68: f4 e1 ldi r31, 0x14 ; 20
6a: 02 c0 rjmp .+4 ; 0x70 <.do_copy_data_start>
0000006c <.do_copy_data_loop>:
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
00000070 <.do_copy_data_start>:
70: a2 38 cpi r26, 0x82 ; 130
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 11 e0 ldi r17, 0x01 ; 1
78: a2 e8 ldi r26, 0x82 ; 130
7a: b0 e0 ldi r27, 0x00 ; 0
7c: 01 c0 rjmp .+2 ; 0x80 <.do_clear_bss_start>
0000007e <.do_clear_bss_loop>:
7e: 1d 92 st X+, r1
00000080 <.do_clear_bss_start>:
80: aa 30 cpi r26, 0x0A ; 10
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 38 07 jmp 0xe70 <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0 <__vectors>
0000008e <ascii_s>:
char xy_ch[2][8];//顯示緩存
uch ascii_s(uch x){
if(x<10)return x+0x30;
8e: 8a 30 cpi r24, 0x0A ; 10
90: 18 f4 brcc .+6 ; 0x98 <ascii_s+0xa>
92: 80 5d subi r24, 0xD0 ; 208
94: 99 27 eor r25, r25
96: 08 95 ret
else return (x-9)+0x40;
98: 89 5c subi r24, 0xC9 ; 201
9a: 99 27 eor r25, r25
}
9c: 08 95 ret
0000009e <dlay>:
...
void dlay(){ //短延時
NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();
da: 00 00 nop
dc: 08 95 ret
000000de <dlay2>:
}
void dlay2(uch x){ //短延時
for(;x!=0;x--){NOP();NOP();NOP();NOP();NOP();}
de: 88 23 and r24, r24
e0: 39 f0 breq .+14 ; 0xf0 <dlay2+0x12>
...
ea: 00 00 nop
ec: 81 50 subi r24, 0x01 ; 1
ee: f7 cf rjmp .-18 ; 0xde <dlay2>
f0: 08 95 ret
000000f2 <w_by>:
}
void w_by(uch x){//寫數(shù)據(jù)
s_b(cont,RS);
f2: c0 9a sbi 0x18, 0 ; 24
c_b(cont,RW);
f4: c2 98 cbi 0x18, 2 ; 24
...
NOP();
NOP();
NOP();
NOP();
s_b(cont,ES);NOP();NOP();
fe: c1 9a sbi 0x18, 1 ; 24
100: 00 00 nop
102: 00 00 nop
DATA_o=x;NOP();NOP();NOP();
104: 85 bb out 0x15, r24 ; 21
106: 00 00 nop
108: 00 00 nop
10a: 00 00 nop
c_b(cont,ES);
10c: c1 98 cbi 0x18, 1 ; 24
dlay();
10e: 0e 94 4f 00 call 0x9e <dlay>
112: 08 95 ret
00000114 <w_com>:
}
void w_com(uch x){//寫指令
c_b(cont,RS);
114: c0 98 cbi 0x18, 0 ; 24
c_b(cont,RW);
116: c2 98 cbi 0x18, 2 ; 24
...
NOP();
NOP();
NOP();
NOP();
s_b(cont,ES);NOP();NOP();
120: c1 9a sbi 0x18, 1 ; 24
122: 00 00 nop
124: 00 00 nop
DATA_o=x;NOP();NOP();NOP();
126: 85 bb out 0x15, r24 ; 21
128: 00 00 nop
12a: 00 00 nop
12c: 00 00 nop
c_b(cont,ES);
12e: c1 98 cbi 0x18, 1 ; 24
dlay();
130: 0e 94 4f 00 call 0x9e <dlay>
134: 08 95 ret
00000136 <xini>:
}
void xini(uch x){
if(x>7)x+=0x38;
136: 88 30 cpi r24, 0x08 ; 8
138: 08 f0 brcs .+2 ; 0x13c <xini+0x6>
13a: 88 5c subi r24, 0xC8 ; 200
w_com(x|0x80);}
13c: 80 68 ori r24, 0x80 ; 128
13e: 0e 94 8a 00 call 0x114 <w_com>
142: 08 95 ret
00000144 <lcdini>:
void lcdini(void){
144: cf 93 push r28
uch x;
for(x=250;x!=0;x--)dlay2(250);
146: ca ef ldi r28, 0xFA ; 250
148: 8a ef ldi r24, 0xFA ; 250
14a: 0e 94 6f 00 call 0xde <dlay2>
14e: c1 50 subi r28, 0x01 ; 1
150: d9 f7 brne .-10 ; 0x148 <lcdini+0x4>
w_com(0x1);//清顯示
152: 81 e0 ldi r24, 0x01 ; 1
154: 0e 94 8a 00 call 0x114 <w_com>
for(x=10;x!=0;x--)dlay2(250);
158: ca e0 ldi r28, 0x0A ; 10
15a: 8a ef ldi r24, 0xFA ; 250
15c: 0e 94 6f 00 call 0xde <dlay2>
160: c1 50 subi r28, 0x01 ; 1
162: d9 f7 brne .-10 ; 0x15a <lcdini+0x16>
w_com(0x38);//顯示設(shè)置
164: 88 e3 ldi r24, 0x38 ; 56
166: 0e 94 8a 00 call 0x114 <w_com>
dlay2(80);
16a: 80 e5 ldi r24, 0x50 ; 80
16c: 0e 94 6f 00 call 0xde <dlay2>
w_com(0x6);//顯示設(shè)置
170: 86 e0 ldi r24, 0x06 ; 6
172: 0e 94 8a 00 call 0x114 <w_com>
dlay2(80);
176: 80 e5 ldi r24, 0x50 ; 80
178: 0e 94 6f 00 call 0xde <dlay2>
w_com(0xc);//清顯示
17c: 8c e0 ldi r24, 0x0C ; 12
17e: 0e 94 8a 00 call 0x114 <w_com>
dlay2(80);
182: 80 e5 ldi r24, 0x50 ; 80
184: 0e 94 6f 00 call 0xde <dlay2>
for(x=200;x!=0;x--)dlay2(250);
188: c8 ec ldi r28, 0xC8 ; 200
18a: 8a ef ldi r24, 0xFA ; 250
18c: 0e 94 6f 00 call 0xde <dlay2>
190: c1 50 subi r28, 0x01 ; 1
192: d9 f7 brne .-10 ; 0x18a <lcdini+0x46>
//w_com(0xc0);//清顯示
w_com(0x40);
194: 80 e4 ldi r24, 0x40 ; 64
196: 0e 94 8a 00 call 0x114 <w_com>
/*
dlay2(80);
w_by(0x40);
dlay2(80);
w_by(0xff);
dlay2(80);
w_by(0);
dlay2(80);
w_by(0xff);
dlay2(80);
w_by(0);
dlay2(80);
w_by(0xff);
dlay2(80);
w_by(0);
dlay2(80);
w_by(0xff);
*/
for(x=200;x!=0;x--)dlay2(250);
19a: c8 ec ldi r28, 0xC8 ; 200
19c: 8a ef ldi r24, 0xFA ; 250
19e: 0e 94 6f 00 call 0xde <dlay2>
1a2: c1 50 subi r28, 0x01 ; 1
1a4: d9 f7 brne .-10 ; 0x19c <lcdini+0x58>
1a6: cf 91 pop r28
1a8: 08 95 ret
000001aa <dis_chs>:
}
void dis_chs(char *ch,uch a)
{
1aa: dc 01 movw r26, r24
1ac: e6 2f mov r30, r22
1ae: ff 27 eor r31, r31
1b0: 83 e0 ldi r24, 0x03 ; 3
1b2: ee 0f add r30, r30
1b4: ff 1f adc r31, r31
1b6: 8a 95 dec r24
1b8: e1 f7 brne .-8 ; 0x1b2 <dis_chs+0x8>
1ba: e2 51 subi r30, 0x12 ; 18
1bc: ff 4f sbci r31, 0xFF ; 255
1be: 97 e0 ldi r25, 0x07 ; 7
uch i;
for(i=0;i<8;i++){
xy_ch[a][i]=*ch;
1c0: 8d 91 ld r24, X+
1c2: 81 93 st Z+, r24
1c4: 91 50 subi r25, 0x01 ; 1
1c6: 97 ff sbrs r25, 7
1c8: fb cf rjmp .-10 ; 0x1c0 <dis_chs+0x16>
1ca: 08 95 ret
000001cc <adc_maxmin>:
uint po_kl;
//----------------------
uch xiao;
uint adc_maxmin(uint *xp,uch _tep){
1cc: 1f 93 push r17
1ce: cf 93 push r28
1d0: df 93 push r29
1d2: ec 01 movw r28, r24
unsigned char i;
int ret;
int ret_tep;
unsigned char max_id,min_id,max_value,min_value;
ret=0;
1d4: 60 e0 ldi r22, 0x00 ; 0
1d6: 70 e0 ldi r23, 0x00 ; 0
1d8: 48 e0 ldi r20, 0x08 ; 8
1da: fc 01 movw r30, r24
1dc: 32 96 adiw r30, 0x02 ; 2
for(i=1;i<10;i++)
ret+=*(xp+i);
1de: 81 91 ld r24, Z+
1e0: 91 91 ld r25, Z+
1e2: 68 0f add r22, r24
1e4: 79 1f adc r23, r25
1e6: 41 50 subi r20, 0x01 ; 1
1e8: 47 ff sbrs r20, 7
1ea: f9 cf rjmp .-14 ; 0x1de <adc_maxmin+0x12>
//找到最大和最小值索引
ret/=10;
1ec: cb 01 movw r24, r22
1ee: 6a e0 ldi r22, 0x0A ; 10
1f0: 70 e0 ldi r23, 0x00 ; 0
1f2: 0e 94 94 09 call 0x1328 <__divmodhi4>
max_id=min_id=1;
1f6: b1 e0 ldi r27, 0x01 ; 1
1f8: 1b 2f mov r17, r27
max_value=min_value=0;
1fa: a0 e0 ldi r26, 0x00 ; 0
1fc: 5a 2f mov r21, r26
for(i=1;i<10;i++)
1fe: 4b 2f mov r20, r27
200: fe 01 movw r30, r28
202: 32 96 adiw r30, 0x02 ; 2
{
if(*(xp+i)>ret)
204: 20 81 ld r18, Z
206: 31 81 ldd r19, Z+1 ; 0x01
208: 62 17 cp r22, r18
20a: 73 07 cpc r23, r19
20c: 58 f4 brcc .+22 ; 0x224 <adc_maxmin+0x58>
{
if(*(xp+i)-ret>max_value)
20e: 26 1b sub r18, r22
210: 37 0b sbc r19, r23
212: 85 2f mov r24, r21
214: 99 27 eor r25, r25
216: 82 17 cp r24, r18
218: 93 07 cpc r25, r19
21a: 88 f4 brcc .+34 ; 0x23e <adc_maxmin+0x72>
{
max_value=*(xp+i)-ret;
21c: 50 81 ld r21, Z
21e: 56 1b sub r21, r22
max_id=i;
220: 14 2f mov r17, r20
222: 0d c0 rjmp .+26 ; 0x23e <adc_maxmin+0x72>
}
}
else
{
if(ret-*(xp+i)>min_value)
224: cb 01 movw r24, r22
226: 82 1b sub r24, r18
228: 93 0b sbc r25, r19
22a: 9c 01 movw r18, r24
22c: 8a 2f mov r24, r26
22e: 99 27 eor r25, r25
230: 82 17 cp r24, r18
232: 93 07 cpc r25, r19
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -