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