📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000562 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 000003c4 00800060 00000562 000005d6 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .stab 00001194 00000000 00000000 0000099c 2**2
CONTENTS, READONLY, DEBUGGING
3 .stabstr 00000bb1 00000000 00000000 00001b30 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 ; 0x54 <__ctors_end>
4: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
8: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
c: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
10: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
14: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
18: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
1c: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
20: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
24: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
28: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
2c: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
30: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
34: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
38: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
3c: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
40: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
44: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
48: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
4c: 0c 94 45 00 jmp 0x8a ; 0x8a <__bad_interrupt>
50: 0c 94 45 00 jmp 0x8a ; 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: 14 e0 ldi r17, 0x04 ; 4
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: e2 e6 ldi r30, 0x62 ; 98
68: f5 e0 ldi r31, 0x05 ; 5
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: a4 32 cpi r26, 0x24 ; 36
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 14 e0 ldi r17, 0x04 ; 4
78: a4 e2 ldi r26, 0x24 ; 36
7a: b4 e0 ldi r27, 0x04 ; 4
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: a4 32 cpi r26, 0x24 ; 36
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 6d 02 jmp 0x4da ; 0x4da <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
0000008e <DelayMs>:
#define FEQ 8 //系统时钟8MHz
void DelayMs(unsigned int t)
{
8e: ac 01 movw r20, r24
90: 20 e0 ldi r18, 0x00 ; 0
92: 30 e0 ldi r19, 0x00 ; 0
94: e0 ed ldi r30, 0xD0 ; 208
96: f7 e0 ldi r31, 0x07 ; 7
98: 05 c0 rjmp .+10 ; 0xa4 <DelayMs+0x16>
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
9a: cf 01 movw r24, r30
9c: 01 97 sbiw r24, 0x01 ; 1
9e: f1 f7 brne .-4 ; 0x9c <DelayMs+0xe>
void DelayMs(unsigned int t)
{
unsigned int i;
for(i=0;i<t;i++)
a0: 2f 5f subi r18, 0xFF ; 255
a2: 3f 4f sbci r19, 0xFF ; 255
a4: 24 17 cp r18, r20
a6: 35 07 cpc r19, r21
a8: c1 f7 brne .-16 ; 0x9a <DelayMs+0xc>
aa: 08 95 ret
000000ac <delay_1us>:
_delay_loop_2(FEQ * 250 );
}
/*-----------------------------------------------------------------------
软延时延时函数
系统时钟:8M
-----------------------------------------------------------------------*/
void delay_1us(void) //1us延时函数
{
asm("nop");
ac: 00 00 nop
ae: 08 95 ret
000000b0 <delay_nus>:
// _delay_loop_2(250);//4
}
void delay_nus(unsigned int n) //N us延时函数
{
b0: 20 e0 ldi r18, 0x00 ; 0
b2: 30 e0 ldi r19, 0x00 ; 0
b4: 03 c0 rjmp .+6 ; 0xbc <delay_nus+0xc>
b6: 00 00 nop
unsigned int i=0;
for (i=0;i<n;i++)
b8: 2f 5f subi r18, 0xFF ; 255
ba: 3f 4f sbci r19, 0xFF ; 255
bc: 28 17 cp r18, r24
be: 39 07 cpc r19, r25
c0: d1 f7 brne .-12 ; 0xb6 <delay_nus+0x6>
c2: 08 95 ret
000000c4 <delay_1ms>:
delay_1us();
}
void delay_1ms(void) //1ms延时函数
{
c4: 08 95 ret
000000c6 <delay_nms>:
unsigned int i;
for (i=0;i<1140;i++);
}
void delay_nms(unsigned int n) //N ms延时函数
{
c6: 08 95 ret
000000c8 <delay_s>:
unsigned int i=0;
for (i=0;i<n;i++)
delay_1ms();
}
void delay_s(unsigned int n)
{
c8: 0f 93 push r16
ca: 1f 93 push r17
cc: cf 93 push r28
ce: df 93 push r29
d0: 8c 01 movw r16, r24
d2: c0 e0 ldi r28, 0x00 ; 0
d4: d0 e0 ldi r29, 0x00 ; 0
d6: 05 c0 rjmp .+10 ; 0xe2 <delay_s+0x1a>
unsigned int i=0;
for(i=0;i<n;i++)
delay_nms(1000);
d8: 88 ee ldi r24, 0xE8 ; 232
da: 93 e0 ldi r25, 0x03 ; 3
dc: 0e 94 63 00 call 0xc6 ; 0xc6 <delay_nms>
e0: 21 96 adiw r28, 0x01 ; 1
e2: c0 17 cp r28, r16
e4: d1 07 cpc r29, r17
e6: c1 f7 brne .-16 ; 0xd8 <delay_s+0x10>
e8: df 91 pop r29
ea: cf 91 pop r28
ec: 1f 91 pop r17
ee: 0f 91 pop r16
f0: 08 95 ret
000000f2 <delay>:
}
void delay(unsigned int n) //N ms延时函数
{
delay_nms(n);
f2: 0e 94 63 00 call 0xc6 ; 0xc6 <delay_nms>
f6: 08 95 ret
000000f8 <LCD_write_byte>:
最后修改日期 :2004-8-13
-----------------------------------------------------------------------*/
void LCD_write_byte(unsigned char data, unsigned char command)
{
PORTB &= ~LCD_CE ; // 使能LCD
f8: c4 98 cbi 0x18, 4 ; 24
if (command == 0)
fa: 66 23 and r22, r22
fc: 11 f4 brne .+4 ; 0x102 <LCD_write_byte+0xa>
PORTB &= ~LCD_DC ; // 传送命令
fe: c6 98 cbi 0x18, 6 ; 24
100: 01 c0 rjmp .+2 ; 0x104 <LCD_write_byte+0xc>
else
PORTB |= LCD_DC ; // 传送数据
102: c6 9a sbi 0x18, 6 ; 24
SPDR = data; // 传送数据到SPI寄存器
104: 8f b9 out 0x0f, r24 ; 15
while ((SPSR & 0x80) == 0); // 等待数据传送完毕
106: 77 9b sbis 0x0e, 7 ; 14
108: fe cf rjmp .-4 ; 0x106 <LCD_write_byte+0xe>
PORTB |= LCD_CE ; // 关闭LCD
10a: c4 9a sbi 0x18, 4 ; 24
10c: 08 95 ret
0000010e <LCD_write_char>:
10e: 1f 93 push r17
110: cf 93 push r28
112: df 93 push r29
114: 80 52 subi r24, 0x20 ; 32
116: 96 e0 ldi r25, 0x06 ; 6
118: 89 9f mul r24, r25
11a: e0 01 movw r28, r0
11c: 11 24 eor r1, r1
11e: cd 59 subi r28, 0x9D ; 157
120: df 4f sbci r29, 0xFF ; 255
122: 10 e0 ldi r17, 0x00 ; 0
124: 61 e0 ldi r22, 0x01 ; 1
126: 89 91 ld r24, Y+
128: 0e 94 7c 00 call 0xf8 ; 0xf8 <LCD_write_byte>
12c: 1f 5f subi r17, 0xFF ; 255
12e: 16 30 cpi r17, 0x06 ; 6
130: c9 f7 brne .-14 ; 0x124 <LCD_write_char+0x16>
132: df 91 pop r29
134: cf 91 pop r28
136: 1f 91 pop r17
138: 08 95 ret
0000013a <LCD_set_XY>:
13a: 1f 93 push r17
13c: 18 2f mov r17, r24
13e: 86 2f mov r24, r22
140: 60 e0 ldi r22, 0x00 ; 0
142: 80 64 ori r24, 0x40 ; 64
144: 0e 94 7c 00 call 0xf8 ; 0xf8 <LCD_write_byte>
148: 60 e0 ldi r22, 0x00 ; 0
14a: 81 2f mov r24, r17
14c: 80 68 ori r24, 0x80 ; 128
14e: 0e 94 7c 00 call 0xf8 ; 0xf8 <LCD_write_byte>
152: 1f 91 pop r17
154: 08 95 ret
00000156 <LCD_draw_bmp_pixel>:
156: 8f 92 push r8
158: 9f 92 push r9
15a: af 92 push r10
15c: bf 92 push r11
15e: cf 92 push r12
160: df 92 push r13
162: ef 92 push r14
164: ff 92 push r15
166: 0f 93 push r16
168: 1f 93 push r17
16a: cf 93 push r28
16c: df 93 push r29
16e: 88 2e mov r8, r24
170: b6 2e mov r11, r22
172: 80 2f mov r24, r16
174: 99 27 eor r25, r25
176: 87 70 andi r24, 0x07 ; 7
178: 90 70 andi r25, 0x00 ; 0
17a: 06 95 lsr r16
17c: 06 95 lsr r16
17e: 06 95 lsr r16
180: 89 2b or r24, r25
182: 11 f4 brne .+4 ; 0x188 <LCD_draw_bmp_pixel+0x32>
184: 90 2e mov r9, r16
186: 02 c0 rjmp .+4 ; 0x18c <LCD_draw_bmp_pixel+0x36>
188: 90 2e mov r9, r16
18a: 93 94 inc r9
18c: c2 2e mov r12, r18
18e: dd 24 eor r13, r13
190: 8a 01 movw r16, r20
192: aa 24 eor r10, r10
194: 16 c0 rjmp .+44 ; 0x1c2 <LCD_draw_bmp_pixel+0x6c>
196: 6b 2d mov r22, r11
198: 88 2d mov r24, r8
19a: 0e 94 9d 00 call 0x13a ; 0x13a <LCD_set_XY>
19e: 78 01 movw r14, r16
1a0: c0 e0 ldi r28, 0x00 ; 0
1a2: d0 e0 ldi r29, 0x00 ; 0
1a4: 07 c0 rjmp .+14 ; 0x1b4 <LCD_draw_bmp_pixel+0x5e>
1a6: 61 e0 ldi r22, 0x01 ; 1
1a8: f7 01 movw r30, r14
1aa: 81 91 ld r24, Z+
1ac: 7f 01 movw r14, r30
1ae: 0e 94 7c 00 call 0xf8 ; 0xf8 <LCD_write_byte>
1b2: 21 96 adiw r28, 0x01 ; 1
1b4: cc 15 cp r28, r12
1b6: dd 05 cpc r29, r13
1b8: b1 f7 brne .-20 ; 0x1a6 <LCD_draw_bmp_pixel+0x50>
1ba: b3 94 inc r11
1bc: a3 94 inc r10
1be: 0c 0d add r16, r12
1c0: 1d 1d adc r17, r13
1c2: a9 14 cp r10, r9
1c4: 41 f7 brne .-48 ; 0x196 <LCD_draw_bmp_pixel+0x40>
1c6: df 91 pop r29
1c8: cf 91 pop r28
1ca: 1f 91 pop r17
1cc: 0f 91 pop r16
1ce: ff 90 pop r15
1d0: ef 90 pop r14
1d2: df 90 pop r13
1d4: cf 90 pop r12
1d6: bf 90 pop r11
1d8: af 90 pop r10
1da: 9f 90 pop r9
1dc: 8f 90 pop r8
1de: 08 95 ret
000001e0 <LCD_move_chinese_string>:
1e0: 9f 92 push r9
1e2: af 92 push r10
1e4: bf 92 push r11
1e6: cf 92 push r12
1e8: df 92 push r13
1ea: ef 92 push r14
1ec: ff 92 push r15
1ee: 0f 93 push r16
1f0: 1f 93 push r17
1f2: cf 93 push r28
1f4: df 93 push r29
1f6: cd b7 in r28, 0x3d ; 61
1f8: de b7 in r29, 0x3e ; 62
1fa: c8 5a subi r28, 0xA8 ; 168
1fc: d0 40 sbci r29, 0x00 ; 0
1fe: 0f b6 in r0, 0x3f ; 63
200: f8 94 cli
202: de bf out 0x3e, r29 ; 62
204: 0f be out 0x3f, r0 ; 63
206: cd bf out 0x3d, r28 ; 61
208: 98 2e mov r9, r24
20a: c6 2e mov r12, r22
20c: 5a 01 movw r10, r20
20e: 84 e5 ldi r24, 0x54 ; 84
210: fe 01 movw r30, r28
212: eb 5a subi r30, 0xAB ; 171
214: ff 4f sbci r31, 0xFF ; 255
216: 28 2f mov r18, r24
218: 11 92 st Z+, r1
21a: 2a 95 dec r18
21c: e9 f7 brne .-6 ; 0x218 <LCD_move_chinese_string+0x38>
21e: fe 01 movw r30, r28
220: 31 96 adiw r30, 0x01 ; 1
222: 11 92 st Z+, r1
224: 8a 95 dec r24
226: e9 f7 brne .-6 ; 0x222 <LCD_move_chinese_string+0x42>
228: dd 24 eor r13, r13
22a: ee 24 eor r14, r14
22c: ff 24 eor r15, r15
22e: 8e 2d mov r24, r14
230: 6c e0 ldi r22, 0x0C ; 12
232: 0e 94 a5 02 call 0x54a ; 0x54a <__udivmodqi4>
236: 99 27 eor r25, r25
238: 28 e1 ldi r18, 0x18 ; 24
23a: 30 e0 ldi r19, 0x00 ; 0
23c: 82 9f mul r24, r18
23e: f0 01 movw r30, r0
240: 83 9f mul r24, r19
242: f0 0d add r31, r0
244: 92 9f mul r25, r18
246: f0 0d add r31, r0
248: 11 24 eor r1, r1
24a: e5 51 subi r30, 0x15 ; 21
24c: fd 4f sbci r31, 0xFD ; 253
24e: ed 0d add r30, r13
250: f1 1d adc r31, r1
252: 80 81 ld r24, Z
254: 94 85 ldd r25, Z+12 ; 0x0c
256: d3 94 inc r13
258: d6 16 cp r13, r22
25a: 09 f4 brne .+2 ; 0x25e <LCD_move_chinese_string+0x7e>
25c: dd 24 eor r13, r13
25e: fe 01 movw r30, r28
260: e8 55 subi r30, 0x58 ; 88
262: ff 4f sbci r31, 0xFF ; 255
264: 80 83 st Z, r24
266: fe 01 movw r30, r28
268: ec 5a subi r30, 0xAC ; 172
26a: ff 4f sbci r31, 0xFF ; 255
26c: 90 83 st Z, r25
26e: 80 e0 ldi r24, 0x00 ; 0
270: 90 e0 ldi r25, 0x00 ; 0
272: 8e 01 movw r16, r28
274: 0b 5a subi r16, 0xAB ; 171
276: 1f 4f sbci r17, 0xFF ; 255
278: de 01 movw r26, r28
27a: 11 96 adiw r26, 0x01 ; 1
27c: a8 01 movw r20, r16
27e: 01 96 adiw r24, 0x01 ; 1
280: fa 01 movw r30, r20
282: 21 81 ldd r18, Z+1 ; 0x01
284: 21 93 st Z+, r18
286: af 01 movw r20, r30
288: fd 01 movw r30, r26
28a: 21 81 ldd r18, Z+1 ; 0x01
28c: 2d 93 st X+, r18
28e: 83 35 cpi r24, 0x53 ; 83
290: 91 05 cpc r25, r1
292: a9 f7 brne .-22 ; 0x27e <LCD_move_chinese_string+0x9e>
294: 6c 2d mov r22, r12
296: 89 2d mov r24, r9
298: 0e 94 9d 00 call 0x13a ; 0x13a <LCD_set_XY>
29c: 61 e0 ldi r22, 0x01 ; 1
29e: f8 01 movw r30, r16
2a0: 81 91 ld r24, Z+
2a2: 8f 01 movw r16, r30
2a4: 0e 94 7c 00 call 0xf8 ; 0xf8 <LCD_write_byte>
2a8: ce 01 movw r24, r28
2aa: 88 55 subi r24, 0x58 ; 88
2ac: 9f 4f sbci r25, 0xFF ; 255
2ae: 08 17 cp r16, r24
2b0: 19 07 cpc r17, r25
2b2: a1 f7 brne .-24 ; 0x29c <LCD_move_chinese_string+0xbc>
2b4: 6c 2d mov r22, r12
2b6: 6f 5f subi r22, 0xFF ; 255
2b8: 89 2d mov r24, r9
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -