📄 ds1302.lst
字号:
1 .file "ds1302.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .global modify_key
19 .global modify_key
20 .section .bss
23 modify_key:
24 0000 00 .skip 1,0
25 .global modify_enter
26 .global modify_enter
29 modify_enter:
30 0001 00 .skip 1,0
31 .global modify_bit
32 .global modify_bit
35 modify_bit:
36 0002 00 .skip 1,0
37 .global modify_state
38 .global modify_state
41 modify_state:
42 0003 00 .skip 1,0
43 .global dsp
44 .global dsp
47 dsp:
48 0004 0000 0000 .skip 6,0
48 0000
49 .global bcd_dsp
50 .global bcd_dsp
53 bcd_dsp:
54 000a 0000 0000 .skip 6,0
54 0000
55 .global dig
56 .data
59 dig:
60 0000 01 .byte 1
61 0001 02 .byte 2
62 0002 04 .byte 4
63 0003 08 .byte 8
64 0004 10 .byte 16
65 0005 20 .byte 32
66 .global led
69 led:
70 0006 C0 .byte -64
71 0007 F9 .byte -7
72 0008 A4 .byte -92
73 0009 B0 .byte -80
74 000a 99 .byte -103
75 000b 92 .byte -110
76 000c 82 .byte -126
77 000d F8 .byte -8
78 000e 80 .byte -128
79 000f 90 .byte -112
80 .text
81 .global out_byte
83 out_byte:
84 .LFB7:
85 .LM1:
86 /* prologue: frame size=0 */
87 /* prologue end (size=0) */
88 .LM2:
89 0000 889A sbi 49-0x20,0
90 .LM3:
91 0002 899A sbi 49-0x20,1
92 .LM4:
93 0004 8A9A sbi 49-0x20,2
94 .LM5:
95 0006 9098 cbi 50-0x20,0
96 .LM6:
97 0008 9198 cbi 50-0x20,1
98 .LM7:
99 000a 909A sbi 50-0x20,0
100 000c E82F mov r30,r24
101 000e FF27 clr r31
102 0010 20E0 ldi r18,lo8(0)
103 0012 30E0 ldi r19,hi8(0)
104 0014 47E0 ldi r20,lo8(7)
105 .L7:
106 .LM8:
107 0016 CF01 movw r24,r30
108 0018 022E mov r0,r18
109 001a 02C0 rjmp 2f
110 001c 9595 1: asr r25
111 001e 8795 ror r24
112 0020 0A94 2: dec r0
113 0022 E2F7 brpl 1b
114 0024 80FF sbrs r24,0
115 0026 02C0 rjmp .L5
116 .LM9:
117 0028 929A sbi 50-0x20,2
118 002a 01C0 rjmp .L6
119 .L5:
120 .LM10:
121 002c 9298 cbi 50-0x20,2
122 .L6:
123 .LM11:
124 002e 919A sbi 50-0x20,1
125 .LM12:
126 0030 9198 cbi 50-0x20,1
127 .LM13:
128 0032 4150 subi r20,lo8(-(-1))
129 0034 2F5F subi r18,lo8(-(1))
130 0036 3F4F sbci r19,hi8(-(1))
131 0038 47FF sbrs r20,7
132 003a EDCF rjmp .L7
133 003c 7727 clr r23
134 003e 20E0 ldi r18,lo8(0)
135 0040 30E0 ldi r19,hi8(0)
136 0042 47E0 ldi r20,lo8(7)
137 .L13:
138 .LM14:
139 0044 CB01 movw r24,r22
140 0046 022E mov r0,r18
141 0048 02C0 rjmp 2f
142 004a 9595 1: asr r25
143 004c 8795 ror r24
144 004e 0A94 2: dec r0
145 0050 E2F7 brpl 1b
146 0052 80FF sbrs r24,0
147 0054 02C0 rjmp .L11
148 .LM15:
149 0056 929A sbi 50-0x20,2
150 0058 01C0 rjmp .L12
151 .L11:
152 .LM16:
153 005a 9298 cbi 50-0x20,2
154 .L12:
155 .LM17:
156 005c 919A sbi 50-0x20,1
157 .LM18:
158 005e 9198 cbi 50-0x20,1
159 .LM19:
160 0060 4150 subi r20,lo8(-(-1))
161 0062 2F5F subi r18,lo8(-(1))
162 0064 3F4F sbci r19,hi8(-(1))
163 0066 47FF sbrs r20,7
164 0068 EDCF rjmp .L13
165 .LM20:
166 006a 9098 cbi 50-0x20,0
167 /* epilogue: frame size=0 */
168 006c 0895 ret
169 /* epilogue end (size=1) */
170 /* function out_byte size 55 (54) */
171 .LFE7:
173 .global write_ds1302
175 write_ds1302:
176 .LFB8:
177 .LM21:
178 /* prologue: frame size=0 */
179 006e 0F93 push r16
180 0070 1F93 push r17
181 /* prologue end (size=2) */
182 0072 082F mov r16,r24
183 0074 162F mov r17,r22
184 .LM22:
185 0076 60E0 ldi r22,lo8(0)
186 0078 8EE8 ldi r24,lo8(-114)
187 007a C2DF rcall out_byte
188 .LM23:
189 007c 612F mov r22,r17
190 007e 802F mov r24,r16
191 0080 BFDF rcall out_byte
192 .LM24:
193 0082 60E8 ldi r22,lo8(-128)
194 0084 8FE8 ldi r24,lo8(-113)
195 0086 BCDF rcall out_byte
196 /* epilogue: frame size=0 */
197 0088 1F91 pop r17
198 008a 0F91 pop r16
199 008c 0895 ret
200 /* epilogue end (size=3) */
201 /* function write_ds1302 size 16 (11) */
202 .LFE8:
204 .global in_byte
206 in_byte:
207 .LFB9:
208 .LM25:
209 /* prologue: frame size=0 */
210 /* prologue end (size=0) */
211 .LM26:
212 008e 889A sbi 49-0x20,0
213 .LM27:
214 0090 899A sbi 49-0x20,1
215 .LM28:
216 0092 8A9A sbi 49-0x20,2
217 .LM29:
218 0094 9098 cbi 50-0x20,0
219 .LM30:
220 0096 9198 cbi 50-0x20,1
221 .LM31:
222 0098 909A sbi 50-0x20,0
223 009a 682F mov r22,r24
224 009c 7727 clr r23
225 009e 20E0 ldi r18,lo8(0)
226 00a0 30E0 ldi r19,hi8(0)
227 00a2 47E0 ldi r20,lo8(7)
228 .L25:
229 .LM32:
230 00a4 CB01 movw r24,r22
231 00a6 022E mov r0,r18
232 00a8 02C0 rjmp 2f
233 00aa 9595 1: asr r25
234 00ac 8795 ror r24
235 00ae 0A94 2: dec r0
236 00b0 E2F7 brpl 1b
237 00b2 80FF sbrs r24,0
238 00b4 02C0 rjmp .L23
239 .LM33:
240 00b6 929A sbi 50-0x20,2
241 00b8 01C0 rjmp .L24
242 .L23:
243 .LM34:
244 00ba 9298 cbi 50-0x20,2
245 .L24:
246 .LM35:
247 00bc 919A sbi 50-0x20,1
248 .LM36:
249 00be 9198 cbi 50-0x20,1
250 .LM37:
251 00c0 4150 subi r20,lo8(-(-1))
252 00c2 2F5F subi r18,lo8(-(1))
253 00c4 3F4F sbci r19,hi8(-(1))
254 00c6 47FF sbrs r20,7
255 00c8 EDCF rjmp .L25
256 .LM38:
257 00ca 8A98 cbi 49-0x20,2
258 .LM39:
259 00cc 50E0 ldi r21,lo8(0)
260 00ce 20E0 ldi r18,lo8(0)
261 00d0 30E0 ldi r19,hi8(0)
262 00d2 47E0 ldi r20,lo8(7)
263 .L29:
264 .LM40:
265 00d4 80B3 in r24,48-0x20
266 .LM41:
267 00d6 919A sbi 50-0x20,1
268 .LM42:
269 00d8 8695 lsr r24
270 00da 8695 lsr r24
271 00dc 8170 andi r24,lo8(1)
272 .LM43:
273 00de 9927 clr r25
274 00e0 022E mov r0,r18
275 00e2 02C0 rjmp 2f
276 00e4 880F 1: lsl r24
277 00e6 991F rol r25
278 00e8 0A94 2: dec r0
279 00ea E2F7 brpl 1b
280 00ec 582B or r21,r24
281 .LM44:
282 00ee 9198 cbi 50-0x20,1
283 .LM45:
284 00f0 4150 subi r20,lo8(-(-1))
285 00f2 2F5F subi r18,lo8(-(1))
286 00f4 3F4F sbci r19,hi8(-(1))
287 00f6 47FF sbrs r20,7
288 00f8 EDCF rjmp .L29
289 .LM46:
290 00fa 9098 cbi 50-0x20,0
291 .LM47:
292 00fc 852F mov r24,r21
293 00fe 9927 clr r25
294 /* epilogue: frame size=0 */
295 0100 0895 ret
296 /* epilogue end (size=1) */
297 /* function in_byte size 58 (57) */
298 .LFE9:
300 .global bcd_change
302 bcd_change:
303 .LFB10:
304 .LM48:
305 /* prologue: frame size=0 */
306 /* prologue end (size=0) */
307 .LM49:
308 0102 9091 0000 lds r25,bcd_dsp
309 0106 892F mov r24,r25
310 0108 8295 swap r24
311 010a 8F70 andi r24,0x0f
312 010c 20E0 ldi r18,lo8(led)
313 010e 30E0 ldi r19,hi8(led)
314 0110 F901 movw r30,r18
315 0112 E80F add r30,r24
316 0114 F11D adc r31,__zero_reg__
317 0116 8081 ld r24,Z
318 0118 8093 0000 sts dsp,r24
319 .LM50:
320 011c E92F mov r30,r25
321 011e FF27 clr r31
322 0120 EF70 andi r30,lo8(15)
323 0122 F070 andi r31,hi8(15)
324 0124 E20F add r30,r18
325 0126 F31F adc r31,r19
326 0128 8081 ld r24,Z
327 012a 8093 0000 sts dsp+1,r24
328 .LM51:
329 012e 9091 0000 lds r25,bcd_dsp+1
330 0132 892F mov r24,r25
331 0134 8295 swap r24
332 0136 8F70 andi r24,0x0f
333 0138 F901 movw r30,r18
334 013a E80F add r30,r24
335 013c F11D adc r31,__zero_reg__
336 013e 8081 ld r24,Z
337 0140 8093 0000 sts dsp+2,r24
338 .LM52:
339 0144 E92F mov r30,r25
340 0146 FF27 clr r31
341 0148 EF70 andi r30,lo8(15)
342 014a F070 andi r31,hi8(15)
343 014c E20F add r30,r18
344 014e F31F adc r31,r19
345 0150 8081 ld r24,Z
346 0152 8093 0000 sts dsp+3,r24
347 .LM53:
348 0156 9091 0000 lds r25,bcd_dsp+2
349 015a 892F mov r24,r25
350 015c 8295 swap r24
351 015e 8F70 andi r24,0x0f
352 0160 F901 movw r30,r18
353 0162 E80F add r30,r24
354 0164 F11D adc r31,__zero_reg__
355 0166 8081 ld r24,Z
356 0168 8093 0000 sts dsp+4,r24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -