📄 main.lss
字号:
838: 80 93 11 01 sts 0x0111, r24
83c: 45 9a sbi 0x08, 5 ; 8
83e: 44 9a sbi 0x08, 4 ; 8
840: 5d 98 cbi 0x0b, 5 ; 11
842: 80 91 01 01 lds r24, 0x0101
846: e4 cf rjmp .-56 ; 0x810 <proc_display+0xe2>
848: 40 91 20 01 lds r20, 0x0120
84c: 50 91 21 01 lds r21, 0x0121
850: 60 91 22 01 lds r22, 0x0122
854: 70 91 23 01 lds r23, 0x0123
858: 8f e0 ldi r24, 0x0F ; 15
85a: 91 e0 ldi r25, 0x01 ; 1
85c: 33 de rcall .-922 ; 0x4c4 <htobcd5>
85e: 80 91 12 01 lds r24, 0x0112
862: 80 68 ori r24, 0x80 ; 128
864: 80 93 12 01 sts 0x0112, r24
868: 45 9a sbi 0x08, 5 ; 8
86a: 44 98 cbi 0x08, 4 ; 8
86c: 5d 9a sbi 0x0b, 5 ; 11
86e: 80 91 01 01 lds r24, 0x0101
872: ce cf rjmp .-100 ; 0x810 <proc_display+0xe2>
874: 1f 91 pop r17
876: 0f 91 pop r16
878: ff 90 pop r15
87a: ef 90 pop r14
87c: 08 95 ret
0000087e <proc_key>:
87e: cf 93 push r28
880: df 93 push r29
882: d0 d1 rcall .+928 ; 0xc24 <read_key>
884: 88 23 and r24, r24
886: a9 f0 breq .+42 ; 0x8b2 <proc_key+0x34>
888: 80 91 01 01 lds r24, 0x0101
88c: 83 fd sbrc r24, 3
88e: 1a c0 rjmp .+52 ; 0x8c4 <proc_key+0x46>
890: 80 91 0e 01 lds r24, 0x010E
894: c8 2f mov r28, r24
896: dd 27 eor r29, r29
898: 80 91 0e 01 lds r24, 0x010E
89c: 99 27 eor r25, r25
89e: 8c 1b sub r24, r28
8a0: 9d 0b sbc r25, r29
8a2: 03 97 sbiw r24, 0x03 ; 3
8a4: 1c f4 brge .+6 ; 0x8ac <proc_key+0x2e>
8a6: be d1 rcall .+892 ; 0xc24 <read_key>
8a8: 81 30 cpi r24, 0x01 ; 1
8aa: b1 f3 breq .-20 ; 0x898 <proc_key+0x1a>
8ac: bb d1 rcall .+886 ; 0xc24 <read_key>
8ae: 81 30 cpi r24, 0x01 ; 1
8b0: 69 f0 breq .+26 ; 0x8cc <proc_key+0x4e>
8b2: 80 91 01 01 lds r24, 0x0101
8b6: 87 7e andi r24, 0xE7 ; 231
8b8: 80 93 01 01 sts 0x0101, r24
8bc: 8e e1 ldi r24, 0x1E ; 30
8be: 80 93 2e 01 sts 0x012E, r24
8c2: 14 c0 rjmp .+40 ; 0x8ec <proc_key+0x6e>
8c4: 80 61 ori r24, 0x10 ; 16
8c6: 80 93 01 01 sts 0x0101, r24
8ca: 10 c0 rjmp .+32 ; 0x8ec <proc_key+0x6e>
8cc: 90 91 01 01 lds r25, 0x0101
8d0: 80 91 00 01 lds r24, 0x0100
8d4: 8f 5f subi r24, 0xFF ; 255
8d6: 80 93 00 01 sts 0x0100, r24
8da: 83 30 cpi r24, 0x03 ; 3
8dc: 21 f0 breq .+8 ; 0x8e6 <proc_key+0x68>
8de: 9c 60 ori r25, 0x0C ; 12
8e0: 90 93 01 01 sts 0x0101, r25
8e4: 03 c0 rjmp .+6 ; 0x8ec <proc_key+0x6e>
8e6: 10 92 00 01 sts 0x0100, r1
8ea: f9 cf rjmp .-14 ; 0x8de <proc_key+0x60>
8ec: df 91 pop r29
8ee: cf 91 pop r28
8f0: 08 95 ret
000008f2 <proc_save>:
8f2: 8f 92 push r8
8f4: 9f 92 push r9
8f6: af 92 push r10
8f8: bf 92 push r11
8fa: cf 92 push r12
8fc: df 92 push r13
8fe: ef 92 push r14
900: ff 92 push r15
902: 0f 93 push r16
904: 1f 93 push r17
906: cf 93 push r28
908: df 93 push r29
90a: cd b7 in r28, 0x3d ; 61
90c: de b7 in r29, 0x3e ; 62
90e: 27 97 sbiw r28, 0x07 ; 7
910: 0f b6 in r0, 0x3f ; 63
912: f8 94 cli
914: de bf out 0x3e, r29 ; 62
916: 0f be out 0x3f, r0 ; 63
918: cd bf out 0x3d, r28 ; 61
91a: 80 91 01 01 lds r24, 0x0101
91e: 81 ff sbrs r24, 1
920: c9 c0 rjmp .+402 ; 0xab4 <proc_save+0x1c2>
922: f8 94 cli
924: 60 91 28 01 lds r22, 0x0128
928: 70 91 29 01 lds r23, 0x0129
92c: 80 91 2a 01 lds r24, 0x012A
930: 90 91 2b 01 lds r25, 0x012B
934: 60 5b subi r22, 0xB0 ; 176
936: 79 4b sbci r23, 0xB9 ; 185
938: 8f 4f sbci r24, 0xFF ; 255
93a: 9f 4f sbci r25, 0xFF ; 255
93c: 31 e3 ldi r19, 0x31 ; 49
93e: c3 2e mov r12, r19
940: 31 e0 ldi r19, 0x01 ; 1
942: d3 2e mov r13, r19
944: e0 90 31 01 lds r14, 0x0131
948: f0 90 32 01 lds r15, 0x0132
94c: 00 91 33 01 lds r16, 0x0133
950: 10 91 34 01 lds r17, 0x0134
954: 20 ea ldi r18, 0xA0 ; 160
956: 3c e8 ldi r19, 0x8C ; 140
958: 40 e0 ldi r20, 0x00 ; 0
95a: 50 e0 ldi r21, 0x00 ; 0
95c: a6 d1 rcall .+844 ; 0xcaa <__udivmodsi4>
95e: 2e 0d add r18, r14
960: 3f 1d adc r19, r15
962: 40 1f adc r20, r16
964: 51 1f adc r21, r17
966: 20 93 31 01 sts 0x0131, r18
96a: 30 93 32 01 sts 0x0132, r19
96e: 40 93 33 01 sts 0x0133, r20
972: 50 93 34 01 sts 0x0134, r21
976: 20 30 cpi r18, 0x00 ; 0
978: 81 ee ldi r24, 0xE1 ; 225
97a: 38 07 cpc r19, r24
97c: 85 ef ldi r24, 0xF5 ; 245
97e: 48 07 cpc r20, r24
980: 85 e0 ldi r24, 0x05 ; 5
982: 58 07 cpc r21, r24
984: 08 f0 brcs .+2 ; 0x988 <proc_save+0x96>
986: 6a c0 rjmp .+212 ; 0xa5c <proc_save+0x16a>
988: 10 92 28 01 sts 0x0128, r1
98c: 10 92 29 01 sts 0x0129, r1
990: 10 92 2a 01 sts 0x012A, r1
994: 10 92 2b 01 sts 0x012B, r1
998: 10 92 2d 01 sts 0x012D, r1
99c: 10 92 2c 01 sts 0x012C, r1
9a0: 10 92 35 01 sts 0x0135, r1
9a4: 65 e0 ldi r22, 0x05 ; 5
9a6: c6 01 movw r24, r12
9a8: e8 dd rcall .-1072 ; 0x57a <checksum>
9aa: 80 93 35 01 sts 0x0135, r24
9ae: 40 91 2f 01 lds r20, 0x012F
9b2: 50 91 30 01 lds r21, 0x0130
9b6: 4a 01 movw r8, r20
9b8: 91 e0 ldi r25, 0x01 ; 1
9ba: 4f 3f cpi r20, 0xFF ; 255
9bc: 59 07 cpc r21, r25
9be: 08 f0 brcs .+2 ; 0x9c2 <proc_save+0xd0>
9c0: 6f c0 rjmp .+222 ; 0xaa0 <proc_save+0x1ae>
9c2: 5a 01 movw r10, r20
9c4: 83 e0 ldi r24, 0x03 ; 3
9c6: e8 2e mov r14, r24
9c8: f1 2c mov r15, r1
9ca: ec 0e add r14, r28
9cc: fd 1e adc r15, r29
9ce: 10 e0 ldi r17, 0x00 ; 0
9d0: f9 99 sbic 0x1f, 1 ; 31
9d2: fe cf rjmp .-4 ; 0x9d0 <proc_save+0xde>
{
uint8_t len;
len = (uint8_t) n;
__asm__ __volatile__ (
9d4: 85 e0 ldi r24, 0x05 ; 5
9d6: da 01 movw r26, r20
9d8: f6 01 movw r30, r12
9da: 18 2e mov r1, r24
9dc: 97 d1 rcall .+814 ; 0xd0c <__eeprom_write_block_1F2021>
9de: f9 99 sbic 0x1f, 1 ; 31
9e0: fe cf rjmp .-4 ; 0x9de <proc_save+0xec>
9e2: a0 91 2f 01 lds r26, 0x012F
9e6: b0 91 30 01 lds r27, 0x0130
/* Needed in order to truncate to 8 bit. */
uint8_t len;
len = (uint8_t) n;
__asm__ __volatile__ (
9ea: 85 e0 ldi r24, 0x05 ; 5
9ec: f7 01 movw r30, r14
9ee: 18 2e mov r1, r24
9f0: 7e d1 rcall .+764 ; 0xcee <__eeprom_read_block_1F2021>
9f2: 65 e0 ldi r22, 0x05 ; 5
9f4: c7 01 movw r24, r14
9f6: c1 dd rcall .-1150 ; 0x57a <checksum>
9f8: 88 23 and r24, r24
9fa: 41 f0 breq .+16 ; 0xa0c <proc_save+0x11a>
9fc: 1f 5f subi r17, 0xFF ; 255
9fe: 13 30 cpi r17, 0x03 ; 3
a00: 70 f4 brcc .+28 ; 0xa1e <proc_save+0x12c>
a02: 40 91 2f 01 lds r20, 0x012F
a06: 50 91 30 01 lds r21, 0x0130
a0a: e2 cf rjmp .-60 ; 0x9d0 <proc_save+0xde>
a0c: f9 99 sbic 0x1f, 1 ; 31
a0e: fe cf rjmp .-4 ; 0xa0c <proc_save+0x11a>
a10: 78 94 sei
a12: 80 91 01 01 lds r24, 0x0101
a16: 8d 7f andi r24, 0xFD ; 253
a18: 80 93 01 01 sts 0x0101, r24
a1c: 4b c0 rjmp .+150 ; 0xab4 <proc_save+0x1c2>
a1e: 13 30 cpi r17, 0x03 ; 3
a20: 51 f1 breq .+84 ; 0xa76 <proc_save+0x184>
a22: e5 e0 ldi r30, 0x05 ; 5
a24: f0 e0 ldi r31, 0x00 ; 0
a26: ae 0e add r10, r30
a28: bf 1e adc r11, r31
a2a: 8e ef ldi r24, 0xFE ; 254
a2c: 91 e0 ldi r25, 0x01 ; 1
a2e: 88 19 sub r24, r8
a30: 99 09 sbc r25, r9
a32: 65 e0 ldi r22, 0x05 ; 5
a34: 70 e0 ldi r23, 0x00 ; 0
a36: 25 d1 rcall .+586 ; 0xc82 <__udivmodhi4>
a38: cb 01 movw r24, r22
a3a: 88 0f add r24, r24
a3c: 99 1f adc r25, r25
a3e: 88 0f add r24, r24
a40: 99 1f adc r25, r25
a42: 86 0f add r24, r22
a44: 97 1f adc r25, r23
a46: 88 0d add r24, r8
a48: 99 1d adc r25, r9
a4a: 05 96 adiw r24, 0x05 ; 5
a4c: a8 16 cp r10, r24
a4e: b9 06 cpc r11, r25
a50: 39 f1 breq .+78 ; 0xaa0 <proc_save+0x1ae>
a52: 40 91 2f 01 lds r20, 0x012F
a56: 50 91 30 01 lds r21, 0x0130
a5a: b9 cf rjmp .-142 ; 0x9ce <proc_save+0xdc>
a5c: 20 50 subi r18, 0x00 ; 0
a5e: 31 4e sbci r19, 0xE1 ; 225
a60: 45 4f sbci r20, 0xF5 ; 245
a62: 55 40 sbci r21, 0x05 ; 5
a64: 20 93 31 01 sts 0x0131, r18
a68: 30 93 32 01 sts 0x0132, r19
a6c: 40 93 33 01 sts 0x0133, r20
a70: 50 93 34 01 sts 0x0134, r21
a74: 89 cf rjmp .-238 ; 0x988 <proc_save+0x96>
a76: 40 91 2f 01 lds r20, 0x012F
a7a: 50 91 30 01 lds r21, 0x0130
a7e: 4b 5f subi r20, 0xFB ; 251
a80: 5f 4f sbci r21, 0xFF ; 255
a82: 50 93 30 01 sts 0x0130, r21
a86: 40 93 2f 01 sts 0x012F, r20
a8a: 8f b3 in r24, 0x1f ; 31
a8c: 99 27 eor r25, r25
a8e: 9c 01 movw r18, r24
a90: 22 70 andi r18, 0x02 ; 2
a92: 30 70 andi r19, 0x00 ; 0
a94: 81 fd sbrc r24, 1
a96: f9 cf rjmp .-14 ; 0xa8a <proc_save+0x198>
void
eeprom_write_word (uint16_t *addr,uint16_t value)
{
__asm__ __volatile__ (
a98: d9 01 movw r26, r18
a9a: 0a 01 movw r0, r20
a9c: 32 d1 rcall .+612 ; 0xd02 <__eeprom_write_word_1F2021>
a9e: c1 cf rjmp .-126 ; 0xa22 <proc_save+0x130>
aa0: e4 e1 ldi r30, 0x14 ; 20
aa2: f1 e0 ldi r31, 0x01 ; 1
aa4: 8e e0 ldi r24, 0x0E ; 14
aa6: 81 93 st Z+, r24
aa8: 91 e0 ldi r25, 0x01 ; 1
aaa: ec 31 cpi r30, 0x1C ; 28
aac: f9 07 cpc r31, r25
aae: d9 f7 brne .-10 ; 0xaa6 <proc_save+0x1b4>
ab0: 78 94 sei
ab2: ff cf rjmp .-2 ; 0xab2 <proc_save+0x1c0>
ab4: 27 96 adiw r28, 0x07 ; 7
ab6: 0f b6 in r0, 0x3f ; 63
ab8: f8 94 cli
aba: de bf out 0x3e, r29 ; 62
abc: 0f be out 0x3f, r0 ; 63
abe: cd bf out 0x3d, r28 ; 61
ac0: df 91 pop r29
ac2: cf 91 pop r28
ac4: 1f 91 pop r17
ac6: 0f 91 pop r16
ac8: ff 90 pop r15
aca: ef 90 pop r14
acc: df 90 pop r13
ace: cf 90 pop r12
ad0: bf 90 pop r11
ad2: af 90 pop r10
ad4: 9f 90 pop r9
ad6: 8f 90 pop r8
ad8: 08 95 ret
00000ada <proc_poweroff>:
ada: 80 91 07 01 lds r24, 0x0107
ade: 84 ff sbrs r24, 4
ae0: 08 95 ret
ae2: 80 91 01 01 lds r24, 0x0101
ae6: 8f 7e andi r24, 0xEF ; 239
ae8: 80 93 01 01 sts 0x0101, r24
aec: 30 dc rcall .-1952 ; 0x34e <display_off>
aee: 80 91 01 01 lds r24, 0x0101
af2: 82 60 ori r24, 0x02 ; 2
af4: 80 93 01 01 sts 0x0101, r24
af8: 08 95 ret
00000afa <proc_init>:
afa: 0f 93 push r16
afc: 1f 93 push r17
afe: cf 93 push r28
b00: df 93 push r29
b02: 88 e1 ldi r24, 0x18 ; 24
b04: 90 e0 ldi r25, 0x00 ; 0
b06: 2e e0 ldi r18, 0x0E ; 14
b08: 0f b6 in r0, 0x3f ; 63
b0a: f8 94 cli
b0c: a8 95 wdr
b0e: 80 93 60 00 sts 0x0060, r24
b12: 0f be out 0x3f, r0 ; 63
b14: 20 93 60 00 sts 0x0060, r18
b18: e8 db rcall .-2096 ; 0x2ea <init_display>
b1a: bb da rcall .-2698 ; 0x92 <init_interrupt>
b1c: 80 d0 rcall .+256 ; 0xc1e <init_key>
b1e: f8 94 cli
b20: 8f b3 in r24, 0x1f ; 31
b22: 99 27 eor r25, r25
b24: dc 01 movw r26, r24
b26: a2 70 andi r26, 0x02 ; 2
b28: b0 70 andi r27, 0x00 ; 0
b2a: 81 fd sbrc r24, 1
b2c: f9 cf rjmp .-14 ; 0xb20 <proc_init+0x26>
eeprom_read_word (const uint16_t *addr)
{
uint16_t result;
__asm__ __volatile__ (
b2e: e4 d0 rcall .+456 ; 0xcf8 <__eeprom_read_word_1F2021>
b30: 0f e2 ldi r16, 0x2F ; 47
b32: 11 e0 ldi r17, 0x01 ; 1
b34: f0 93 30 01 sts 0x0130, r31
b38: e0 93 2f 01 sts 0x012F, r30
b3c: e0 50 subi r30, 0x00 ; 0
b3e: f2 40 sbci r31, 0x02 ; 2
b40: 28 f5 brcc .+74 ; 0xb8c <proc_init+0x92>
b42: e8 01 movw r28, r16
b44: 22 96 adiw r28, 0x02 ; 2
b46: 00 e0 ldi r16, 0x00 ; 0
b48: 15 e0 ldi r17, 0x05 ; 5
b4a: f9 99 sbic 0x1f, 1 ; 31
b4c: fe cf rjmp .-4 ; 0xb4a <proc_init+0x50>
b4e: a0 91 2f 01 lds r26, 0x012F
b52: b0 91 30 01 lds r27, 0x0130
/* Needed in order to truncate to 8 bit. */
uint8_t len;
len = (uint8_t) n;
__asm__ __volatile__ (
b56: fe 01 movw r30, r28
b58: 11 2e mov r1, r17
b5a: c9 d0 rcall .+402 ; 0xcee <__eeprom_read_block_1F2021>
b5c: 65 e0 ldi r22, 0x05 ; 5
b5e: 81 e3 ldi r24, 0x31 ; 49
b60: 91 e0 ldi r25, 0x01 ; 1
b62: 0b dd rcall .-1514 ; 0x57a <checksum>
b64: 88 23 and r24, r24
b66: 29 f0 breq .+10 ; 0xb72 <proc_init+0x78>
b68: 0f 5f subi r16, 0xFF ; 255
b6a: 0a 30 cpi r16, 0x0A ; 10
b6c: 70 f3 brcs .-36 ; 0xb4a <proc_init+0x50>
b6e: 0a 30 cpi r16, 0x0A ; 10
b70: 19 f0 breq .+6 ; 0xb78 <proc_init+0x7e>
b72: f9 99 sbic 0x1f, 1 ; 31
b74: fe cf rjmp .-4 ; 0xb72 <proc_init+0x78>
b76: 39 c0 rjmp .+114 ; 0xbea <proc_init+0xf0>
b78: e4 e1 ldi r30, 0x14 ; 20
b7a: f1 e0 ldi r31, 0x01 ; 1
b7c: 8f e0 ldi r24, 0x0F ; 15
b7e: 81 93 st Z+, r24
b80: 91 e0 ldi r25, 0x01 ; 1
b82: ec 31 cpi r30, 0x1C ; 28
b84: f9 07 cpc r31, r25
b86: d9 f7 brne .-10 ; 0xb7e <proc_init+0x84>
b88: 78 94 sei
b8a: ff cf rjmp .-2 ; 0xb8a <proc_init+0x90>
b8c: 82 e0 ldi r24, 0x02 ; 2
b8e: 90 e0 ldi r25, 0x00 ; 0
b90: 90 93 30 01 sts 0x0130, r25
b94: 80 93 2f 01 sts 0x012F, r24
b98: e8 01 movw r28, r16
b9a: 22 96 adiw r28, 0x02 ; 2
b9c: 10 92 31 01 sts 0x0131, r1
ba0: 10 92 32 01 sts 0x0132, r1
ba4: 10 92 33 01 sts 0x0133, r1
ba8: 10 92 34 01 sts 0x0134, r1
bac: 10 92 35 01 sts 0x0135, r1
bb0: 65 e0 ldi r22, 0x05 ; 5
bb2: ce 01 movw r24, r28
bb4: e2 dc rcall .-1596 ; 0x57a <checksum>
bb6: 80 93 35 01 sts 0x0135, r24
bba: 8f b3 in r24, 0x1f ; 31
bbc: 99 27 eor r25, r25
bbe: dc 01
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -