📄 gs.lss
字号:
GS.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000ffc 00000000 00000000 000000b4 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000004 00800060 00000ffc 000010b0 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000414 00800064 00800064 000010b4 2**0
ALLOC
3 .noinit 00000000 00800478 00800478 000010b8 2**0
CONTENTS
4 .eeprom 00000004 00810000 00810000 000010b4 2**0
CONTENTS, ALLOC, LOAD, DATA
5 .stab 00001d7c 00000000 00000000 000010b8 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000db8 00000000 00000000 00002e34 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 06 02 jmp 0x40c <__init>
4: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
8: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
c: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
10: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
14: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
18: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
1c: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
20: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
24: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
28: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
2c: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
30: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
34: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
38: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
3c: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
40: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
44: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
48: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
4c: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
50: 0c 94 21 02 jmp 0x442 <__bad_interrupt>
00000054 <__ctors_end>:
54: 07 02 muls r16, r23
56: 08 03 fmul r16, r16
58: 05 00 .word 0x0005 ; ????
5a: 06 01 movw r0, r12
5c: 09 04 cpc r0, r9
5e: 0a 0b sbc r16, r26
60: 0c 0d add r16, r12
62: 0e 0f add r16, r30
00000064 <tk1>:
64: ff ff ff ff ff ff ff 00 ff ff ff 01 ff 02 03 ff ................
00000074 <C1>:
74: 00 00 00 00 7c 18 c6 38 c6 78 ce 18 d6 18 d6 18 ....|..8.x......
84: e6 18 c6 18 c6 18 7c 7e 00 00 00 00 00 00 00 00 ......|~........
94: 00 00 00 00 7c 7c c6 c6 c6 06 ce 0c d6 18 d6 30 ....||.........0
a4: e6 60 c6 c0 c6 c6 7c fe 00 00 00 00 00 00 00 00 .`....|.........
b4: 00 00 00 00 7c 7c c6 c6 c6 06 ce 06 d6 3c d6 06 ....||.......<..
c4: e6 06 c6 06 c6 c6 7c 7c 00 00 00 00 00 00 00 00 ......||........
d4: 00 00 00 00 7c 0c c6 1c c6 3c ce 6c d6 cc d6 fe ....|....<.l....
e4: e6 0c c6 0c c6 0c 7c 1e 00 00 00 00 00 00 00 00 ......|.........
f4: 00 00 00 00 7c fe c6 c0 c6 c0 ce c0 d6 fc d6 0e ....|...........
104: e6 06 c6 06 c6 c6 7c 7c 00 00 00 00 00 00 00 00 ......||........
114: 00 00 00 00 7c 38 c6 60 c6 c0 ce c0 d6 fc d6 c6 ....|8.`........
124: e6 c6 c6 c6 c6 c6 7c 7c 00 00 00 00 00 00 00 00 ......||........
134: 00 00 00 00 7c fe c6 c6 c6 06 ce 06 d6 0c d6 18 ....|...........
144: e6 30 c6 30 c6 30 7c 30 00 00 00 00 00 00 00 00 .0.0.0|0........
154: 00 00 00 00 7c 7c c6 c6 c6 c6 ce c6 d6 7c d6 c6 ....||.......|..
164: e6 c6 c6 c6 c6 c6 7c 7c 00 00 00 00 00 00 00 00 ......||........
174: 00 00 00 00 7c 7c c6 c6 c6 c6 ce c6 d6 7e d6 06 ....||.......~..
184: e6 06 c6 06 c6 0c 7c 78 00 00 00 00 00 00 00 00 ......|x........
194: 00 00 00 00 18 7c 38 c6 78 c6 18 ce 18 d6 18 d6 .....|8.x.......
1a4: 18 e6 18 c6 18 c6 7e 7c 00 00 00 00 00 00 00 00 ......~|........
1b4: 00 00 00 00 18 18 38 38 78 78 18 18 18 18 18 18 ......88xx......
1c4: 18 18 18 18 18 18 7e 7e 00 00 00 00 00 00 00 00 ......~~........
1d4: 00 00 00 00 18 7c 38 c6 78 06 18 0c 18 18 18 30 .....|8.x......0
1e4: 18 60 18 c0 18 c6 7e fe 00 00 00 00 00 00 00 00 .`....~.........
1f4: 00 00 00 00 18 7c 38 c6 78 06 18 06 18 3c 18 06 .....|8.x....<..
204: 18 06 18 06 18 c6 7e 7c 00 00 00 00 00 00 00 00 ......~|........
214: 00 00 00 00 18 0c 38 1c 78 3c 18 6c 18 cc 18 fe ......8.x<.l....
224: 18 0c 18 0c 18 0c 7e 1e 00 00 00 00 00 00 00 00 ......~.........
234: 00 00 00 00 18 fe 38 c0 78 c0 18 c0 18 fc 18 0e ......8.x.......
244: 18 06 18 06 18 c6 7e 7c 00 00 00 00 00 00 00 00 ......~|........
254: 00 00 00 00 18 38 38 60 78 c0 18 c0 18 fc 18 c6 .....88`x.......
264: 18 c6 18 c6 18 c6 7e 7c 00 00 00 00 00 00 00 00 ......~|........
00000274 <CN1>:
...
284: 00 20 20 20 20 20 20 b9 a7 cf b2 00 00 00 00 00 . .........
294: 00 00 20 20 21 20 ca a4 c0 fb cd ea b3 c9 20 21 .. ! ........ !
2a4: 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............
...
0000040c <__init>:
40c: 11 24 eor r1, r1
40e: 1f be out 0x3f, r1 ; 63
410: cf e5 ldi r28, 0x5F ; 95
412: d8 e0 ldi r29, 0x08 ; 8
414: de bf out 0x3e, r29 ; 62
416: cd bf out 0x3d, r28 ; 61
00000418 <__do_copy_data>:
418: 10 e0 ldi r17, 0x00 ; 0
41a: a0 e6 ldi r26, 0x60 ; 96
41c: b0 e0 ldi r27, 0x00 ; 0
41e: ec ef ldi r30, 0xFC ; 252
420: ff e0 ldi r31, 0x0F ; 15
422: 02 c0 rjmp .+4 ; 0x428 <.do_copy_data_start>
00000424 <.do_copy_data_loop>:
424: 05 90 lpm r0, Z+
426: 0d 92 st X+, r0
00000428 <.do_copy_data_start>:
428: a4 36 cpi r26, 0x64 ; 100
42a: b1 07 cpc r27, r17
42c: d9 f7 brne .-10 ; 0x424 <.do_copy_data_loop>
0000042e <__do_clear_bss>:
42e: 14 e0 ldi r17, 0x04 ; 4
430: a4 e6 ldi r26, 0x64 ; 100
432: b0 e0 ldi r27, 0x00 ; 0
434: 01 c0 rjmp .+2 ; 0x438 <.do_clear_bss_start>
00000436 <.do_clear_bss_loop>:
436: 1d 92 st X+, r1
00000438 <.do_clear_bss_start>:
438: a8 37 cpi r26, 0x78 ; 120
43a: b1 07 cpc r27, r17
43c: e1 f7 brne .-8 ; 0x436 <.do_clear_bss_loop>
43e: 0c 94 dd 05 jmp 0xbba <main>
00000442 <__bad_interrupt>:
442: 0c 94 00 00 jmp 0x0 <__vectors>
00000446 <delay>:
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
446: 9c 01 movw r18, r24
448: 21 50 subi r18, 0x01 ; 1
44a: 30 40 sbci r19, 0x00 ; 0
44c: 8f ef ldi r24, 0xFF ; 255
44e: 2f 3f cpi r18, 0xFF ; 255
450: 38 07 cpc r19, r24
452: 29 f0 breq .+10 ; 0x45e <delay+0x18>
454: 83 e3 ldi r24, 0x33 ; 51
456: 97 e0 ldi r25, 0x07 ; 7
458: 01 97 sbiw r24, 0x01 ; 1
45a: f1 f7 brne .-4 ; 0x458 <delay+0x12>
45c: f5 cf rjmp .-22 ; 0x448 <delay+0x2>
45e: 08 95 ret
00000460 <w_lcd>:
}
void w_lcd(uchar dat_com,uchar cont) //向LCD写命令或数据,由dat_com决定
{
if(dat_com)
460: 88 23 and r24, r24
462: 11 f0 breq .+4 ; 0x468 <w_lcd+0x8>
rs_s;
464: 97 9a sbi 0x12, 7 ; 18
466: 01 c0 rjmp .+2 ; 0x46a <w_lcd+0xa>
else
rs_c;
468: 97 98 cbi 0x12, 7 ; 18
PORTA=cont;
46a: 6b bb out 0x1b, r22 ; 27
e_s;
46c: a8 9a sbi 0x15, 0 ; 21
e_c;
46e: a8 98 cbi 0x15, 0 ; 21
if(dat_com==0&&cont==0x01)
470: 88 23 and r24, r24
472: 29 f4 brne .+10 ; 0x47e <w_lcd+0x1e>
474: 61 30 cpi r22, 0x01 ; 1
476: 19 f4 brne .+6 ; 0x47e <w_lcd+0x1e>
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
478: 85 e8 ldi r24, 0x85 ; 133
47a: 9b e0 ldi r25, 0x0B ; 11
47c: 02 c0 rjmp .+4 ; 0x482 <w_lcd+0x22>
47e: 8e e6 ldi r24, 0x6E ; 110
480: 90 e0 ldi r25, 0x00 ; 0
__asm__ volatile (
482: 01 97 sbiw r24, 0x01 ; 1
484: f1 f7 brne .-4 ; 0x482 <w_lcd+0x22>
486: 08 95 ret
00000488 <set>:
dy(1600);
else
dy(60); //data
}
void set(uchar sway) //seting display way
{
488: cf 93 push r28
48a: c8 2f mov r28, r24
if(sway==0x00)
48c: 88 23 and r24, r24
48e: 31 f4 brne .+12 ; 0x49c <set+0x14>
w_lcd(com,0x32), w_lcd(com,0x08); //not display
490: 62 e3 ldi r22, 0x32 ; 50
492: 0e 94 30 02 call 0x460 <w_lcd>
496: 68 e0 ldi r22, 0x08 ; 8
498: 8c 2f mov r24, r28
49a: 28 c0 rjmp .+80 ; 0x4ec <set+0x64>
else if(sway==0x01)
49c: 81 30 cpi r24, 0x01 ; 1
49e: 31 f4 brne .+12 ; 0x4ac <set+0x24>
w_lcd(com,0x32), w_lcd(com,0x0c), w_lcd(com,0x06); //cursor not flash, not move
4a0: 62 e3 ldi r22, 0x32 ; 50
4a2: 80 e0 ldi r24, 0x00 ; 0
4a4: 0e 94 30 02 call 0x460 <w_lcd>
4a8: 6c e0 ldi r22, 0x0C ; 12
4aa: 07 c0 rjmp .+14 ; 0x4ba <set+0x32>
else if(sway==0x02)
4ac: 82 30 cpi r24, 0x02 ; 2
4ae: 51 f4 brne .+20 ; 0x4c4 <set+0x3c>
w_lcd(com,0x32), w_lcd(com,0x0d), w_lcd(com,0x06); //cursor flash, not move
4b0: 62 e3 ldi r22, 0x32 ; 50
4b2: 80 e0 ldi r24, 0x00 ; 0
4b4: 0e 94 30 02 call 0x460 <w_lcd>
4b8: 6d e0 ldi r22, 0x0D ; 13
4ba: 80 e0 ldi r24, 0x00 ; 0
4bc: 0e 94 30 02 call 0x460 <w_lcd>
4c0: 66 e0 ldi r22, 0x06 ; 6
4c2: 13 c0 rjmp .+38 ; 0x4ea <set+0x62>
else if(sway==0x03)
4c4: 83 30 cpi r24, 0x03 ; 3
4c6: 31 f4 brne .+12 ; 0x4d4 <set+0x4c>
w_lcd(com,0x32), w_lcd(com,0x0c), w_lcd(com,0x07); //cursor not flash, move left when writing
4c8: 62 e3 ldi r22, 0x32 ; 50
4ca: 80 e0 ldi r24, 0x00 ; 0
4cc: 0e 94 30 02 call 0x460 <w_lcd>
4d0: 6c e0 ldi r22, 0x0C ; 12
4d2: 07 c0 rjmp .+14 ; 0x4e2 <set+0x5a>
else if(sway==0x04)
4d4: 84 30 cpi r24, 0x04 ; 4
4d6: 61 f4 brne .+24 ; 0x4f0 <set+0x68>
w_lcd(com,0x32), w_lcd(com,0x0d), w_lcd(com,0x07); //cursor flash, move ledt wehn writing
4d8: 62 e3 ldi r22, 0x32 ; 50
4da: 80 e0 ldi r24, 0x00 ; 0
4dc: 0e 94 30 02 call 0x460 <w_lcd>
4e0: 6d e0 ldi r22, 0x0D ; 13
4e2: 80 e0 ldi r24, 0x00 ; 0
4e4: 0e 94 30 02 call 0x460 <w_lcd>
4e8: 67 e0 ldi r22, 0x07 ; 7
4ea: 80 e0 ldi r24, 0x00 ; 0
4ec: 0e 94 30 02 call 0x460 <w_lcd>
4f0: cf 91 pop r28
4f2: 08 95 ret
000004f4 <rv>:
// else if(sway==0x40) w_lcd(com,0x34), w_lcd(com,0x34); //not display pitures
// else if(sway==0x41) w_lcd(com,0x36), w_lcd(com,0x36); //display pitures
}
/*-----------------------------------------------*/
//当type=3,在x0,y0处反白显示16*xl*16.
//当type=2,在x0,y0处前半反白显示8*xl*16.
//当type=1时,在x0,y0处后半反白显示8*xl*16.
//当type=时,不反白显示
//xl为反白显示的长度
void rv(uchar type,uchar xx0,uchar yy0,uchar xl)
{ uchar i,j;
4f4: cf 92 push r12
4f6: df 92 push r13
4f8: ef 92 push r14
4fa: ff 92 push r15
4fc: 0f 93 push r16
4fe: 1f 93 push r17
500: cf 93 push r28
502: 96 2f mov r25, r22
504: d2 2e mov r13, r18
uchar data1,data2,x0,y0;
if(type==0)
506: 88 23 and r24, r24
508: 11 f4 brne .+4 ; 0x50e <rv+0x1a>
data1=0,data2=0;
50a: 08 2f mov r16, r24
50c: 0e c0 rjmp .+28 ; 0x52a <rv+0x36>
else if(type==1)
50e: 81 30 cpi r24, 0x01 ; 1
510: 19 f4 brne .+6 ; 0x518 <rv+0x24>
data1=0,data2=0xff;
512: cc 24 eor r12, r12
514: 0f ef ldi r16, 0xFF ; 255
516: 0a c0 rjmp .+20 ; 0x52c <rv+0x38>
else if(type==2)
518: 82 30 cpi r24, 0x02 ; 2
51a: 21 f4 brne .+8 ; 0x524 <rv+0x30>
data1=0xff,data2=0;
51c: ff ef ldi r31, 0xFF ; 255
51e: cf 2e mov r12, r31
520: 00 e0 ldi r16, 0x00 ; 0
522: 04 c0 rjmp .+8 ; 0x52c <rv+0x38>
else if(type==3)
524: 83 30 cpi r24, 0x03 ; 3
526: 11 f4 brne .+4 ; 0x52c <rv+0x38>
data1=0xff,data2=0xff;
528: 0f ef ldi r16, 0xFF ; 255
52a: c0 2e mov r12, r16
52c: 64 2f mov r22, r20
52e: 77 27 eor r23, r23
if(yy0>1)
530: 42 30 cpi r20, 0x02 ; 2
532: 58 f0 brcs .+22 ; 0x54a <rv+0x56>
y0=(yy0-2)*16+0x80,x0=xx0+0x88;
534: e4 e0 ldi r30, 0x04 ; 4
536: 66 0f add r22, r22
538: 77 1f adc r23, r23
53a: ea 95 dec r30
53c: e1 f7 brne .-8 ; 0x536 <rv+0x42>
53e: 50 e6 ldi r21, 0x60 ; 96
540: e5 2e mov r14, r21
542: e6 0e add r14, r22
544: 48 e8 ldi r20, 0x88 ; 136
546: f4 2e mov r15, r20
548: 0a c0 rjmp .+20 ; 0x55e <rv+0x6a>
else
y0=yy0*16+0x80,x0=xx0+0x80;
54a: 34 e0 ldi r19, 0x04 ; 4
54c: 66 0f add r22, r22
54e: 77 1f adc r23, r23
550: 3a 95 dec r19
552: e1 f7 brne .-8 ; 0x54c <rv+0x58>
554: 20 e8 ldi r18, 0x80 ; 128
556: e2 2e mov r14, r18
558: e6 0e add r14, r22
55a: 80 e8 ldi r24, 0x80 ; 128
55c: f8 2e mov r15, r24
55e: f9 0e add r15, r25
for(j=0;j<16;j++)
560: 10 e0 ldi r17, 0x00 ; 0
{
for(i=0;i<xl;i++)
562: c0 e0 ldi r28, 0x00 ; 0
564: cd 15 cp r28, r13
566: e8 f4 brcc .+58 ; 0x5a2 <rv+0xae>
{
w_lcd (com,0x34);
568: 64 e3 ldi r22, 0x34 ; 52
56a: 80 e0 ldi r24, 0x00 ; 0
56c: 0e 94 30 02 call 0x460 <w_lcd>
w_lcd (com,y0+j);
570: 6e 2d mov r22, r14
572: 61 0f add r22, r17
574: 80 e0 ldi r24, 0x00 ; 0
576: 0e 94 30 02 call 0x460 <w_lcd>
w_lcd (com,x0+i);
57a: 8f 2d mov r24, r15
57c: 8c 0f add r24, r28
57e: 68 2f mov r22, r24
580: 80 e0 ldi r24, 0x00 ; 0
582: 0e 94 30 02 call 0x460 <w_lcd>
w_lcd (com,0x30);
586: 60 e3 ldi r22, 0x30 ; 48
588: 80 e0 ldi r24, 0x00 ; 0
58a: 0e 94 30 02 call 0x460 <w_lcd>
w_lcd (dat,data1);
58e: 6c 2d mov r22, r12
590: 81 e0 ldi r24, 0x01 ; 1
592: 0e 94 30 02 call 0x460 <w_lcd>
w_lcd (dat,data2);
596: 60 2f mov r22, r16
598: 81 e0 ldi r24, 0x01 ; 1
59a: 0e 94 30 02 call 0x460 <w_lcd>
59e: cf 5f subi r28, 0xFF ; 255
5a0: e1 cf rjmp .-62 ; 0x564 <rv+0x70>
5a2: 1f 5f subi r17, 0xFF ; 255
5a4: 10 31 cpi r17, 0x10 ; 16
5a6: e8 f2 brcs .-70 ; 0x562 <rv+0x6e>
}
}
w_lcd (com,0x36);
5a8: 66 e3 ldi r22, 0x36 ; 54
5aa: 80 e0 ldi r24, 0x00 ; 0
5ac: 0e 94 30 02 call 0x460 <w_lcd>
5b0: cf 91 pop r28
5b2: 1f 91 pop r17
5b4: 0f 91 pop r16
5b6: ff 90 pop r15
5b8: ef 90 pop r14
5ba: df 90 pop r13
5bc: cf 90 pop r12
5be: 08 95 ret
000005c0 <rvn>:
}
void rvn(void)
{
rv(0,0,0,8);
5c0: 28 e0 ldi r18, 0x08 ; 8
5c2: 40 e0 ldi r20, 0x00 ; 0
5c4: 64 2f mov r22, r20
5c6: 84 2f mov r24, r20
5c8: 0e 94 7a 02 call 0x4f4 <rv>
rv(0,0,1,8);
5cc: 28 e0 ldi r18, 0x08 ; 8
5ce: 41 e0 ldi r20, 0x01 ; 1
5d0: 60 e0 ldi r22, 0x00 ; 0
5d2: 86 2f mov r24, r22
5d4: 0e 94 7a 02 call 0x4f4 <rv>
rv(0,0,2,8);
5d8: 28 e0 ldi r18, 0x08 ; 8
5da: 42 e0 ldi r20, 0x02 ; 2
5dc: 60 e0 ldi r22, 0x00 ; 0
5de: 86 2f mov r24, r22
5e0: 0e 94 7a 02 call 0x4f4 <rv>
rv(0,0,3,8);
5e4: 28 e0 ldi r18, 0x08 ; 8
5e6: 43 e0 ldi r20, 0x03 ; 3
5e8: 60 e0 ldi r22, 0x00 ; 0
5ea: 86 2f mov r24, r22
5ec: 0e 94 7a 02 call 0x4f4 <rv>
5f0: 08 95 ret
000005f2 <clr>:
}
void clr(uchar ty)
{
5f2: ff 92 push r15
5f4: 0f 93 push r16
5f6: 1f 93 push r17
5f8: cf 93 push r28
5fa: df 93 push r29
5fc: f8 2e mov r15, r24
uint i,j;
if(ty==1||ty==3) //clean charter
5fe: 21 e0 ldi r18, 0x01 ; 1
600: 82 17 cp r24, r18
602: 19 f0 breq .+6 ; 0x60a <clr+0x18>
604: 83 e0 ldi r24, 0x03 ; 3
606: f8 16 cp r15, r24
608: 41 f4 brne .+16 ; 0x61a <clr+0x28>
w_lcd(com,0x32), w_lcd(com,0x01);
60a: 62 e3 ldi r22, 0x32 ; 50
60c: 80 e0 ldi r24, 0x00 ; 0
60e: 0e 94 30 02 call 0x460 <w_lcd>
612: 61 e0 ldi r22, 0x01 ; 1
614: 80 e0 ldi r24, 0x00 ; 0
616: 0e 94 30 02 call 0x460 <w_lcd>
if(ty==2||ty==3) //clean piture
61a: 8f 2d mov r24, r15
61c: 82 50 subi r24, 0x02 ; 2
61e: 82 30 cpi r24, 0x02 ; 2
620: f0 f4 brcc .+60 ; 0x65e <clr+0x6c>
{
w_lcd(com,0x34);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -