📄 spokepov.lss
字号:
228: 1c bc out 0x2c, r1 ; 44
22a: 80 91 8b 00 lds r24, 0x008B
22e: 90 91 8c 00 lds r25, 0x008C
232: 8f 3f cpi r24, 0xFF ; 255
234: 91 05 cpc r25, r1
236: 08 f5 brcc .+66 ; 0x27a <__vector_2+0x86>
238: 80 91 8b 00 lds r24, 0x008B
23c: 90 91 8c 00 lds r25, 0x008C
240: 04 97 sbiw r24, 0x04 ; 4
242: d8 f0 brcs .+54 ; 0x27a <__vector_2+0x86>
244: 80 91 8b 00 lds r24, 0x008B
248: 90 91 8c 00 lds r25, 0x008C
24c: 98 2f mov r25, r24
24e: 88 27 eor r24, r24
250: 22 b7 in r18, 0x32 ; 50
252: 33 27 eor r19, r19
254: 82 2b or r24, r18
256: 93 2b or r25, r19
258: 9b bd out 0x2b, r25 ; 43
25a: 8a bd out 0x2a, r24 ; 42
25c: 12 be out 0x32, r1 ; 50
25e: 8f e0 ldi r24, 0x0F ; 15
260: 80 93 84 00 sts 0x0084, r24
264: 80 93 83 00 sts 0x0083, r24
268: 10 92 82 00 sts 0x0082, r1
26c: 8e b5 in r24, 0x2e ; 46
26e: 81 60 ori r24, 0x01 ; 1
270: 8e bd out 0x2e, r24 ; 46
272: 89 b7 in r24, 0x39 ; 57
274: 80 64 ori r24, 0x40 ; 64
276: 89 bf out 0x39, r24 ; 57
278: 05 c0 rjmp .+10 ; 0x284 <__vector_2+0x90>
27a: 82 e0 ldi r24, 0x02 ; 2
27c: 9d df rcall .-198 ; 0x1b8 <set_led>
27e: 8e b5 in r24, 0x2e ; 46
280: 8e 7f andi r24, 0xFE ; 254
282: 8e bd out 0x2e, r24 ; 46
284: 10 92 8c 00 sts 0x008C, r1
288: 10 92 8b 00 sts 0x008B, r1
28c: 10 92 8a 00 sts 0x008A, r1
290: c3 98 cbi 0x18, 3 ; 24
292: ff 91 pop r31
294: ef 91 pop r30
296: bf 91 pop r27
298: af 91 pop r26
29a: 9f 91 pop r25
29c: 8f 91 pop r24
29e: 7f 91 pop r23
2a0: 6f 91 pop r22
2a2: 5f 91 pop r21
2a4: 4f 91 pop r20
2a6: 3f 91 pop r19
2a8: 2f 91 pop r18
2aa: 0f 90 pop r0
2ac: 0f be out 0x3f, r0 ; 63
2ae: 0f 90 pop r0
2b0: 1f 90 pop r1
2b2: 18 95 reti
000002b4 <__vector_4>:
2b4: 1f 92 push r1
2b6: 0f 92 push r0
2b8: 0f b6 in r0, 0x3f ; 63
2ba: 0f 92 push r0
2bc: 11 24 eor r1, r1
2be: ef 92 push r14
2c0: ff 92 push r15
2c2: 0f 93 push r16
2c4: 1f 93 push r17
2c6: 2f 93 push r18
2c8: 3f 93 push r19
2ca: 4f 93 push r20
2cc: 5f 93 push r21
2ce: 6f 93 push r22
2d0: 7f 93 push r23
2d2: 8f 93 push r24
2d4: 9f 93 push r25
2d6: af 93 push r26
2d8: bf 93 push r27
2da: cf 93 push r28
2dc: df 93 push r29
2de: ef 93 push r30
2e0: ff 93 push r31
2e2: 78 94 sei
2e4: c1 9a sbi 0x18, 1 ; 24
2e6: 00 91 87 00 lds r16, 0x0087
2ea: 10 91 88 00 lds r17, 0x0088
2ee: c0 91 85 00 lds r28, 0x0085
2f2: d0 91 86 00 lds r29, 0x0086
2f6: e0 90 84 00 lds r14, 0x0084
2fa: f0 90 83 00 lds r15, 0x0083
2fe: 80 91 8b 00 lds r24, 0x008B
302: 90 91 8c 00 lds r25, 0x008C
306: 82 56 subi r24, 0x62 ; 98
308: 92 40 sbci r25, 0x02 ; 2
30a: 08 f0 brcs .+2 ; 0x30e <__vector_4+0x5a>
30c: 66 c0 rjmp .+204 ; 0x3da <__vector_4+0x126>
30e: d8 9a sbi 0x1b, 0 ; 27
310: f3 94 inc r15
312: 80 e1 ldi r24, 0x10 ; 16
314: f8 16 cp r15, r24
316: c9 f5 brne .+114 ; 0x38a <__vector_4+0xd6>
318: ff 24 eor r15, r15
31a: 8e 2d mov r24, r14
31c: 99 27 eor r25, r25
31e: 01 96 adiw r24, 0x01 ; 1
320: 28 2f mov r18, r24
322: 39 2f mov r19, r25
324: 80 7f andi r24, 0xF0 ; 240
326: 91 70 andi r25, 0x01 ; 1
328: e2 2e mov r14, r18
32a: e8 1a sub r14, r24
32c: ae 2d mov r26, r14
32e: bb 27 eor r27, r27
330: fb 2f mov r31, r27
332: ea 2f mov r30, r26
334: ef 58 subi r30, 0x8F ; 143
336: ff 4f sbci r31, 0xFF ; 255
338: e0 81 ld r30, Z
33a: e0 52 subi r30, 0x20 ; 32
33c: 8e 2f mov r24, r30
33e: 86 95 lsr r24
340: 08 2f mov r16, r24
342: 11 27 eor r17, r17
344: 66 e0 ldi r22, 0x06 ; 6
346: 00 0f add r16, r16
348: 11 1f adc r17, r17
34a: 6a 95 dec r22
34c: e1 f7 brne .-8 ; 0x346 <__vector_4+0x92>
34e: 8e 2f mov r24, r30
350: 99 27 eor r25, r25
352: 81 70 andi r24, 0x01 ; 1
354: 90 70 andi r25, 0x00 ; 0
356: 88 0f add r24, r24
358: 99 1f adc r25, r25
35a: 08 2b or r16, r24
35c: 19 2b or r17, r25
35e: a0 5a subi r26, 0xA0 ; 160
360: bf 4f sbci r27, 0xFF ; 255
362: ec 91 ld r30, X
364: e0 52 subi r30, 0x20 ; 32
366: 8e 2f mov r24, r30
368: 86 95 lsr r24
36a: c8 2f mov r28, r24
36c: dd 27 eor r29, r29
36e: 46 e0 ldi r20, 0x06 ; 6
370: cc 0f add r28, r28
372: dd 1f adc r29, r29
374: 4a 95 dec r20
376: e1 f7 brne .-8 ; 0x370 <__vector_4+0xbc>
378: 8e 2f mov r24, r30
37a: 99 27 eor r25, r25
37c: 81 70 andi r24, 0x01 ; 1
37e: 90 70 andi r25, 0x00 ; 0
380: 88 0f add r24, r24
382: 99 1f adc r25, r25
384: c8 2b or r28, r24
386: d9 2b or r29, r25
388: 03 c0 rjmp .+6 ; 0x390 <__vector_4+0xdc>
38a: 0c 5f subi r16, 0xFC ; 252
38c: 1f 4f sbci r17, 0xFF ; 255
38e: 24 96 adiw r28, 0x04 ; 4
390: 42 e0 ldi r20, 0x02 ; 2
392: 6d e8 ldi r22, 0x8D ; 141
394: 70 e0 ldi r23, 0x00 ; 0
396: 91 2f mov r25, r17
398: 80 2f mov r24, r16
39a: 9c d1 rcall .+824 ; 0x6d4 <spieeprom_read>
39c: 42 e0 ldi r20, 0x02 ; 2
39e: 6f e8 ldi r22, 0x8F ; 143
3a0: 70 e0 ldi r23, 0x00 ; 0
3a2: 8c 2f mov r24, r28
3a4: 9d 2f mov r25, r29
3a6: 96 d1 rcall .+812 ; 0x6d4 <spieeprom_read>
3a8: f4 de rcall .-536 ; 0x192 <clock_leds>
3aa: f8 94 cli
3ac: 80 91 82 00 lds r24, 0x0082
3b0: 88 23 and r24, r24
3b2: 69 f0 breq .+26 ; 0x3ce <__vector_4+0x11a>
3b4: 10 93 88 00 sts 0x0088, r17
3b8: 00 93 87 00 sts 0x0087, r16
3bc: d0 93 86 00 sts 0x0086, r29
3c0: c0 93 85 00 sts 0x0085, r28
3c4: e0 92 84 00 sts 0x0084, r14
3c8: f0 92 83 00 sts 0x0083, r15
3cc: 03 c0 rjmp .+6 ; 0x3d4 <__vector_4+0x120>
3ce: 81 e0 ldi r24, 0x01 ; 1
3d0: 80 93 82 00 sts 0x0082, r24
3d4: 78 94 sei
3d6: d8 98 cbi 0x1b, 0 ; 27
3d8: 09 c0 rjmp .+18 ; 0x3ec <__vector_4+0x138>
3da: d9 9a sbi 0x1b, 1 ; 27
3dc: f8 94 cli
3de: 8e b5 in r24, 0x2e ; 46
3e0: 88 7f andi r24, 0xF8 ; 248
3e2: 8e bd out 0x2e, r24 ; 46
3e4: 78 94 sei
3e6: 82 e0 ldi r24, 0x02 ; 2
3e8: e7 de rcall .-562 ; 0x1b8 <set_led>
3ea: d9 98 cbi 0x1b, 1 ; 27
3ec: c1 98 cbi 0x18, 1 ; 24
3ee: ff 91 pop r31
3f0: ef 91 pop r30
3f2: df 91 pop r29
3f4: cf 91 pop r28
3f6: bf 91 pop r27
3f8: af 91 pop r26
3fa: 9f 91 pop r25
3fc: 8f 91 pop r24
3fe: 7f 91 pop r23
400: 6f 91 pop r22
402: 5f 91 pop r21
404: 4f 91 pop r20
406: 3f 91 pop r19
408: 2f 91 pop r18
40a: 1f 91 pop r17
40c: 0f 91 pop r16
40e: ff 90 pop r15
410: ef 90 pop r14
412: 0f 90 pop r0
414: 0f be out 0x3f, r0 ; 63
416: 0f 90 pop r0
418: 1f 90 pop r1
41a: 18 95 reti
0000041c <set_all>:
41c: 80 93 90 00 sts 0x0090, r24
420: 80 93 8f 00 sts 0x008F, r24
424: 80 93 8e 00 sts 0x008E, r24
428: 80 93 8d 00 sts 0x008D, r24
42c: b2 de rcall .-668 ; 0x192 <clock_leds>
42e: 08 95 ret
00000430 <test_leds>:
430: cf 93 push r28
432: c0 e0 ldi r28, 0x00 ; 0
434: 8c 2f mov r24, r28
436: c0 de rcall .-640 ; 0x1b8 <set_led>
438: 8a e0 ldi r24, 0x0A ; 10
43a: 3a de rcall .-908 ; 0xb0 <delay_ms>
43c: cf 5f subi r28, 0xFF ; 255
43e: c1 32 cpi r28, 0x21 ; 33
440: c8 f3 brcs .-14 ; 0x434 <test_leds+0x4>
442: 8a ea ldi r24, 0xAA ; 170
444: eb df rcall .-42 ; 0x41c <set_all>
446: 82 e3 ldi r24, 0x32 ; 50
448: 33 de rcall .-922 ; 0xb0 <delay_ms>
44a: 85 e5 ldi r24, 0x55 ; 85
44c: e7 df rcall .-50 ; 0x41c <set_all>
44e: 85 e5 ldi r24, 0x55 ; 85
450: e5 df rcall .-54 ; 0x41c <set_all>
452: 82 e3 ldi r24, 0x32 ; 50
454: 2d de rcall .-934 ; 0xb0 <delay_ms>
456: 80 e0 ldi r24, 0x00 ; 0
458: e1 df rcall .-62 ; 0x41c <set_all>
45a: 8f ef ldi r24, 0xFF ; 255
45c: 29 de rcall .-942 ; 0xb0 <delay_ms>
45e: 8f ef ldi r24, 0xFF ; 255
460: 27 de rcall .-946 ; 0xb0 <delay_ms>
462: cf 91 pop r28
464: 08 95 ret
00000466 <tx_computer_byte>:
466: 98 2f mov r25, r24
468: 1a ba out 0x1a, r1 ; 26
46a: 8f e5 ldi r24, 0x5F ; 95
46c: 87 bb out 0x17, r24 ; 23
46e: 88 e1 ldi r24, 0x18 ; 24
470: 8d b9 out 0x0d, r24 ; 13
472: 9f b9 out 0x0f, r25 ; 15
474: 80 e4 ldi r24, 0x40 ; 64
476: 8e b9 out 0x0e, r24 ; 14
478: 76 99 sbic 0x0e, 6 ; 14
47a: 11 c0 rjmp .+34 ; 0x49e <tx_computer_byte+0x38>
47c: a8 95 wdr
47e: 80 91 8b 00 lds r24, 0x008B
482: 90 91 8c 00 lds r25, 0x008C
486: 8f 5f subi r24, 0xFF ; 255
488: 9f 4f sbci r25, 0xFF ; 255
48a: 19 f4 brne .+6 ; 0x492 <tx_computer_byte+0x2c>
48c: 81 e0 ldi r24, 0x01 ; 1
48e: 80 93 89 00 sts 0x0089, r24
492: 80 91 89 00 lds r24, 0x0089
496: 88 23 and r24, r24
498: 11 f4 brne .+4 ; 0x49e <tx_computer_byte+0x38>
49a: 76 9b sbis 0x0e, 6 ; 14
49c: ef cf rjmp .-34 ; 0x47c <tx_computer_byte+0x16>
49e: 9f b1 in r25, 0x0f ; 15
4a0: 8f ed ldi r24, 0xDF ; 223
4a2: 87 bb out 0x17, r24 ; 23
4a4: 1d b8 out 0x0d, r1 ; 13
4a6: 89 2f mov r24, r25
4a8: 99 27 eor r25, r25
4aa: 08 95 ret
000004ac <internal_eeprom_read>:
// Read the internal EEPROM
uint8_t internal_eeprom_read(uint8_t addr) {
loop_until_bit_is_clear(EECR, EEWE); // Wait for last write to finish
4ac: e1 99 sbic 0x1c, 1 ; 28
4ae: fe cf rjmp .-4 ; 0x4ac <internal_eeprom_read>
EEAR = addr; // Store address to read
4b0: 8e bb out 0x1e, r24 ; 30
EECR |= _BV(EERE); // Trigger the EEPROM read - this takes only one
4b2: e0 9a sbi 0x1c, 0 ; 28
// cycle, so the result can immediately be returned!
return EEDR;
4b4: 8d b3 in r24, 0x1d ; 29
}
4b6: 99 27 eor r25, r25
4b8: 08 95 ret
000004ba <internal_eeprom_write>:
// Write the internal EEPROM
void internal_eeprom_write(uint8_t addr, uint8_t data) {
loop_until_bit_is_clear(EECR, EEWE); // Wait for last write to finish
4ba: e1 99 sbic 0x1c, 1 ; 28
4bc: fe cf rjmp .-4 ; 0x4ba <internal_eeprom_write>
EEAR = addr; // Store address to write
4be: 8e bb out 0x1e, r24 ; 30
EEDR = data; // and the data
4c0: 6d bb out 0x1d, r22 ; 29
// The following register bitflips are time-critical and must
// happen within 4 cycles of each other. For this reason,
// interrupts cannot be allowed here.
// Note: Page 19 refers to EEWE as EEPE and EEMWE as EEMPE.
// POSSIBLE BUG: EEPM{0,1} bits in EECR define what programming
// mode the EEPROM is in. They do not have a defined initial
// value if the EEPROM is programming when a reset comes in.
// This is a tiny time window, but should they be explicitly
// cleared?
cli(); // Turn off interrupts
4c2: f8 94 cli
EECR |= _BV(EEMWE); // Master enable, unlocks ability to write to EEPROM
4c4: e2 9a sbi 0x1c, 2 ; 28
EECR |= _BV(EEWE); // Program enable, actually does it.
4c6: e1 9a sbi 0x1c, 1 ; 28
sei(); // Turn on interrupts again
4c8: 78 94 sei
4ca: 08 95 ret
000004cc <main>:
4cc: ce ec ldi r28, 0xCE ; 206
4ce: d0 e0 ldi r29, 0x00 ; 0
4d0: de bf out 0x3e, r29 ; 62
4d2: cd bf out 0x3d, r28 ; 61
4d4: 04 b7 in r16, 0x34 ; 52
4d6: 14 be out 0x34, r1 ; 52
4d8: 8e e0 ldi r24, 0x0E ; 14
4da: 81 bd out 0x21, r24 ; 33
4dc: 33 de rcall .-922 ; 0x144 <ioinit>
4de: 00 fd sbrc r16, 0
4e0: a7 df rcall .-178 ; 0x430 <test_leds>
4e2: 80 2f mov r24, r16
4e4: 8e 5f subi r24, 0xFE ; 254
4e6: 68 de rcall .-816 ; 0x1b8 <set_led>
4e8: 78 94 sei
4ea: 78 94 sei
4ec: 80 e0 ldi r24, 0x00 ; 0
4ee: bb df rcall .-138 ; 0x466 <tx_computer_byte>
4f0: 08 2f mov r16, r24
4f2: 88 23 and r24, r24
4f4: 09 f4 brne .+2 ; 0x4f8 <main+0x2c>
4f6: 91 c0 rjmp .+290 ; 0x61a <main+0x14e>
4f8: f8 94 cli
4fa: 10 92 8c 00 sts 0x008C, r1
4fe: 10 92 8b 00 sts 0x008B, r1
502: 99 27 eor r25, r25
504: 86 38 cpi r24, 0x86 ; 134
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -