📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000034 00800100 0000042a 000004be 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 0000042a 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 0000000c 00800134 00800134 000004f2 2**0
ALLOC
3 .stab 00000378 00000000 00000000 000004f4 2**2
CONTENTS, READONLY, DEBUGGING
4 .stabstr 00000071 00000000 00000000 0000086c 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_aranges 00000020 00000000 00000000 000008dd 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 000000fb 00000000 00000000 000008fd 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 0000044d 00000000 00000000 000009f8 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 000001ad 00000000 00000000 00000e45 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 00000529 00000000 00000000 00000ff2 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_frame 000000e0 00000000 00000000 0000151c 2**2
CONTENTS, READONLY, DEBUGGING
11 .debug_str 00000178 00000000 00000000 000015fc 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_loc 000000ab 00000000 00000000 00001774 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 19 c0 rjmp .+50 ; 0x34 <__ctors_end>
2: 33 c0 rjmp .+102 ; 0x6a <__bad_interrupt>
4: 32 c0 rjmp .+100 ; 0x6a <__bad_interrupt>
6: 5d c1 rjmp .+698 ; 0x2c2 <__vector_3>
8: 09 c1 rjmp .+530 ; 0x21c <__vector_4>
a: 2f c0 rjmp .+94 ; 0x6a <__bad_interrupt>
c: 2e c0 rjmp .+92 ; 0x6a <__bad_interrupt>
e: 2d c0 rjmp .+90 ; 0x6a <__bad_interrupt>
10: 2c c0 rjmp .+88 ; 0x6a <__bad_interrupt>
12: 2b c0 rjmp .+86 ; 0x6a <__bad_interrupt>
14: 2a c0 rjmp .+84 ; 0x6a <__bad_interrupt>
16: 29 c0 rjmp .+82 ; 0x6a <__bad_interrupt>
18: 28 c0 rjmp .+80 ; 0x6a <__bad_interrupt>
1a: 27 c0 rjmp .+78 ; 0x6a <__bad_interrupt>
1c: 26 c0 rjmp .+76 ; 0x6a <__bad_interrupt>
1e: 25 c0 rjmp .+74 ; 0x6a <__bad_interrupt>
20: 24 c0 rjmp .+72 ; 0x6a <__bad_interrupt>
22: 23 c0 rjmp .+70 ; 0x6a <__bad_interrupt>
24: 22 c0 rjmp .+68 ; 0x6a <__bad_interrupt>
26: 21 c0 rjmp .+66 ; 0x6a <__bad_interrupt>
28: 20 c0 rjmp .+64 ; 0x6a <__bad_interrupt>
2a: 1f c0 rjmp .+62 ; 0x6a <__bad_interrupt>
2c: 1e c0 rjmp .+60 ; 0x6a <__bad_interrupt>
2e: 1d c0 rjmp .+58 ; 0x6a <__bad_interrupt>
30: 1c c0 rjmp .+56 ; 0x6a <__bad_interrupt>
32: 1b c0 rjmp .+54 ; 0x6a <__bad_interrupt>
00000034 <__ctors_end>:
34: 11 24 eor r1, r1
36: 1f be out 0x3f, r1 ; 63
38: cf ef ldi r28, 0xFF ; 255
3a: d2 e0 ldi r29, 0x02 ; 2
3c: de bf out 0x3e, r29 ; 62
3e: cd bf out 0x3d, r28 ; 61
00000040 <__do_copy_data>:
40: 11 e0 ldi r17, 0x01 ; 1
42: a0 e0 ldi r26, 0x00 ; 0
44: b1 e0 ldi r27, 0x01 ; 1
46: ea e2 ldi r30, 0x2A ; 42
48: f4 e0 ldi r31, 0x04 ; 4
4a: 02 c0 rjmp .+4 ; 0x50 <.do_copy_data_start>
0000004c <.do_copy_data_loop>:
4c: 05 90 lpm r0, Z+
4e: 0d 92 st X+, r0
00000050 <.do_copy_data_start>:
50: a4 33 cpi r26, 0x34 ; 52
52: b1 07 cpc r27, r17
54: d9 f7 brne .-10 ; 0x4c <.do_copy_data_loop>
00000056 <__do_clear_bss>:
56: 11 e0 ldi r17, 0x01 ; 1
58: a4 e3 ldi r26, 0x34 ; 52
5a: b1 e0 ldi r27, 0x01 ; 1
5c: 01 c0 rjmp .+2 ; 0x60 <.do_clear_bss_start>
0000005e <.do_clear_bss_loop>:
5e: 1d 92 st X+, r1
00000060 <.do_clear_bss_start>:
60: a0 34 cpi r26, 0x40 ; 64
62: b1 07 cpc r27, r17
64: e1 f7 brne .-8 ; 0x5e <.do_clear_bss_loop>
66: 7c d1 rcall .+760 ; 0x360 <main>
68: df c1 rjmp .+958 ; 0x428 <_exit>
0000006a <__bad_interrupt>:
6a: ca cf rjmp .-108 ; 0x0 <__vectors>
0000006c <num_do>:
uchar v;
uchar nb,ns,ng;
void num_do(uchar d)
{
6c: 28 2f mov r18, r24
nb=d/100;
6e: 64 e6 ldi r22, 0x64 ; 100
70: bb d1 rcall .+886 ; 0x3e8 <__udivmodqi4>
72: 80 93 3f 01 sts 0x013F, r24
ns=(d%100)/10;
76: 82 2f mov r24, r18
78: b7 d1 rcall .+878 ; 0x3e8 <__udivmodqi4>
7a: 29 2f mov r18, r25
7c: 89 2f mov r24, r25
7e: 6a e0 ldi r22, 0x0A ; 10
80: b3 d1 rcall .+870 ; 0x3e8 <__udivmodqi4>
82: 80 93 34 01 sts 0x0134, r24
ng=(d%100)%10;
86: 82 2f mov r24, r18
88: af d1 rcall .+862 ; 0x3e8 <__udivmodqi4>
8a: 90 93 35 01 sts 0x0135, r25
8e: 08 95 ret
00000090 <IO_INT>:
}
void IO_INT(void)
{
90: 8f ef ldi r24, 0xFF ; 255
92: 84 b9 out 0x04, r24 ; 4
DDRB=0xff;
PORTB=0xff;
94: 85 b9 out 0x05, r24 ; 5
DDRD=0xff;
96: 8a b9 out 0x0a, r24 ; 10
PORTD=0xff;
98: 8b b9 out 0x0b, r24 ; 11
PORTC |= (1 << PC1);
9a: 41 9a sbi 0x08, 1 ; 8
ADMUX = (1<<REFS0);
9c: 80 e4 ldi r24, 0x40 ; 64
9e: 80 93 7c 00 sts 0x007C, r24
ADCSRA = (1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1);
a2: 8e e8 ldi r24, 0x8E ; 142
a4: 80 93 7a 00 sts 0x007A, r24
a8: 08 95 ret
000000aa <busy_check>:
}
void busy_check(void)
{
aa: 8f ef ldi r24, 0xFF ; 255
ac: 8b b9 out 0x0b, r24 ; 11
uchar i;
PORTD=0Xff;
while(1)
{
RS_CLR;
ae: 2a 98 cbi 0x05, 2 ; 5
RW_SET;
b0: 29 9a sbi 0x05, 1 ; 5
EN_SET;
b2: 28 9a sbi 0x05, 0 ; 5
i=PIND;
b4: 89 b1 in r24, 0x09 ; 9
EN_CLR;
b6: 28 98 cbi 0x05, 0 ; 5
if((i&0X80)==0X00)
b8: 87 fd sbrc r24, 7
ba: 01 c0 rjmp .+2 ; 0xbe <busy_check+0x14>
asm("nop");
bc: 00 00 nop
asm("nop");
be: 00 00 nop
c0: 08 95 ret
000000c2 <wcom>:
break;
}
}
void wcom(uchar com)//并口写命令
{
c2: 1f 93 push r17
c4: 18 2f mov r17, r24
busy_check();
c6: f1 df rcall .-30 ; 0xaa <busy_check>
RS_CLR;
c8: 2a 98 cbi 0x05, 2 ; 5
RW_CLR;
ca: 29 98 cbi 0x05, 1 ; 5
EN_SET;
cc: 28 9a sbi 0x05, 0 ; 5
asm("nop");
ce: 00 00 nop
PORTD=com;
d0: 1b b9 out 0x0b, r17 ; 11
asm("nop");
d2: 00 00 nop
EN_CLR;
d4: 28 98 cbi 0x05, 0 ; 5
d6: 1f 91 pop r17
d8: 08 95 ret
000000da <wdata>:
}
void wdata(uchar dat)//并口写数据
{
da: 1f 93 push r17
dc: 18 2f mov r17, r24
busy_check();
de: e5 df rcall .-54 ; 0xaa <busy_check>
RS_SET;
e0: 2a 9a sbi 0x05, 2 ; 5
RW_CLR;
e2: 29 98 cbi 0x05, 1 ; 5
EN_SET;
e4: 28 9a sbi 0x05, 0 ; 5
asm("nop");
e6: 00 00 nop
PORTD=dat;
e8: 1b b9 out 0x0b, r17 ; 11
asm("nop");
ea: 00 00 nop
EN_CLR;
ec: 28 98 cbi 0x05, 0 ; 5
ee: 1f 91 pop r17
f0: 08 95 ret
000000f2 <initlcd>:
}
void initlcd(void)
{
f2: 80 e3 ldi r24, 0x30 ; 48
f4: e6 df rcall .-52 ; 0xc2 <wcom>
wcom(0x30);//基本指令
wcom(0x0c);//0000,1100 游标显示关
f6: 8c e0 ldi r24, 0x0C ; 12
f8: e4 df rcall .-56 ; 0xc2 <wcom>
wcom(0x02);//0000,0010 显示RAM 地址归位
fa: 82 e0 ldi r24, 0x02 ; 2
fc: e2 df rcall .-60 ; 0xc2 <wcom>
wcom(0x80);//1000,0000 设定显示RAM 地址到地址计数器
fe: 80 e8 ldi r24, 0x80 ; 128
100: e0 df rcall .-64 ; 0xc2 <wcom>
wcom(0x06);//右移位
102: 86 e0 ldi r24, 0x06 ; 6
104: de df rcall .-68 ; 0xc2 <wcom>
wcom(0x0c);//开显示
106: 8c e0 ldi r24, 0x0C ; 12
108: dc df rcall .-72 ; 0xc2 <wcom>
10a: 08 95 ret
0000010c <clear>:
}
void clear(void)
{
10c: 80 e3 ldi r24, 0x30 ; 48
10e: d9 df rcall .-78 ; 0xc2 <wcom>
wcom(0x30);
wcom(0x01);//clear
110: 81 e0 ldi r24, 0x01 ; 1
112: d7 df rcall .-82 ; 0xc2 <wcom>
114: 08 95 ret
00000116 <display>:
}
void display(void)
{
116: 80 e8 ldi r24, 0x80 ; 128
118: d4 df rcall .-88 ; 0xc2 <wcom>
11a: 0a c0 rjmp .+20 ; 0x130 <display+0x1a>
wcom(0x80);
while( *line1!=0x00 )
{
wdata(*line1);
11c: de df rcall .-68 ; 0xda <wdata>
line1++;
11e: 80 91 39 01 lds r24, 0x0139
122: 90 91 3a 01 lds r25, 0x013A
126: 01 96 adiw r24, 0x01 ; 1
128: 90 93 3a 01 sts 0x013A, r25
12c: 80 93 39 01 sts 0x0139, r24
130: e0 91 39 01 lds r30, 0x0139
134: f0 91 3a 01 lds r31, 0x013A
138: 80 81 ld r24, Z
13a: 88 23 and r24, r24
13c: 79 f7 brne .-34 ; 0x11c <display+0x6>
}
wcom(0x90);
13e: 80 e9 ldi r24, 0x90 ; 144
140: c0 df rcall .-128 ; 0xc2 <wcom>
142: 0a c0 rjmp .+20 ; 0x158 <display+0x42>
while( *line2!=0x00 )
{
wdata(*line2);
144: ca df rcall .-108 ; 0xda <wdata>
line2++;
146: 80 91 3d 01 lds r24, 0x013D
14a: 90 91 3e 01 lds r25, 0x013E
14e: 01 96 adiw r24, 0x01 ; 1
150: 90 93 3e 01 sts 0x013E, r25
154: 80 93 3d 01 sts 0x013D, r24
158: e0 91 3d 01 lds r30, 0x013D
15c: f0 91 3e 01 lds r31, 0x013E
160: 80 81 ld r24, Z
162: 88 23 and r24, r24
164: 79 f7 brne .-34 ; 0x144 <display+0x2e>
}
wcom(0x88);
166: 88 e8 ldi r24, 0x88 ; 136
168: ac df rcall .-168 ; 0xc2 <wcom>
16a: 0a c0 rjmp .+20 ; 0x180 <display+0x6a>
while( *line3!=0x00 )
{
wdata(*line3);
16c: b6 df rcall .-148 ; 0xda <wdata>
line3++;
16e: 80 91 3b 01 lds r24, 0x013B
172: 90 91 3c 01 lds r25, 0x013C
176: 01 96 adiw r24, 0x01 ; 1
178: 90 93 3c 01 sts 0x013C, r25
17c: 80 93 3b 01 sts 0x013B, r24
180: e0 91 3b 01 lds r30, 0x013B
184: f0 91 3c 01 lds r31, 0x013C
188: 80 81 ld r24, Z
18a: 88 23 and r24, r24
18c: 79 f7 brne .-34 ; 0x16c <display+0x56>
}
wcom(0x98);
18e: 88 e9 ldi r24, 0x98 ; 152
190: 98 df rcall .-208 ; 0xc2 <wcom>
192: 0a c0 rjmp .+20 ; 0x1a8 <display+0x92>
while( *line4!=0x00 )
{
wdata(*line4);
194: a2 df rcall .-188 ; 0xda <wdata>
line4++;
196: 80 91 36 01 lds r24, 0x0136
19a: 90 91 37 01 lds r25, 0x0137
19e: 01 96 adiw r24, 0x01 ; 1
1a0: 90 93 37 01 sts 0x0137, r25
1a4: 80 93 36 01 sts 0x0136, r24
1a8: e0 91 36 01 lds r30, 0x0136
1ac: f0 91 37 01 lds r31, 0x0137
1b0: 80 81 ld r24, Z
1b2: 88 23 and r24, r24
1b4: 79 f7 brne .-34 ; 0x194 <display+0x7e>
1b6: 08 95 ret
000001b8 <system_init>:
}
//line1 = "";
// line2 = "";
// line3 = "";
// line4 = "";
}
void system_init(void)
{
1b8: 80 e0 ldi r24, 0x00 ; 0
1ba: 91 e0 ldi r25, 0x01 ; 1
1bc: 90 93 3a 01 sts 0x013A, r25
1c0: 80 93 39 01 sts 0x0139, r24
line1 = "";
line2 = "";
1c4: 90 93 3e 01 sts 0x013E, r25
1c8: 80 93 3d 01 sts 0x013D, r24
line3 = "";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -