📄 main.lss
字号:
810: 50 91 1d 01 lds r21, 0x011D
814: 60 91 1e 01 lds r22, 0x011E
818: 70 91 1f 01 lds r23, 0x011F
81c: 8f e0 ldi r24, 0x0F ; 15
81e: 91 e0 ldi r25, 0x01 ; 1
820: 54 de rcall .-856 ; 0x4ca <htobcd5>
822: 80 91 11 01 lds r24, 0x0111
826: 80 68 ori r24, 0x80 ; 128
828: 80 93 11 01 sts 0x0111, r24
82c: 45 98 cbi 0x08, 5 ; 8
82e: 44 9a sbi 0x08, 4 ; 8
830: 5d 9a sbi 0x0b, 5 ; 11
832: 80 91 01 01 lds r24, 0x0101
836: 8b 7f andi r24, 0xFB ; 251
838: 80 93 01 01 sts 0x0101, r24
83c: 48 c0 rjmp .+144 ; 0x8ce <proc_display+0x146>
83e: 20 50 subi r18, 0x00 ; 0
840: 31 4e sbci r19, 0xE1 ; 225
842: 45 4f sbci r20, 0xF5 ; 245
844: 55 40 sbci r21, 0x05 ; 5
846: cd cf rjmp .-102 ; 0x7e2 <proc_display+0x5a>
848: 40 91 2e 01 lds r20, 0x012E
84c: 55 27 eor r21, r21
84e: 66 27 eor r22, r22
850: 77 27 eor r23, r23
852: 8f e0 ldi r24, 0x0F ; 15
854: 91 e0 ldi r25, 0x01 ; 1
856: 39 de rcall .-910 ; 0x4ca <htobcd5>
858: 8f e0 ldi r24, 0x0F ; 15
85a: 80 93 0f 01 sts 0x010F, r24
85e: 80 93 10 01 sts 0x0110, r24
862: 80 93 11 01 sts 0x0111, r24
866: 80 91 01 01 lds r24, 0x0101
86a: 8b 7f andi r24, 0xFB ; 251
86c: 80 93 01 01 sts 0x0101, r24
870: 2e c0 rjmp .+92 ; 0x8ce <proc_display+0x146>
872: 92 30 cpi r25, 0x02 ; 2
874: d1 f7 brne .-12 ; 0x86a <proc_display+0xe2>
876: 40 91 1c 01 lds r20, 0x011C
87a: 50 91 1d 01 lds r21, 0x011D
87e: 60 91 1e 01 lds r22, 0x011E
882: 70 91 1f 01 lds r23, 0x011F
886: 8f e0 ldi r24, 0x0F ; 15
888: 91 e0 ldi r25, 0x01 ; 1
88a: 1f de rcall .-962 ; 0x4ca <htobcd5>
88c: 80 91 11 01 lds r24, 0x0111
890: 80 68 ori r24, 0x80 ; 128
892: 80 93 11 01 sts 0x0111, r24
896: 45 9a sbi 0x08, 5 ; 8
898: 44 9a sbi 0x08, 4 ; 8
89a: 5d 98 cbi 0x0b, 5 ; 11
89c: 80 91 01 01 lds r24, 0x0101
8a0: e4 cf rjmp .-56 ; 0x86a <proc_display+0xe2>
8a2: 40 91 1c 01 lds r20, 0x011C
8a6: 50 91 1d 01 lds r21, 0x011D
8aa: 60 91 1e 01 lds r22, 0x011E
8ae: 70 91 1f 01 lds r23, 0x011F
8b2: 8f e0 ldi r24, 0x0F ; 15
8b4: 91 e0 ldi r25, 0x01 ; 1
8b6: 09 de rcall .-1006 ; 0x4ca <htobcd5>
8b8: 80 91 11 01 lds r24, 0x0111
8bc: 80 68 ori r24, 0x80 ; 128
8be: 80 93 11 01 sts 0x0111, r24
8c2: 45 9a sbi 0x08, 5 ; 8
8c4: 44 98 cbi 0x08, 4 ; 8
8c6: 5d 9a sbi 0x0b, 5 ; 11
8c8: 80 91 01 01 lds r24, 0x0101
8cc: ce cf rjmp .-100 ; 0x86a <proc_display+0xe2>
8ce: 1f 91 pop r17
8d0: 0f 91 pop r16
8d2: ff 90 pop r15
8d4: ef 90 pop r14
8d6: 08 95 ret
000008d8 <proc_key>:
8d8: cf 93 push r28
8da: df 93 push r29
8dc: d0 d1 rcall .+928 ; 0xc7e <read_key>
8de: 88 23 and r24, r24
8e0: a9 f0 breq .+42 ; 0x90c <proc_key+0x34>
8e2: 80 91 01 01 lds r24, 0x0101
8e6: 83 fd sbrc r24, 3
8e8: 1a c0 rjmp .+52 ; 0x91e <proc_key+0x46>
8ea: 80 91 0e 01 lds r24, 0x010E
8ee: c8 2f mov r28, r24
8f0: dd 27 eor r29, r29
8f2: 80 91 0e 01 lds r24, 0x010E
8f6: 99 27 eor r25, r25
8f8: 8c 1b sub r24, r28
8fa: 9d 0b sbc r25, r29
8fc: 03 97 sbiw r24, 0x03 ; 3
8fe: 1c f4 brge .+6 ; 0x906 <proc_key+0x2e>
900: be d1 rcall .+892 ; 0xc7e <read_key>
902: 81 30 cpi r24, 0x01 ; 1
904: b1 f3 breq .-20 ; 0x8f2 <proc_key+0x1a>
906: bb d1 rcall .+886 ; 0xc7e <read_key>
908: 81 30 cpi r24, 0x01 ; 1
90a: 69 f0 breq .+26 ; 0x926 <proc_key+0x4e>
90c: 80 91 01 01 lds r24, 0x0101
910: 87 7e andi r24, 0xE7 ; 231
912: 80 93 01 01 sts 0x0101, r24
916: 8e e1 ldi r24, 0x1E ; 30
918: 80 93 2e 01 sts 0x012E, r24
91c: 14 c0 rjmp .+40 ; 0x946 <proc_key+0x6e>
91e: 80 61 ori r24, 0x10 ; 16
920: 80 93 01 01 sts 0x0101, r24
924: 10 c0 rjmp .+32 ; 0x946 <proc_key+0x6e>
926: 90 91 01 01 lds r25, 0x0101
92a: 80 91 00 01 lds r24, 0x0100
92e: 8f 5f subi r24, 0xFF ; 255
930: 80 93 00 01 sts 0x0100, r24
934: 83 30 cpi r24, 0x03 ; 3
936: 21 f0 breq .+8 ; 0x940 <proc_key+0x68>
938: 9c 60 ori r25, 0x0C ; 12
93a: 90 93 01 01 sts 0x0101, r25
93e: 03 c0 rjmp .+6 ; 0x946 <proc_key+0x6e>
940: 10 92 00 01 sts 0x0100, r1
944: f9 cf rjmp .-14 ; 0x938 <proc_key+0x60>
946: df 91 pop r29
948: cf 91 pop r28
94a: 08 95 ret
0000094c <proc_save>:
94c: 8f 92 push r8
94e: 9f 92 push r9
950: af 92 push r10
952: bf 92 push r11
954: cf 92 push r12
956: df 92 push r13
958: ef 92 push r14
95a: ff 92 push r15
95c: 0f 93 push r16
95e: 1f 93 push r17
960: cf 93 push r28
962: df 93 push r29
964: cd b7 in r28, 0x3d ; 61
966: de b7 in r29, 0x3e ; 62
968: 27 97 sbiw r28, 0x07 ; 7
96a: 0f b6 in r0, 0x3f ; 63
96c: f8 94 cli
96e: de bf out 0x3e, r29 ; 62
970: 0f be out 0x3f, r0 ; 63
972: cd bf out 0x3d, r28 ; 61
974: 80 91 01 01 lds r24, 0x0101
978: 81 ff sbrs r24, 1
97a: c9 c0 rjmp .+402 ; 0xb0e <proc_save+0x1c2>
97c: f8 94 cli
97e: 60 91 28 01 lds r22, 0x0128
982: 70 91 29 01 lds r23, 0x0129
986: 80 91 2a 01 lds r24, 0x012A
98a: 90 91 2b 01 lds r25, 0x012B
98e: 68 5f subi r22, 0xF8 ; 248
990: 78 4f sbci r23, 0xF8 ; 248
992: 8f 4f sbci r24, 0xFF ; 255
994: 9f 4f sbci r25, 0xFF ; 255
996: b1 e3 ldi r27, 0x31 ; 49
998: cb 2e mov r12, r27
99a: b1 e0 ldi r27, 0x01 ; 1
99c: db 2e mov r13, r27
99e: e0 90 31 01 lds r14, 0x0131
9a2: f0 90 32 01 lds r15, 0x0132
9a6: 00 91 33 01 lds r16, 0x0133
9aa: 10 91 34 01 lds r17, 0x0134
9ae: 20 e1 ldi r18, 0x10 ; 16
9b0: 3e e0 ldi r19, 0x0E ; 14
9b2: 40 e0 ldi r20, 0x00 ; 0
9b4: 50 e0 ldi r21, 0x00 ; 0
9b6: a9 d2 rcall .+1362 ; 0xf0a <__udivmodsi4>
9b8: 2e 0d add r18, r14
9ba: 3f 1d adc r19, r15
9bc: 40 1f adc r20, r16
9be: 51 1f adc r21, r17
9c0: 20 93 31 01 sts 0x0131, r18
9c4: 30 93 32 01 sts 0x0132, r19
9c8: 40 93 33 01 sts 0x0133, r20
9cc: 50 93 34 01 sts 0x0134, r21
9d0: 20 30 cpi r18, 0x00 ; 0
9d2: 81 ee ldi r24, 0xE1 ; 225
9d4: 38 07 cpc r19, r24
9d6: 85 ef ldi r24, 0xF5 ; 245
9d8: 48 07 cpc r20, r24
9da: 85 e0 ldi r24, 0x05 ; 5
9dc: 58 07 cpc r21, r24
9de: 08 f0 brcs .+2 ; 0x9e2 <proc_save+0x96>
9e0: 6a c0 rjmp .+212 ; 0xab6 <proc_save+0x16a>
9e2: 10 92 28 01 sts 0x0128, r1
9e6: 10 92 29 01 sts 0x0129, r1
9ea: 10 92 2a 01 sts 0x012A, r1
9ee: 10 92 2b 01 sts 0x012B, r1
9f2: 10 92 2d 01 sts 0x012D, r1
9f6: 10 92 2c 01 sts 0x012C, r1
9fa: 10 92 35 01 sts 0x0135, r1
9fe: 65 e0 ldi r22, 0x05 ; 5
a00: c6 01 movw r24, r12
a02: be dd rcall .-1156 ; 0x580 <checksum>
a04: 80 93 35 01 sts 0x0135, r24
a08: 40 91 2f 01 lds r20, 0x012F
a0c: 50 91 30 01 lds r21, 0x0130
a10: 4a 01 movw r8, r20
a12: 91 e0 ldi r25, 0x01 ; 1
a14: 4f 3f cpi r20, 0xFF ; 255
a16: 59 07 cpc r21, r25
a18: 08 f0 brcs .+2 ; 0xa1c <proc_save+0xd0>
a1a: 6f c0 rjmp .+222 ; 0xafa <proc_save+0x1ae>
a1c: 5a 01 movw r10, r20
a1e: f3 e0 ldi r31, 0x03 ; 3
a20: ef 2e mov r14, r31
a22: f1 2c mov r15, r1
a24: ec 0e add r14, r28
a26: fd 1e adc r15, r29
a28: 10 e0 ldi r17, 0x00 ; 0
a2a: f9 99 sbic 0x1f, 1 ; 31
a2c: fe cf rjmp .-4 ; 0xa2a <proc_save+0xde>
{
uint8_t len;
len = (uint8_t) n;
__asm__ __volatile__ (
a2e: 85 e0 ldi r24, 0x05 ; 5
a30: da 01 movw r26, r20
a32: f6 01 movw r30, r12
a34: 18 2e mov r1, r24
a36: 9a d2 rcall .+1332 ; 0xf6c <__eeprom_write_block_1F2021>
a38: f9 99 sbic 0x1f, 1 ; 31
a3a: fe cf rjmp .-4 ; 0xa38 <proc_save+0xec>
a3c: a0 91 2f 01 lds r26, 0x012F
a40: b0 91 30 01 lds r27, 0x0130
/* Needed in order to truncate to 8 bit. */
uint8_t len;
len = (uint8_t) n;
__asm__ __volatile__ (
a44: 85 e0 ldi r24, 0x05 ; 5
a46: f7 01 movw r30, r14
a48: 18 2e mov r1, r24
a4a: 81 d2 rcall .+1282 ; 0xf4e <__eeprom_read_block_1F2021>
a4c: 65 e0 ldi r22, 0x05 ; 5
a4e: c7 01 movw r24, r14
a50: 97 dd rcall .-1234 ; 0x580 <checksum>
a52: 88 23 and r24, r24
a54: 41 f0 breq .+16 ; 0xa66 <proc_save+0x11a>
a56: 1f 5f subi r17, 0xFF ; 255
a58: 13 30 cpi r17, 0x03 ; 3
a5a: 70 f4 brcc .+28 ; 0xa78 <proc_save+0x12c>
a5c: 40 91 2f 01 lds r20, 0x012F
a60: 50 91 30 01 lds r21, 0x0130
a64: e2 cf rjmp .-60 ; 0xa2a <proc_save+0xde>
a66: f9 99 sbic 0x1f, 1 ; 31
a68: fe cf rjmp .-4 ; 0xa66 <proc_save+0x11a>
a6a: 78 94 sei
a6c: 80 91 01 01 lds r24, 0x0101
a70: 8d 7f andi r24, 0xFD ; 253
a72: 80 93 01 01 sts 0x0101, r24
a76: 4b c0 rjmp .+150 ; 0xb0e <proc_save+0x1c2>
a78: 13 30 cpi r17, 0x03 ; 3
a7a: 51 f1 breq .+84 ; 0xad0 <proc_save+0x184>
a7c: e5 e0 ldi r30, 0x05 ; 5
a7e: f0 e0 ldi r31, 0x00 ; 0
a80: ae 0e add r10, r30
a82: bf 1e adc r11, r31
a84: 8e ef ldi r24, 0xFE ; 254
a86: 91 e0 ldi r25, 0x01 ; 1
a88: 88 19 sub r24, r8
a8a: 99 09 sbc r25, r9
a8c: 65 e0 ldi r22, 0x05 ; 5
a8e: 70 e0 ldi r23, 0x00 ; 0
a90: 28 d2 rcall .+1104 ; 0xee2 <__udivmodhi4>
a92: cb 01 movw r24, r22
a94: 88 0f add r24, r24
a96: 99 1f adc r25, r25
a98: 88 0f add r24, r24
a9a: 99 1f adc r25, r25
a9c: 86 0f add r24, r22
a9e: 97 1f adc r25, r23
aa0: 88 0d add r24, r8
aa2: 99 1d adc r25, r9
aa4: 05 96 adiw r24, 0x05 ; 5
aa6: a8 16 cp r10, r24
aa8: b9 06 cpc r11, r25
aaa: 39 f1 breq .+78 ; 0xafa <proc_save+0x1ae>
aac: 40 91 2f 01 lds r20, 0x012F
ab0: 50 91 30 01 lds r21, 0x0130
ab4: b9 cf rjmp .-142 ; 0xa28 <proc_save+0xdc>
ab6: 20 50 subi r18, 0x00 ; 0
ab8: 31 4e sbci r19, 0xE1 ; 225
aba: 45 4f sbci r20, 0xF5 ; 245
abc: 55 40 sbci r21, 0x05 ; 5
abe: 20 93 31 01 sts 0x0131, r18
ac2: 30 93 32 01 sts 0x0132, r19
ac6: 40 93 33 01 sts 0x0133, r20
aca: 50 93 34 01 sts 0x0134, r21
ace: 89 cf rjmp .-238 ; 0x9e2 <proc_save+0x96>
ad0: 40 91 2f 01 lds r20, 0x012F
ad4: 50 91 30 01 lds r21, 0x0130
ad8: 4b 5f subi r20, 0xFB ; 251
ada: 5f 4f sbci r21, 0xFF ; 255
adc: 50 93 30 01 sts 0x0130, r21
ae0: 40 93 2f 01 sts 0x012F, r20
ae4: 8f b3 in r24, 0x1f ; 31
ae6: 99 27 eor r25, r25
ae8: 9c 01 movw r18, r24
aea: 22 70 andi r18, 0x02 ; 2
aec: 30 70 andi r19, 0x00 ; 0
aee: 81 fd sbrc r24, 1
af0: f9 cf rjmp .-14 ; 0xae4 <proc_save+0x198>
void
eeprom_write_word (uint16_t *addr,uint16_t value)
{
__asm__ __volatile__ (
af2: d9 01 movw r26, r18
af4: 0a 01 movw r0, r20
af6: 35 d2 rcall .+1130 ; 0xf62 <__eeprom_write_word_1F2021>
af8: c1 cf rjmp .-126 ; 0xa7c <proc_save+0x130>
afa: e4 e1 ldi r30, 0x14 ; 20
afc: f1 e0 ldi r31, 0x01 ; 1
afe: 8e e0 ldi r24, 0x0E ; 14
b00: 81 93 st Z+, r24
b02: 91 e0 ldi r25, 0x01 ; 1
b04: ec 31 cpi r30, 0x1C ; 28
b06: f9 07 cpc r31, r25
b08: d9 f7 brne .-10 ; 0xb00 <proc_save+0x1b4>
b0a: 78 94 sei
b0c: ff cf rjmp .-2 ; 0xb0c <proc_save+0x1c0>
b0e: 27 96 adiw r28, 0x07 ; 7
b10: 0f b6 in r0, 0x3f ; 63
b12: f8 94 cli
b14: de bf out 0x3e, r29 ; 62
b16: 0f be out 0x3f, r0 ; 63
b18: cd bf out 0x3d, r28 ; 61
b1a: df 91 pop r29
b1c: cf 91 pop r28
b1e: 1f 91 pop r17
b20: 0f 91 pop r16
b22: ff 90 pop r15
b24: ef 90 pop r14
b26: df 90 pop r13
b28: cf 90 pop r12
b2a: bf 90 pop r11
b2c: af 90 pop r10
b2e: 9f 90 pop r9
b30: 8f 90 pop r8
b32: 08 95 ret
00000b34 <proc_poweroff>:
b34: 80 91 07 01 lds r24, 0x0107
b38: 84 ff sbrs r24, 4
b3a: 08 95 ret
b3c: 0b dc rcall .-2026 ; 0x354 <display_off>
b3e: 80 91 01 01 lds r24, 0x0101
b42: 82 60 ori r24, 0x02 ; 2
b44: 80 93 01 01 sts 0x0101, r24
b48: 80 91 07 01 lds r24, 0x0107
b4c: 8f 7e andi r24, 0xEF ; 239
b4e: 80 93 07 01 sts 0x0107, r24
b52: 08 95 ret
00000b54 <proc_init>:
b54: 0f 93 push r16
b56: 1f 93 push r17
b58: cf 93 push r28
b5a: df 93 push r29
b5c: 88 e1 ldi r24, 0x18 ; 24
b5e: 90 e0 ldi r25, 0x00 ; 0
b60: 2e e0 ldi r18, 0x0E ; 14
b62: 0f b6 in r0, 0x3f ; 63
b64: f8 94 cli
b66: a8 95 wdr
b68: 80 93 60 00 sts 0x0060, r24
b6c: 0f be out 0x3f, r0 ; 63
b6e: 20 93 60 00 sts 0x0060, r18
b72: be db rcall .-2180 ; 0x2f0 <init_display>
b74: 91 da rcall .-2782 ; 0x98 <init_interrupt>
b76: 80 d0 rcall .+256 ; 0xc78 <init_key>
b78: f8 94 cli
b7a: 8f b3 in r24, 0x1f ; 31
b7c: 99 27 eor r25, r25
b7e: dc 01 movw r26, r24
b80: a2 70 andi r26, 0x02 ; 2
b82: b0 70 andi r27, 0x00 ; 0
b84: 81 fd sbrc r24, 1
b86: f9 cf rjmp .-14 ; 0xb7a <proc_init+0x26>
eeprom_read_word (const uint16_t *addr)
{
uint16_t result;
__asm__ __volatile__ (
b88: e7 d1 rcall .+974 ; 0xf58 <__eeprom_read_word_1F2021>
b8a: 0f e2 ldi r16, 0x2F ; 47
b8c: 11 e0 ldi r17, 0x01 ; 1
b8e: f0 93 30 01 sts 0x0130, r31
b92: e0 93 2f 01 sts 0x012F, r30
b96: e0 50 subi r30, 0x00 ; 0
b98: f2 40 sbci r31, 0x02 ; 2
b9a: 28 f5 brcc .+74 ; 0xbe6 <proc_init+0x92>
b9c: e8 01 movw r28, r16
b9e: 22 96 adiw r28, 0x02 ; 2
ba0: 00 e0 ldi r16, 0x00 ; 0
ba2: 15 e0 ldi r17, 0x05 ; 5
ba4: f9 99 sbic 0x1f, 1 ; 31
ba6: fe cf rjmp .-4 ; 0xba4 <proc_init+0x50>
ba8: a0 91 2f 01 lds r26, 0x012F
bac: b0 91 30 01 lds r27, 0x0130
/* Needed in order to truncate to
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -