📄 pran.lss
字号:
pran.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000049c 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000006 00800060 0000049c 00000530 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 0000000a 00800066 00800066 00000536 2**0
ALLOC
3 .stab 00000de0 00000000 00000000 00000538 2**2
CONTENTS, READONLY, DEBUGGING
4 .stabstr 00000c82 00000000 00000000 00001318 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 28 c0 rjmp .+80 ; 0x52
2: 53 c0 rjmp .+166 ; 0xaa
4: 41 c0 rjmp .+130 ; 0x88
6: 40 c0 rjmp .+128 ; 0x88
8: 3f c0 rjmp .+126 ; 0x88
a: 3e c0 rjmp .+124 ; 0x88
c: 08 c1 rjmp .+528 ; 0x21e
e: 3c c0 rjmp .+120 ; 0x88
10: 74 c1 rjmp .+744 ; 0x2fa
12: 3a c0 rjmp .+116 ; 0x88
14: 39 c0 rjmp .+114 ; 0x88
16: 38 c0 rjmp .+112 ; 0x88
18: 37 c0 rjmp .+110 ; 0x88
1a: 36 c0 rjmp .+108 ; 0x88
1c: 35 c0 rjmp .+106 ; 0x88
1e: 34 c0 rjmp .+104 ; 0x88
20: 33 c0 rjmp .+102 ; 0x88
22: 32 c0 rjmp .+100 ; 0x88
24: 31 c0 rjmp .+98 ; 0x88
26: 30 c0 rjmp .+96 ; 0x88
28: 2f c0 rjmp .+94 ; 0x88
2a: a5 c1 rjmp .+842 ; 0x376
2c: a6 c1 rjmp .+844 ; 0x37a
2e: a7 c1 rjmp .+846 ; 0x37e
30: a8 c1 rjmp .+848 ; 0x382
32: a9 c1 rjmp .+850 ; 0x386
34: aa c1 rjmp .+852 ; 0x38a
36: ab c1 rjmp .+854 ; 0x38e
38: ac c1 rjmp .+856 ; 0x392
3a: ad c1 rjmp .+858 ; 0x396
3c: ae c1 rjmp .+860 ; 0x39a
3e: bc c1 rjmp .+888 ; 0x3b8
40: bd c1 rjmp .+890 ; 0x3bc
42: be c1 rjmp .+892 ; 0x3c0
44: bf c1 rjmp .+894 ; 0x3c4
46: c0 c1 rjmp .+896 ; 0x3c8
48: c1 c1 rjmp .+898 ; 0x3cc
4a: c2 c1 rjmp .+900 ; 0x3d0
4c: c3 c1 rjmp .+902 ; 0x3d4
4e: c4 c1 rjmp .+904 ; 0x3d8
50: c5 c1 rjmp .+906 ; 0x3dc
00000052 <__ctors_end>:
52: 11 24 eor r1, r1
54: 1f be out 0x3f, r1 ; 63
56: cf e5 ldi r28, 0x5F ; 95
58: d2 e0 ldi r29, 0x02 ; 2
5a: de bf out 0x3e, r29 ; 62
5c: cd bf out 0x3d, r28 ; 61
0000005e <__do_copy_data>:
5e: 10 e0 ldi r17, 0x00 ; 0
60: a0 e6 ldi r26, 0x60 ; 96
62: b0 e0 ldi r27, 0x00 ; 0
64: ec e9 ldi r30, 0x9C ; 156
66: f4 e0 ldi r31, 0x04 ; 4
68: 02 c0 rjmp .+4 ; 0x6e
0000006a <.do_copy_data_loop>:
6a: 05 90 lpm r0, Z+
6c: 0d 92 st X+, r0
0000006e <.do_copy_data_start>:
6e: a6 36 cpi r26, 0x66 ; 102
70: b1 07 cpc r27, r17
72: d9 f7 brne .-10 ; 0x6a
00000074 <__do_clear_bss>:
74: 10 e0 ldi r17, 0x00 ; 0
76: a6 e6 ldi r26, 0x66 ; 102
78: b0 e0 ldi r27, 0x00 ; 0
7a: 01 c0 rjmp .+2 ; 0x7e
0000007c <.do_clear_bss_loop>:
7c: 1d 92 st X+, r1
0000007e <.do_clear_bss_start>:
7e: a0 37 cpi r26, 0x70 ; 112
80: b1 07 cpc r27, r17
82: e1 f7 brne .-8 ; 0x7c
84: d5 d1 rcall .+938 ; 0x430
86: 09 c2 rjmp .+1042 ; 0x49a
00000088 <__bad_interrupt>:
88: bb cf rjmp .-138 ; 0x0
0000008a <io_init>:
static void io_init(void)
{
// PortB //output port
PORTB = 0xff;
8a: 8f ef ldi r24, 0xFF ; 255
8c: 88 bb out 0x18, r24 ; 24
DDRB = 0xff;
8e: 87 bb out 0x17, r24 ; 23
// PortC //output port
PORTC = 0xff;
90: 85 bb out 0x15, r24 ; 21
DDRC = 0xff;
92: 84 bb out 0x14, r24 ; 20
// PortA //input port
PORTA = 0xff;
94: 8b bb out 0x1b, r24 ; 27
DDRA = 0x0;
96: 1a ba out 0x1a, r1 ; 26
// PortD //output port(PORTD2) and input port as interrupt is to be recieved
PORTD = 0x0;
98: 12 ba out 0x12, r1 ; 18
DDRD = 0xfb;
9a: 8b ef ldi r24, 0xFB ; 251
9c: 81 bb out 0x11, r24 ; 17
}
9e: 08 95 ret
000000a0 <extint_init>:
void extint_init(void)
{
// INT0 Enabled, Mode: Falling Edge
MCUCR = 0x02;
a0: 82 e0 ldi r24, 0x02 ; 2
a2: 85 bf out 0x35, r24 ; 53
GICR = 0x40;
a4: 80 e4 ldi r24, 0x40 ; 64
a6: 8b bf out 0x3b, r24 ; 59
}
a8: 08 95 ret
000000aa <__vector_1>:
ISR(SIG_INTERRUPT0)
{
aa: 1f 92 push r1
ac: 0f 92 push r0
ae: 0f b6 in r0, 0x3f ; 63
b0: 0f 92 push r0
b2: 11 24 eor r1, r1
b4: 2f 93 push r18
b6: 3f 93 push r19
b8: 4f 93 push r20
ba: 5f 93 push r21
bc: 6f 93 push r22
be: 7f 93 push r23
c0: 8f 93 push r24
c2: 9f 93 push r25
c4: af 93 push r26
c6: bf 93 push r27
c8: cf 93 push r28
ca: df 93 push r29
cc: ef 93 push r30
ce: ff 93 push r31
int led;
/*
All input switches will connected to their corresponding port lines, and also all
switches will be connnected to PORTD2 (pin no. 16).
*/
// INT0 Enabled, Mode: Falling Edge
led = PINA;
d0: 89 b3 in r24, 0x19 ; 25
d2: c8 2f mov r28, r24
d4: dd 27 eor r29, r29
MCUCR = 0x02;
d6: 82 e0 ldi r24, 0x02 ; 2
d8: 85 bf out 0x35, r24 ; 53
GICR = 0x40;
da: 80 e4 ldi r24, 0x40 ; 64
dc: 8b bf out 0x3b, r24 ; 59
if(led == 254) //if switch to 'increase the count' is pressed, PORTA0 (pin no. 40)
de: ce 3f cpi r28, 0xFE ; 254
e0: d1 05 cpc r29, r1
e2: 81 f4 brne .+32 ; 0x104
{
if(count != 9) {
e4: 80 91 66 00 lds r24, 0x0066
e8: 90 91 67 00 lds r25, 0x0067
ec: 89 30 cpi r24, 0x09 ; 9
ee: 91 05 cpc r25, r1
f0: 31 f0 breq .+12 ; 0xfe
count++;
f2: 01 96 adiw r24, 0x01 ; 1
f4: 90 93 67 00 sts 0x0067, r25
f8: 80 93 66 00 sts 0x0066, r24
decode_count(count);
fc: 73 d1 rcall .+742 ; 0x3e4
}
sei();
fe: 78 94 sei
PORTA = 0xff;
100: 8f ef ldi r24, 0xFF ; 255
102: 8b bb out 0x1b, r24 ; 27
}
if(led == 253) //if switch to 'decrease the count' is pressed, PORTA1 (pin no. 39)
104: cd 3f cpi r28, 0xFD ; 253
106: d1 05 cpc r29, r1
108: 79 f4 brne .+30 ; 0x128
{
if(count != 0) {
10a: 80 91 66 00 lds r24, 0x0066
10e: 90 91 67 00 lds r25, 0x0067
112: 00 97 sbiw r24, 0x00 ; 0
114: 31 f0 breq .+12 ; 0x122
count--;
116: 01 97 sbiw r24, 0x01 ; 1
118: 90 93 67 00 sts 0x0067, r25
11c: 80 93 66 00 sts 0x0066, r24
decode_count(count);
120: 61 d1 rcall .+706 ; 0x3e4
}
sei();
122: 78 94 sei
PORTA = 0xff;
124: 8f ef ldi r24, 0xFF ; 255
126: 8b bb out 0x1b, r24 ; 27
}
if(led == 251) //if switch to 'start the timer' is pressed, PORTA2 (pin no. 38)
128: cb 3f cpi r28, 0xFB ; 251
12a: d1 05 cpc r29, r1
12c: 61 f4 brne .+24 ; 0x146
{
if(count != 0)
12e: 80 91 66 00 lds r24, 0x0066
132: 90 91 67 00 lds r25, 0x0067
136: 89 2b or r24, r25
138: 31 f0 breq .+12 ; 0x146
{
timers_init();
13a: 64 d0 rcall .+200 ; 0x204
PORTA = 0x00; //As the 'start timer' button is pressed, all keys will be deactivated.
13c: 1b ba out 0x1b, r1 ; 27
PORTA = 0xff;
13e: 8f ef ldi r24, 0xFF ; 255
140: 8b bb out 0x1b, r24 ; 27
PORTD = 0x0;
142: 12 ba out 0x12, r1 ; 18
DDRD = 0xff;
144: 81 bb out 0x11, r24 ; 17
}
}
if(led == 247) //if switch to 'increase buzzer delay' is pressed, PORTA3 (pin no. 37)
146: c7 3f cpi r28, 0xF7 ; 247
148: d1 05 cpc r29, r1
14a: 81 f4 brne .+32 ; 0x16c
{
if(buzzer_setting != 2) {
14c: 80 91 6c 00 lds r24, 0x006C
150: 90 91 6d 00 lds r25, 0x006D
154: 82 30 cpi r24, 0x02 ; 2
156: 91 05 cpc r25, r1
158: 31 f0 breq .+12 ; 0x166
buzzer_setting++;
15a: 01 96 adiw r24, 0x01 ; 1
15c: 90 93 6d 00 sts 0x006D, r25
160: 80 93 6c 00 sts 0x006C, r24
temp(buzzer_setting);
164: 28 d0 rcall .+80 ; 0x1b6
}
sei();
166: 78 94 sei
PORTA = 0xff;
168: 8f ef ldi r24, 0xFF ; 255
16a: 8b bb out 0x1b, r24 ; 27
}
if(led == 239) //if switch to 'decrease buzzer delay' is pressed, PORTA4 (pin no. 36)
16c: cf 3e cpi r28, 0xEF ; 239
16e: d1 05 cpc r29, r1
170: 79 f4 brne .+30 ; 0x190
{
if(buzzer_setting != 0) {
172: 80 91 6c 00 lds r24, 0x006C
176: 90 91 6d 00 lds r25, 0x006D
17a: 00 97 sbiw r24, 0x00 ; 0
17c: 31 f0 breq .+12 ; 0x18a
buzzer_setting--;
17e: 01 97 sbiw r24, 0x01 ; 1
180: 90 93 6d 00 sts 0x006D, r25
184: 80 93 6c 00 sts 0x006C, r24
temp(buzzer_setting);
188: 16 d0 rcall .+44 ; 0x1b6
}
sei();
18a: 78 94 sei
PORTA = 0xff;
18c: 8f ef ldi r24, 0xFF ; 255
18e: 8b bb out 0x1b, r24 ; 27
}
}
190: ff 91 pop r31
192: ef 91 pop r30
194: df 91 pop r29
196: cf 91 pop r28
198: bf 91 pop r27
19a: af 91 pop r26
19c: 9f 91 pop r25
19e: 8f 91 pop r24
1a0: 7f 91 pop r23
1a2: 6f 91 pop r22
1a4: 5f 91 pop r21
1a6: 4f 91 pop r20
1a8: 3f 91 pop r19
1aa: 2f 91 pop r18
1ac: 0f 90 pop r0
1ae: 0f be out 0x3f, r0 ; 63
1b0: 0f 90 pop r0
1b2: 1f 90 pop r1
1b4: 18 95 reti
000001b6 <temp>:
void temp(int te) {
if(te == 0) {
1b6: 00 97 sbiw r24, 0x00 ; 0
1b8: 29 f4 brne .+10 ; 0x1c4
PORTB = 0x01;
1ba: 81 e0 ldi r24, 0x01 ; 1
1bc: 88 bb out 0x18, r24 ; 24
offtime = 3;
1be: 83 e0 ldi r24, 0x03 ; 3
1c0: 90 e0 ldi r25, 0x00 ; 0
1c2: 07 c0 rjmp .+14 ; 0x1d2
offtimetemp = 3;
}
else if(te == 1) {
1c4: 81 30 cpi r24, 0x01 ; 1
1c6: 91 05 cpc r25, r1
1c8: 69 f4 brne .+26 ; 0x1e4
PORTB = 0x02;
1ca: 82 e0 ldi r24, 0x02 ; 2
1cc: 88 bb out 0x18, r24 ; 24
offtime = 4;
1ce: 84 e0 ldi r24, 0x04 ; 4
1d0: 90 e0 ldi r25, 0x00 ; 0
1d2: 90 93 61 00 sts 0x0061, r25
1d6: 80 93 60 00 sts 0x0060, r24
offtimetemp = 4;
1da: 90 93 63 00 sts 0x0063, r25
1de: 80 93 62 00 sts 0x0062, r24
}
else if(te == 2) {
PORTB = 0x04;
offtime = 5;
offtimetemp = 5;
}
}
1e2: 08 95 ret
1e4: 02 97 sbiw r24, 0x02 ; 2
1e6: 61 f4 brne .+24 ; 0x200
1e8: 84 e0 ldi r24, 0x04 ; 4
1ea: 88 bb out 0x18, r24 ; 24
1ec: 85 e0 ldi r24, 0x05 ; 5
1ee: 90 e0 ldi r25, 0x00 ; 0
1f0: 90 93 61 00 sts 0x0061, r25
1f4: 80 93 60 00 sts 0x0060, r24
1f8: 90 93 63 00 sts 0x0063, r25
1fc: 80 93 62 00 sts 0x0062, r24
200: 08 95 ret
202: 08 95 ret
00000204 <timers_init>:
void timers_init(void)
{
// Timer/Counter1 Clock source: T1 Falling Edge
// Timer/Counter1 Mode: Normal
// Timer/Counter1 Output: A: Disconnected, B: Disconnected //0.5 second
OCR1A = 0x1e84;
204: 84 e8 ldi r24, 0x84 ; 132
206: 9e e1 ldi r25, 0x1E ; 30
208: 9b bd out 0x2b, r25 ; 43
20a: 8a bd out 0x2a, r24 ; 42
TCNT1 = 0xe17c;
20c: 8c e7 ldi r24, 0x7C ; 124
20e: 91 ee ldi r25, 0xE1 ; 225
210: 9d bd out 0x2d, r25 ; 45
212: 8c bd out 0x2c, r24 ; 44
TCCR1B = 0x04;
214: 84 e0 ldi r24, 0x04 ; 4
216: 8e bd out 0x2e, r24 ; 46
TIMSK = 0x14;
218: 84 e1 ldi r24, 0x14 ; 20
21a: 89 bf out 0x39, r24 ; 57
}
21c: 08 95 ret
0000021e <__vector_6>:
ISR(SIG_OUTPUT_COMPARE1A)
{
21e: 1f 92 push r1
220: 0f 92 push r0
222: 0f b6 in r0, 0x3f ; 63
224: 0f 92 push r0
226: 11 24 eor r1, r1
228: 2f 93 push r18
22a: 3f 93 push r19
22c: 4f 93 push r20
22e: 5f 93 push r21
230: 6f 93 push r22
232: 7f 93 push r23
234: 8f 93 push r24
236: 9f 93 push r25
238: af 93 push r26
23a: bf 93 push r27
23c: ef 93 push r30
23e: ff 93 push r31
int i;
// Timer/Counter1 Clock source: T1 Falling Edge
// Timer/Counter1 Mode: Normal
// Timer/Counter1 Output: A: Disconnected, B: Disconnected
timer_count++;
240: 20 91 68 00 lds r18, 0x0068
244: 30 91 69 00 lds r19, 0x0069
248: 2f 5f subi r18, 0xFF ; 255
24a: 3f 4f sbci r19, 0xFF ; 255
24c: 30 93 69 00 sts 0x0069, r19
250: 20 93 68 00 sts 0x0068, r18
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -