📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000802 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000012 00800060 00000802 00000896 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000003 00800072 00800072 000008a8 2**0
ALLOC
3 .stab 0000036c 00000000 00000000 000008a8 2**2
CONTENTS, READONLY, DEBUGGING
4 .stabstr 00000084 00000000 00000000 00000c14 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_aranges 00000020 00000000 00000000 00000c98 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 00000127 00000000 00000000 00000cb8 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 00000802 00000000 00000000 00000ddf 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 00000199 00000000 00000000 000015e1 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 000004f0 00000000 00000000 0000177a 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_frame 000000f0 00000000 00000000 00001c6a 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_str 000001e1 00000000 00000000 00001d5a 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_loc 00000360 00000000 00000000 00001f3b 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: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: e2 e0 ldi r30, 0x02 ; 2
68: f8 e0 ldi r31, 0x08 ; 8
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 37 cpi r26, 0x72 ; 114
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 10 e0 ldi r17, 0x00 ; 0
78: a2 e7 ldi r26, 0x72 ; 114
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: a5 37 cpi r26, 0x75 ; 117
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 6b 02 jmp 0x4d6 ; 0x4d6 <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
0000008e <delay>:
#define sei() asm("sei")
#define cli() asm("cli")
void delay(uchar _delay_n)
{
8e: 38 2f mov r19, r24
90: 20 e0 ldi r18, 0x00 ; 0
92: e0 e2 ldi r30, 0x20 ; 32
94: fe e4 ldi r31, 0x4E ; 78
96: 04 c0 rjmp .+8 ; 0xa0 <delay+0x12>
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
98: cf 01 movw r24, r30
9a: 01 97 sbiw r24, 0x01 ; 1
9c: f1 f7 brne .-4 ; 0x9a <delay+0xc>
void delay(uchar _delay_n)
{
uchar i;
for(i=0;i<_delay_n;i++)
9e: 2f 5f subi r18, 0xFF ; 255
a0: 23 17 cp r18, r19
a2: d1 f7 brne .-12 ; 0x98 <delay+0xa>
a4: 08 95 ret
000000a6 <send_byte>:
}
//对一个164进行操作 ************************************************************
void send_byte(uchar x)
{
a6: 20 e0 ldi r18, 0x00 ; 0
a8: 30 e0 ldi r19, 0x00 ; 0
aa: 68 2f mov r22, r24
ac: 77 27 eor r23, r23
ae: e0 91 73 00 lds r30, 0x0073
b2: 47 e0 ldi r20, 0x07 ; 7
b4: 50 e0 ldi r21, 0x00 ; 0
uchar i ;
for(i=0;i<8;i++)
{
cbi_clk();
b6: d8 98 cbi 0x1b, 0 ; 27
// 产生164时钟信号,
//判断每位数据的电平,及小数点判断
if((x&(1<<(7-i)))||((dp==1)&&(i==0)))sbi_data();
b8: cb 01 movw r24, r22
ba: 04 2e mov r0, r20
bc: 02 c0 rjmp .+4 ; 0xc2 <send_byte+0x1c>
be: 95 95 asr r25
c0: 87 95 ror r24
c2: 0a 94 dec r0
c4: e2 f7 brpl .-8 ; 0xbe <send_byte+0x18>
c6: 80 fd sbrc r24, 0
c8: 04 c0 rjmp .+8 ; 0xd2 <send_byte+0x2c>
ca: e1 30 cpi r30, 0x01 ; 1
cc: 21 f4 brne .+8 ; 0xd6 <send_byte+0x30>
ce: 22 23 and r18, r18
d0: 11 f4 brne .+4 ; 0xd6 <send_byte+0x30>
d2: d9 9a sbi 0x1b, 1 ; 27
d4: 01 c0 rjmp .+2 ; 0xd8 <send_byte+0x32>
//若为高则输出高电平
else
cbi_data();
d6: d9 98 cbi 0x1b, 1 ; 27
//若为低则输出低电平
sbi_clk();
d8: d8 9a sbi 0x1b, 0 ; 27
da: 2f 5f subi r18, 0xFF ; 255
dc: 3f 4f sbci r19, 0xFF ; 255
de: 41 50 subi r20, 0x01 ; 1
e0: 50 40 sbci r21, 0x00 ; 0
e2: 28 30 cpi r18, 0x08 ; 8
e4: 31 05 cpc r19, r1
e6: 39 f7 brne .-50 ; 0xb6 <send_byte+0x10>
e8: 08 95 ret
000000ea <ClearAll>:
ea: 1f 93 push r17
ec: 10 e0 ldi r17, 0x00 ; 0
ee: 80 e0 ldi r24, 0x00 ; 0
f0: 0e 94 53 00 call 0xa6 ; 0xa6 <send_byte>
f4: 1f 5f subi r17, 0xFF ; 255
f6: 18 30 cpi r17, 0x08 ; 8
f8: d1 f7 brne .-12 ; 0xee <ClearAll+0x4>
fa: 1f 91 pop r17
fc: 08 95 ret
000000fe <disp_Initial>:
fe: 83 e0 ldi r24, 0x03 ; 3
100: 8a bb out 0x1a, r24 ; 26
102: 0e 94 75 00 call 0xea ; 0xea <ClearAll>
106: 08 95 ret
00000108 <PrintInt>:
// 产生164时钟信号,上升沿
}
}
//输出8位以内的整数*************************************************************
void PrintInt(long m_lData)
{
108: af 92 push r10
10a: bf 92 push r11
10c: cf 92 push r12
10e: df 92 push r13
110: ef 92 push r14
112: ff 92 push r15
114: 0f 93 push r16
116: 1f 93 push r17
118: 5b 01 movw r10, r22
11a: 6c 01 movw r12, r24
long temp=10000000 ;
//当temp=10000000时,显示8位整数
long i ;
ClearAll();
11c: 0e 94 75 00 call 0xea ; 0xea <ClearAll>
i=m_lData/temp ;
120: c6 01 movw r24, r12
122: b5 01 movw r22, r10
124: 20 e8 ldi r18, 0x80 ; 128
126: 36 e9 ldi r19, 0x96 ; 150
128: 48 e9 ldi r20, 0x98 ; 152
12a: 50 e0 ldi r21, 0x00 ; 0
12c: 0e 94 b0 03 call 0x760 ; 0x760 <__divmodsi4>
130: 80 e8 ldi r24, 0x80 ; 128
132: e8 2e mov r14, r24
134: 86 e9 ldi r24, 0x96 ; 150
136: f8 2e mov r15, r24
138: 88 e9 ldi r24, 0x98 ; 152
13a: 08 2f mov r16, r24
13c: 11 2d mov r17, r1
13e: 11 c0 rjmp .+34 ; 0x162 <PrintInt+0x5a>
while(i==0)
{
send_byte(0x00);
140: 80 e0 ldi r24, 0x00 ; 0
142: 0e 94 53 00 call 0xa6 ; 0xa6 <send_byte>
temp/=10 ;
146: c8 01 movw r24, r16
148: b7 01 movw r22, r14
14a: 2a e0 ldi r18, 0x0A ; 10
14c: 30 e0 ldi r19, 0x00 ; 0
14e: 40 e0 ldi r20, 0x00 ; 0
150: 50 e0 ldi r21, 0x00 ; 0
152: 0e 94 b0 03 call 0x760 ; 0x760 <__divmodsi4>
156: 79 01 movw r14, r18
158: 8a 01 movw r16, r20
i=m_lData/temp ;
15a: c6 01 movw r24, r12
15c: b5 01 movw r22, r10
15e: 0e 94 b0 03 call 0x760 ; 0x760 <__divmodsi4>
162: 21 15 cp r18, r1
164: 31 05 cpc r19, r1
166: 41 05 cpc r20, r1
168: 51 05 cpc r21, r1
16a: 51 f3 breq .-44 ; 0x140 <PrintInt+0x38>
16c: 21 c0 rjmp .+66 ; 0x1b0 <PrintInt+0xa8>
}
while(temp)
{
send_byte(disp_table[(uchar)(m_lData/temp)]);
16e: c6 01 movw r24, r12
170: b5 01 movw r22, r10
172: a8 01 movw r20, r16
174: 97 01 movw r18, r14
176: 0e 94 b0 03 call 0x760 ; 0x760 <__divmodsi4>
17a: da 01 movw r26, r20
17c: c9 01 movw r24, r18
17e: 99 27 eor r25, r25
180: 80 5a subi r24, 0xA0 ; 160
182: 9f 4f sbci r25, 0xFF ; 255
184: fc 01 movw r30, r24
186: 80 81 ld r24, Z
188: 0e 94 53 00 call 0xa6 ; 0xa6 <send_byte>
m_lData=m_lData%temp ;
18c: c6 01 movw r24, r12
18e: b5 01 movw r22, r10
190: a8 01 movw r20, r16
192: 97 01 movw r18, r14
194: 0e 94 b0 03 call 0x760 ; 0x760 <__divmodsi4>
198: 5b 01 movw r10, r22
19a: 6c 01 movw r12, r24
temp/=10 ;
19c: c8 01 movw r24, r16
19e: b7 01 movw r22, r14
1a0: 2a e0 ldi r18, 0x0A ; 10
1a2: 30 e0 ldi r19, 0x00 ; 0
1a4: 40 e0 ldi r20, 0x00 ; 0
1a6: 50 e0 ldi r21, 0x00 ; 0
1a8: 0e 94 b0 03 call 0x760 ; 0x760 <__divmodsi4>
1ac: 79 01 movw r14, r18
1ae: 8a 01 movw r16, r20
1b0: e1 14 cp r14, r1
1b2: f1 04 cpc r15, r1
1b4: 01 05 cpc r16, r1
1b6: 11 05 cpc r17, r1
1b8: d1 f6 brne .-76 ; 0x16e <PrintInt+0x66>
1ba: 1f 91 pop r17
1bc: 0f 91 pop r16
1be: ff 90 pop r15
1c0: ef 90 pop r14
1c2: df 90 pop r13
1c4: cf 90 pop r12
1c6: bf 90 pop r11
1c8: af 90 pop r10
1ca: 08 95 ret
000001cc <PrintFloat>:
}
}
//用于显示8位以内的浮点数 ******************************************************
/*
void PrintFloat(float m_lData)
{
long temp=10000000 ;
uchar i,j=8,m,dot_position=0 ;
i=m_lData/temp ;
while(i==0)
{
temp/=10 ;
i=m_lData/temp ;
dot_position++;
if(dot_position==7) i=1 ;
}
for(m=0;m<dot_position;m++)
m_lData*=10 ;
temp=10000000 ;
while(temp)
{
if(j==dot_position+1)
dp=1 ;
j--;
send_byte(disp_table[(uchar)(m_lData/temp)]);
m_lData=(long)m_lData%temp ;
temp/=10 ;
dp=0 ;
}
}*/
void PrintFloat(float m_lData)
{
1cc: 5f 92 push r5
1ce: 6f 92 push r6
1d0: 7f 92 push r7
1d2: 8f 92 push r8
1d4: 9f 92 push r9
1d6: af 92 push r10
1d8: bf 92 push r11
1da: cf 92 push r12
1dc: df 92 push r13
1de: ef 92 push r14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -