📄 level2.lst
字号:
161 .LM13:
162 0060 9694 lsr r9
116:level2.c **** if ( --fwd_byte_bit_cnt == 0 )
163 .stabn 68,0,116,.LM14-__vector_8
164 .LM14:
165 0062 7A94 dec r7
166 0064 69F5 brne .L1
117:level2.c **** {
118:level2.c **** fwd_byte_bit_cnt = 8;
167 .stabn 68,0,118,.LM15-__vector_8
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 6
168 .LM15:
169 0066 88E0 ldi r24,lo8(8)
170 0068 782E mov r7,r24
119:level2.c **** fwd_byte = *fwd_write_ptr++;
171 .stabn 68,0,119,.LM16-__vector_8
172 .LM16:
173 006a E091 0000 lds r30,fwd_write_ptr
174 006e F091 0000 lds r31,(fwd_write_ptr)+1
175 0072 9190 ld r9,Z+
176 0074 F093 0000 sts (fwd_write_ptr)+1,r31
177 0078 E093 0000 sts fwd_write_ptr,r30
178 007c 21C0 rjmp .L1
179 .L16:
180 .stabn 68,0,109,.LM17-__vector_8
181 .LM17:
182 007e E2E0 ldi r30,lo8(2)
183 0080 E0CF rjmp .L11
184 .L8:
185 .stabn 68,0,83,.LM18-__vector_8
186 .LM18:
187 0082 90FC sbrc r9,0
188 0084 DDCF rjmp .L21
189 .stabn 68,0,89,.LM19-__vector_8
190 .LM19:
191 0086 9694 lsr r9
192 .stabn 68,0,90,.LM20-__vector_8
193 .LM20:
194 0088 7A94 dec r7
195 008a 59F4 brne .L14
196 .stabn 68,0,92,.LM21-__vector_8
197 .LM21:
198 008c 98E0 ldi r25,lo8(8)
199 008e 792E mov r7,r25
200 .stabn 68,0,93,.LM22-__vector_8
201 .LM22:
202 0090 E091 0000 lds r30,fwd_write_ptr
203 0094 F091 0000 lds r31,(fwd_write_ptr)+1
204 0098 9190 ld r9,Z+
205 009a F093 0000 sts (fwd_write_ptr)+1,r31
206 009e E093 0000 sts fwd_write_ptr,r30
207 .L14:
208 .stabn 68,0,96,.LM23-__vector_8
209 .LM23:
210 00a2 6A94 dec r6
211 00a4 8FEF ldi r24,lo8(-1)
212 00a6 6816 cp r6,r24
213 00a8 21F0 breq .L22
214 .stabn 68,0,103,.LM24-__vector_8
215 .LM24:
216 00aa 90FE sbrs r9,0
217 00ac E8CF rjmp .L16
218 .stabn 68,0,105,.LM25-__vector_8
219 .LM25:
220 00ae E3E0 ldi r30,lo8(3)
221 00b0 C8CF rjmp .L11
222 .stabn 68,0,98,.LM26-__vector_8
223 .LM26:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 7
224 .L22:
225 00b2 1EBC out 78-0x20,__zero_reg__
226 .stabn 68,0,99,.LM27-__vector_8
227 .LM27:
228 00b4 89B7 in r24,89-0x20
229 00b6 8B7F andi r24,lo8(-5)
230 00b8 89BF out 89-0x20,r24
231 .stabn 68,0,100,.LM28-__vector_8
232 .LM28:
233 00ba 88B7 in r24,88-0x20
234 00bc 8B7F andi r24,lo8(-5)
235 00be 88BF out 88-0x20,r24
236 .stabn 68,0,101,.LM29-__vector_8
237 .LM29:
120:level2.c **** }
121:level2.c **** }
238 .stabn 68,0,121,.LM30-__vector_8
239 .LM30:
240 .L1:
241 .LBE2:
242 /* epilogue: frame size=0 */
243 00c0 FF91 pop r31
244 00c2 EF91 pop r30
245 00c4 9F91 pop r25
246 00c6 8F91 pop r24
247 00c8 0F90 pop __tmp_reg__
248 00ca 0FBE out __SREG__,__tmp_reg__
249 00cc 0F90 pop __tmp_reg__
250 00ce 1F90 pop __zero_reg__
251 00d0 1895 reti
252 /* epilogue end (size=9) */
253 /* function __vector_8 size 107 (89) */
254 .size __vector_8, .-__vector_8
255 .stabs "k:r(4,2)",64,0,62,30
256 .stabn 192,0,0,.LBB2-__vector_8
257 .stabn 224,0,0,.LBE2-__vector_8
258 .Lscope0:
259 .stabs "",36,0,0,.Lscope0-__vector_8
260 .stabs "SendForward:F(0,20)",36,0,130,SendForward
261 .stabs "fwd_bit_count:P(4,2)",64,0,129,18
262 .global SendForward
263 .type SendForward, @function
264 SendForward:
122:level2.c ****
123:level2.c **** // ********************************************************************************************
124:level2.c **** // Description : Start to send modified Milla code to EM4094 DIN.
125:level2.c **** // Return value: None.
126:level2.c **** // parameter : fwd_bit_count -- the number of the bit to be sent.
127:level2.c **** // ********************************************************************************************
128:level2.c ****
129:level2.c **** void SendForward( uint8_t fwd_bit_count )
130:level2.c **** {
265 .stabn 68,0,130,.LM31-SendForward
266 .LM31:
267 /* prologue: frame size=0 */
268 /* prologue end (size=0) */
269 00d2 282F mov r18,r24
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 8
131:level2.c **** fwd_write_ptr = data_buffer;
132:level2.c **** fwd_byte = *fwd_write_ptr++;
270 .stabn 68,0,132,.LM32-SendForward
271 .LM32:
272 00d4 9090 0000 lds r9,data_buffer
273 00d8 80E0 ldi r24,lo8(data_buffer+1)
274 00da 90E0 ldi r25,hi8(data_buffer+1)
275 00dc 9093 0000 sts (fwd_write_ptr)+1,r25
276 00e0 8093 0000 sts fwd_write_ptr,r24
133:level2.c **** fwd_byte_bit_cnt = 8;
277 .stabn 68,0,133,.LM33-SendForward
278 .LM33:
279 00e4 38E0 ldi r19,lo8(8)
280 00e6 732E mov r7,r19
134:level2.c **** fwd_bit_sz = fwd_bit_count;
281 .stabn 68,0,134,.LM34-SendForward
282 .LM34:
283 00e8 622E mov r6,r18
135:level2.c **** fwd_bit_sz++; //add 1 bit for EOF
284 .stabn 68,0,135,.LM35-SendForward
285 .LM35:
286 00ea 6394 inc r6
136:level2.c **** if ( fwd_bit_count > 8 )
287 .stabn 68,0,136,.LM36-SendForward
288 .LM36:
289 00ec 7216 cp r7,r18
290 00ee 08F4 brsh .L24
137:level2.c **** {
138:level2.c **** fwd_bit_sz++;
291 .stabn 68,0,138,.LM37-SendForward
292 .LM37:
293 00f0 6394 inc r6
294 .L24:
139:level2.c **** }
140:level2.c **** fwd_this_bit = fwd_byte & 1;
295 .stabn 68,0,140,.LM38-SendForward
296 .LM38:
297 00f2 892D mov r24,r9
298 00f4 8170 andi r24,lo8(1)
299 00f6 8093 0000 sts fwd_this_bit,r24
141:level2.c **** fwd_byte >>= 1;
300 .stabn 68,0,141,.LM39-SendForward
301 .LM39:
302 00fa 9694 lsr r9
142:level2.c **** fwd_byte_bit_cnt--;
303 .stabn 68,0,142,.LM40-SendForward
304 .LM40:
305 00fc 7A94 dec r7
143:level2.c ****
144:level2.c **** if ( fwd_this_bit )
306 .stabn 68,0,144,.LM41-SendForward
307 .LM41:
308 00fe 8823 tst r24
309 0100 B1F0 breq .L25
145:level2.c **** fwd_current_timing = fwd_A_timing[ 2 ];
310 .stabn 68,0,145,.LM42-SendForward
311 .LM42:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 9
312 0102 8091 0000 lds r24,fwd_A_timing+4
313 0106 9091 0000 lds r25,(fwd_A_timing+4)+1
314 .L30:
315 010a 9093 0000 sts (fwd_current_timing)+1,r25
316 010e 8093 0000 sts fwd_current_timing,r24
146:level2.c **** else
147:level2.c **** fwd_current_timing = fwd_A_timing[ 1 ];
148:level2.c **** TCNT1 = -316; //minimum startup pulse length
317 .stabn 68,0,148,.LM43-SendForward
318 .LM43:
319 0112 84EC ldi r24,lo8(-316)
320 0114 9EEF ldi r25,hi8(-316)
321 0116 9DBD out (76)+1-0x20,r25
322 0118 8CBD out 76-0x20,r24
149:level2.c **** cbi( PORTC , MOD_PIN ); //notmod pulse
323 .stabn 68,0,149,.LM44-SendForward
324 .LM44:
325 011a A998 cbi 53-0x20,1
150:level2.c **** sbi(TIMSK, TOIE1);
326 .stabn 68,0,150,.LM45-SendForward
327 .LM45:
328 011c 89B7 in r24,89-0x20
329 011e 8460 ori r24,lo8(4)
330 0120 89BF out 89-0x20,r24
151:level2.c **** TCCR1B = 1; //internal clock T1, RUN!
331 .stabn 68,0,151,.LM46-SendForward
332 .LM46:
333 0122 81E0 ldi r24,lo8(1)
334 0124 8EBD out 78-0x20,r24
152:level2.c **** // waiting for clearing TOIE1 => command sending
153:level2.c **** while ( bit_is_set( TIMSK , TOIE1 ) != 0 )
335 .stabn 68,0,153,.LM47-SendForward
336 .LM47:
337 .L27:
338 0126 09B6 in __tmp_reg__,89-0x20
339 0128 02FC sbrc __tmp_reg__,2
340 012a FDCF rjmp .L27
341 012c 05C0 rjmp .L31
342 .L25:
343 .stabn 68,0,147,.LM48-SendForward
344 .LM48:
345 012e 8091 0000 lds r24,fwd_A_timing+2
346 0132 9091 0000 lds r25,(fwd_A_timing+2)+1
347 0136 E9CF rjmp .L30
154:level2.c **** {}
155:level2.c **** cbi( PORTC , MOD_PIN ); //notmod pulse
348 .stabn 68,0,155,.LM49-SendForward
349 .LM49:
350 .L31:
351 0138 A998 cbi 53-0x20,1
156:level2.c **** }
352 .stabn 68,0,156,.LM50-SendForward
353 .LM50:
354 /* epilogue: frame size=0 */
355 013a 0895 ret
356 /* epilogue end (size=1) */
357 /* function SendForward size 53 (52) */
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 10
358 .size SendForward, .-SendForward
359 .Lscope1:
360 .stabs "",36,0,0,.Lscope1-SendForward
361 .stabs "ShiftFwdData:F(0,20)",36,0,166,ShiftFwdData
362 .stabs "data:P(4,2)",64,0,165,19
363 .stabs "cnt:P(4,2)",64,0,165,22
364 .global ShiftFwdData
365 .type ShiftFwdData, @function
366 ShiftFwdData:
157:level2.c ****
158:level2.c **** // ********************************************************************************************
159:level2.c **** // Description : To realize the LSB to be sent first.
160:level2.c **** // Return value: 16 bit binary.
161:level2.c **** // parameter : data -- the btye to be sent;
162:level2.c **** // cnt -- the number of bit to be sent in data.
163:level2.c **** // ********************************************************************************************
164:level2.c ****
165:level2.c **** void ShiftFwdData( uint8_t data , uint8_t cnt )
166:level2.c **** {
367 .stabn 68,0,166,.LM51-ShiftFwdData
368 .LM51:
369 /* prologue: frame size=0 */
370 /* prologue end (size=0) */
371 013c 382F mov r19,r24
167:level2.c **** uint8_t i;
168:level2.c ****
169:level2.c **** for ( i = 0 ; i < cnt ; i++ )
372 .stabn 68,0,169,.LM52-ShiftFwdData
373 .LM52:
374 .LBB3:
375 013e 40E0 ldi r20,lo8(0)
376 0140 4617 cp r20,r22
377 0142 08F5 brsh .L40
378 .L38:
170:level2.c **** {
171:level2.c **** fwd_byte |= ( data & 1 ) << fwd_byte_bit_cnt++;
379 .stabn 68,0,171,.LM53-ShiftFwdData
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -