smg.lss
来自「AVR Devolpment Board」· LSS 代码 · 共 236 行
LSS
236 行
smg.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000142 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 00000142 000001d6 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000008 00800060 00800060 000001d6 2**0
ALLOC
3 .noinit 00000000 00800068 00800068 000001d6 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000001d6 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 000001d8 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 00000544 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000014 00000000 00000000 000005c8 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 00000041 00000000 00000000 000005dc 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 00000208 00000000 00000000 0000061d 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 00000110 00000000 00000000 00000825 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 00000180 00000000 00000000 00000935 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 0000011e 00000000 00000000 00000ab5 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 32 00 jmp 0x64 <__init>
4: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
8: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
c: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
10: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
14: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
18: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
1c: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
20: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
24: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
28: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
2c: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
30: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
34: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
38: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
3c: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
40: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
44: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
48: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
4c: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
50: 0c 94 4d 00 jmp 0x9a <__bad_interrupt>
00000054 <SegCode>:
54: 3f 06 5b 4f 66 6d 7d 07 7f 6f 77 7c 39 5e 79 71 ?.[Ofm}..ow|9^yq
00000064 <__init>:
64: 11 24 eor r1, r1
66: 1f be out 0x3f, r1 ; 63
68: cf e5 ldi r28, 0x5F ; 95
6a: d4 e0 ldi r29, 0x04 ; 4
6c: de bf out 0x3e, r29 ; 62
6e: cd bf out 0x3d, r28 ; 61
00000070 <__do_copy_data>:
70: 10 e0 ldi r17, 0x00 ; 0
72: a0 e6 ldi r26, 0x60 ; 96
74: b0 e0 ldi r27, 0x00 ; 0
76: e2 e4 ldi r30, 0x42 ; 66
78: f1 e0 ldi r31, 0x01 ; 1
7a: 02 c0 rjmp .+4 ; 0x80 <.do_copy_data_start>
0000007c <.do_copy_data_loop>:
7c: 05 90 lpm r0, Z+
7e: 0d 92 st X+, r0
00000080 <.do_copy_data_start>:
80: a0 36 cpi r26, 0x60 ; 96
82: b1 07 cpc r27, r17
84: d9 f7 brne .-10 ; 0x7c <.do_copy_data_loop>
00000086 <__do_clear_bss>:
86: 10 e0 ldi r17, 0x00 ; 0
88: a0 e6 ldi r26, 0x60 ; 96
8a: b0 e0 ldi r27, 0x00 ; 0
8c: 01 c0 rjmp .+2 ; 0x90 <.do_clear_bss_start>
0000008e <.do_clear_bss_loop>:
8e: 1d 92 st X+, r1
00000090 <.do_clear_bss_start>:
90: a8 36 cpi r26, 0x68 ; 104
92: b1 07 cpc r27, r17
94: e1 f7 brne .-8 ; 0x8e <.do_clear_bss_loop>
96: 0c 94 80 00 jmp 0x100 <main>
0000009a <__bad_interrupt>:
9a: 0c 94 00 00 jmp 0x0 <__vectors>
0000009e <SmgScan>:
unsigned char DisBuffer[8];
void SmgScan(void)
{
9e: 0f 93 push r16
a0: 1f 93 push r17
a2: cf 93 push r28
a4: df 93 push r29
a6: 01 e0 ldi r16, 0x01 ; 1
a8: 10 e0 ldi r17, 0x00 ; 0
aa: a0 ea ldi r26, 0xA0 ; 160
ac: bf e0 ldi r27, 0x0F ; 15
ae: c0 e0 ldi r28, 0x00 ; 0
b0: d0 e0 ldi r29, 0x00 ; 0
b2: 60 e6 ldi r22, 0x60 ; 96
b4: 70 e0 ldi r23, 0x00 ; 0
b6: 20 e0 ldi r18, 0x00 ; 0
b8: 30 e0 ldi r19, 0x00 ; 0
ba: 47 e0 ldi r20, 0x07 ; 7
unsigned char i=0;
for(i=0;i<8;i++)
{
PORTB = pgm_read_byte(&SegCode[DisBuffer[i]]);/* Output the Segment code */
bc: fb 01 movw r30, r22
be: 81 91 ld r24, Z+
c0: bf 01 movw r22, r30
c2: e8 2f mov r30, r24
c4: ff 27 eor r31, r31
c6: ec 5a subi r30, 0xAC ; 172
c8: ff 4f sbci r31, 0xFF ; 255
ca: 84 91 lpm r24, Z
cc: 88 bb out 0x18, r24 ; 24
PORTA|= (1<<PA4);
ce: dc 9a sbi 0x1b, 4 ; 27
PORTA&=~(1<<PA4);
d0: dc 98 cbi 0x1b, 4 ; 27
PORTB = (1<<i); /* Select one 7-segment display */
d2: c8 01 movw r24, r16
d4: 02 2e mov r0, r18
d6: 02 c0 rjmp .+4 ; 0xdc <SmgScan+0x3e>
d8: 88 0f add r24, r24
da: 99 1f adc r25, r25
dc: 0a 94 dec r0
de: e2 f7 brpl .-8 ; 0xd8 <SmgScan+0x3a>
e0: 88 bb out 0x18, r24 ; 24
PORTA|= (1<<PA5);
e2: dd 9a sbi 0x1b, 5 ; 27
PORTA&=~(1<<PA5);
e4: dd 98 cbi 0x1b, 5 ; 27
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
e6: cd 01 movw r24, r26
e8: 01 97 sbiw r24, 0x01 ; 1
ea: f1 f7 brne .-4 ; 0xe8 <SmgScan+0x4a>
ec: 41 50 subi r20, 0x01 ; 1
ee: 2f 5f subi r18, 0xFF ; 255
f0: 3f 4f sbci r19, 0xFF ; 255
f2: 47 ff sbrs r20, 7
f4: e3 cf rjmp .-58 ; 0xbc <SmgScan+0x1e>
f6: df 91 pop r29
f8: cf 91 pop r28
fa: 1f 91 pop r17
fc: 0f 91 pop r16
fe: 08 95 ret
00000100 <main>:
_delay_ms(2);
}
}
int main(void)
{
100: cf e5 ldi r28, 0x5F ; 95
102: d4 e0 ldi r29, 0x04 ; 4
104: de bf out 0x3e, r29 ; 62
106: cd bf out 0x3d, r28 ; 61
unsigned int Count=0;
/* Set LEDs and Smg LE pin as output , databus as output */
DDRA |=(1<<PA4)|(1<<PA5)|(1<<PA6);
108: 8a b3 in r24, 0x1a ; 26
10a: 80 67 ori r24, 0x70 ; 112
10c: 8a bb out 0x1a, r24 ; 26
DDRB = 0xFF;
10e: 8f ef ldi r24, 0xFF ; 255
110: 87 bb out 0x17, r24 ; 23
/* Turn off the LEDs */
PORTB = 0xFF;
112: 88 bb out 0x18, r24 ; 24
PORTA|= (1<<PA6);
114: de 9a sbi 0x1b, 6 ; 27
PORTA&=~(1<<PA6);
116: de 98 cbi 0x1b, 6 ; 27
while(1)
{
Count++;
DisBuffer[0]=0;
118: 10 92 60 00 sts 0x0060, r1
DisBuffer[1]=0;
11c: 10 92 61 00 sts 0x0061, r1
DisBuffer[2]=0;
120: 10 92 62 00 sts 0x0062, r1
//DisBuffer[3]=Count/10000%10;
//DisBuffer[4]=Count/1000%10;
//DisBuffer[5]=Count/100%10;
//DisBuffer[6]=Count/10%10;
//DisBuffer[7]=Count/1%10;
DisBuffer[3]=0;
124: 10 92 63 00 sts 0x0063, r1
DisBuffer[4]=0;
128: 10 92 64 00 sts 0x0064, r1
DisBuffer[5]=0;
12c: 10 92 65 00 sts 0x0065, r1
DisBuffer[6]=4;
130: 84 e0 ldi r24, 0x04 ; 4
132: 80 93 66 00 sts 0x0066, r24
DisBuffer[7]=5;
136: 85 e0 ldi r24, 0x05 ; 5
138: 80 93 67 00 sts 0x0067, r24
SmgScan();
13c: 0e 94 4f 00 call 0x9e <SmgScan>
140: eb cf rjmp .-42 ; 0x118 <main+0x18>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?