?? level3.lst
字號:
383 0170 B695 1: lsr r27
384 0172 A795 ror r26
385 0174 9795 ror r25
386 0176 8795 ror r24
387 0178 2A95 dec r18
388 017a D1F7 brne 1b
389 017c 9C01 movw r18,r24
390 017e 2F5F subi r18,lo8(-(1))
391 0180 3F4F sbci r19,hi8(-(1))
177:level3.c ****
178:level3.c **** decode_number = flags & 3;//////decode_number = 0x02;
392 .stabn 68,0,178,.LM60-Compute_Timeouts
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s page 11
393 .LM60:
394 0182 8C2F mov r24,r28
395 0184 8370 andi r24,lo8(3)
396 0186 8093 0000 sts decode_number,r24
179:level3.c ****
180:level3.c **** if ( decode_number & 2 )
397 .stabn 68,0,180,.LM61-Compute_Timeouts
398 .LM61:
399 018a 9927 clr r25
400 018c 8270 andi r24,lo8(2)
401 018e 9070 andi r25,hi8(2)
402 0190 892B or r24,r25
403 0192 41F0 breq .L28
181:level3.c **** {
182:level3.c **** halfDataRate = 288; //high data rates
404 .stabn 68,0,182,.LM62-Compute_Timeouts
405 .LM62:
406 0194 80E2 ldi r24,lo8(288)
407 0196 91E0 ldi r25,hi8(288)
408 0198 9093 0000 sts (halfDataRate)+1,r25
409 019c 8093 0000 sts halfDataRate,r24
183:level3.c **** pulsesPerBit = 8;
410 .stabn 68,0,183,.LM63-Compute_Timeouts
411 .LM63:
412 01a0 88E0 ldi r24,lo8(8)
413 01a2 07C0 rjmp .L30
414 .L28:
184:level3.c **** }
185:level3.c **** else
186:level3.c **** {
187:level3.c **** halfDataRate = 288 * 4; //low data rates
415 .stabn 68,0,187,.LM64-Compute_Timeouts
416 .LM64:
417 01a4 80E8 ldi r24,lo8(1152)
418 01a6 94E0 ldi r25,hi8(1152)
419 01a8 9093 0000 sts (halfDataRate)+1,r25
420 01ac 8093 0000 sts halfDataRate,r24
188:level3.c **** pulsesPerBit = 32;
421 .stabn 68,0,188,.LM65-Compute_Timeouts
422 .LM65:
423 01b0 80E2 ldi r24,lo8(32)
424 .L30:
425 01b2 8093 0000 sts pulsesPerBit,r24
189:level3.c **** }
190:level3.c **** maxTGeneral = pom;
426 .stabn 68,0,190,.LM66-Compute_Timeouts
427 .LM66:
428 01b6 3093 0000 sts (maxTGeneral)+1,r19
429 01ba 2093 0000 sts maxTGeneral,r18
191:level3.c **** maxTwa1ee = write_tag_memory_delay + pom;
430 .stabn 68,0,191,.LM67-Compute_Timeouts
431 .LM67:
432 01be 8091 0000 lds r24,write_tag_memory_delay
433 01c2 9091 0000 lds r25,(write_tag_memory_delay)+1
434 01c6 820F add r24,r18
435 01c8 931F adc r25,r19
436 01ca 9093 0000 sts (maxTwa1ee)+1,r25
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s page 12
437 01ce 8093 0000 sts maxTwa1ee,r24
192:level3.c ****
193:level3.c **** }
438 .stabn 68,0,193,.LM68-Compute_Timeouts
439 .LM68:
440 .LBE4:
441 /* epilogue: frame size=0 */
442 01d2 CF91 pop r28
443 01d4 0895 ret
444 /* epilogue end (size=2) */
445 /* function Compute_Timeouts size 97 (94) */
446 .size Compute_Timeouts, .-Compute_Timeouts
447 .stabs "pom:r(4,4)",64,0,161,18
448 .stabs "corr:r(4,4)",64,0,162,24
449 .stabn 192,0,0,.LBB4-Compute_Timeouts
450 .stabn 224,0,0,.LBE4-Compute_Timeouts
451 .Lscope1:
452 .stabs "",36,0,0,.Lscope1-Compute_Timeouts
453 .stabs "Send:F(0,20)",36,0,199,Send
454 .stabs "len:P(4,2)",64,0,198,18
455 .stabs "wait_time:P(4,4)",64,0,198,14
456 .global Send
457 .type Send, @function
458 Send:
194:level3.c ****
195:level3.c **** //--------------------------------------------------------------
196:level3.c **** //send command and wait
197:level3.c **** //
198:level3.c **** void Send( uint8_t len , uint16_t wait_time )
199:level3.c **** {
459 .stabn 68,0,199,.LM69-Send
460 .LM69:
461 /* prologue: frame size=0 */
462 01d6 DF92 push r13
463 01d8 EF92 push r14
464 01da FF92 push r15
465 01dc 0F93 push r16
466 01de 1F93 push r17
467 01e0 CF93 push r28
468 01e2 DF93 push r29
469 /* prologue end (size=7) */
470 01e4 282F mov r18,r24
471 01e6 7B01 movw r14,r22
200:level3.c **** uint8_t fwd_bit_count;
201:level3.c **** int i;
202:level3.c **** forward_ptr = data_buffer;
472 .stabn 68,0,202,.LM70-Send
473 .LM70:
474 .LBB5:
475 01e8 80E0 ldi r24,lo8(data_buffer)
476 01ea 90E0 ldi r25,hi8(data_buffer)
477 01ec 9093 0000 sts (forward_ptr)+1,r25
478 01f0 8093 0000 sts forward_ptr,r24
203:level3.c **** fwd_bit_count = 0;
479 .stabn 68,0,203,.LM71-Send
480 .LM71:
481 01f4 DD24 clr r13
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s page 13
204:level3.c ****
205:level3.c **** for ( i = 0 ; i < len ; i++ )
482 .stabn 68,0,205,.LM72-Send
483 .LM72:
484 01f6 3327 clr r19
485 01f8 2115 cp r18,__zero_reg__
486 01fa 3105 cpc r19,__zero_reg__
487 01fc 51F0 breq .L39
488 01fe 00E0 ldi r16,lo8(cmd_message)
489 0200 10E0 ldi r17,hi8(cmd_message)
490 0202 E901 movw r28,r18
491 .L36:
206:level3.c **** fwd_bit_count += Prepare_Data( cmd_message[ i ] );
492 .stabn 68,0,206,.LM73-Send
493 .LM73:
494 0204 F801 movw r30,r16
495 0206 8191 ld r24,Z+
496 0208 8F01 movw r16,r30
497 020a 00D0 rcall Prepare_Data
498 020c D80E add r13,r24
499 .stabn 68,0,205,.LM74-Send
500 .LM74:
501 020e 2197 sbiw r28,1
502 0210 C9F7 brne .L36
503 .L39:
207:level3.c ****
208:level3.c **** Compute_Timeouts( cmd_message[ 0 ] );
504 .stabn 68,0,208,.LM75-Send
505 .LM75:
506 0212 8091 0000 lds r24,cmd_message
507 0216 7EDF rcall Compute_Timeouts
209:level3.c **** ClearCaptureBuffers( );
508 .stabn 68,0,209,.LM76-Send
509 .LM76:
510 0218 00D0 rcall ClearCaptureBuffers
210:level3.c ****
211:level3.c **** maxCaptureTimeLow = ( uint8_t )maxTGeneral;
511 .stabn 68,0,211,.LM77-Send
512 .LM77:
513 021a 8091 0000 lds r24,maxTGeneral
514 021e 8093 0000 sts maxCaptureTimeLow,r24
212:level3.c **** maxCaptureTimeHi = maxTGeneral >> 8;
515 .stabn 68,0,212,.LM78-Send
516 .LM78:
517 0222 8091 0000 lds r24,maxTGeneral
518 0226 9091 0000 lds r25,(maxTGeneral)+1
519 022a 892F mov r24,r25
520 022c 9927 clr r25
521 022e 8093 0000 sts maxCaptureTimeHi,r24
213:level3.c ****
214:level3.c **** SendForward( fwd_bit_count );
522 .stabn 68,0,214,.LM79-Send
523 .LM79:
524 0232 8D2D mov r24,r13
525 0234 00D0 rcall SendForward
215:level3.c ****
216:level3.c **** if ( wait_time != 0 )
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s page 14
526 .stabn 68,0,216,.LM80-Send
527 .LM80:
528 0236 E114 cp r14,__zero_reg__
529 0238 F104 cpc r15,__zero_reg__
530 023a 11F0 breq .L31
217:level3.c **** Wait( wait_time );
531 .stabn 68,0,217,.LM81-Send
532 .LM81:
533 023c C701 movw r24,r14
534 023e 00D0 rcall Wait
218:level3.c **** }
535 .stabn 68,0,218,.LM82-Send
536 .LM82:
537 .L31:
538 .LBE5:
539 /* epilogue: frame size=0 */
540 0240 DF91 pop r29
541 0242 CF91 pop r28
542 0244 1F91 pop r17
543 0246 0F91 pop r16
544 0248 FF90 pop r15
545 024a EF90 pop r14
546 024c DF90 pop r13
547 024e 0895 ret
548 /* epilogue end (size=8) */
549 /* function Send size 62 (47) */
550 .size Send, .-Send
551 .stabs "fwd_bit_count:r(4,2)",64,0,200,13
552 .stabs "i:r(0,1)",64,0,201,28
553 .stabn 192,0,0,.LBB5-Send
554 .stabn 224,0,0,.LBE5-Send
555 .Lscope2:
556 .stabs "",36,0,0,.Lscope2-Send
557 .stabs "AddCRC:F(0,20)",36,0,224,AddCRC
558 .stabs "where:P(4,2)",64,0,223,17
559 .global AddCRC
560 .type AddCRC, @function
561 AddCRC:
219:level3.c ****
220:level3.c ****
221:level3.c **** //--------------------------------------------------------------
222:level3.c **** // Appends crc to ISO15693 command
223:level3.c **** void AddCRC( uint8_t where )
224:level3.c **** {
562 .stabn 68,0,224,.LM83-AddCRC
563 .LM83:
564 /* prologue: frame size=0 */
565 0250 1F93 push r17
566 /* prologue end (size=1) */
567 0252 182F mov r17,r24
225:level3.c **** uint16_t crc = CRC( cmd_message , where );
568 .stabn 68,0,225,.LM84-AddCRC
569 .LM84:
570 .LBB6:
571 0254 682F mov r22,r24
572 0256 80E0 ldi r24,lo8(cmd_message)
573 0258 90E0 ldi r25,hi8(cmd_message)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s page 15
574 025a 00D0 rcall CRC
575 025c 9C01 movw r18,r24
226:level3.c **** cmd_message[ where++ ] = crc & 255;
576 .stabn 68,0,226,.LM85-AddCRC
577 .LM85:
578 025e 80E0 ldi r24,lo8(cmd_message)
579 0260 90E0 ldi r25,hi8(cmd_message)
580 0262 FC01 movw r30,r24
581 0264 E10F add r30,r17
582 0266 F11D adc r31,__zero_reg__
583 0268 2083 st Z,r18
584 026a 1F5F subi r17,lo8(-(1))
227:level3.c **** cmd_message[ where ] = crc >> 8;
585 .stabn 68,0,227,.LM86-AddCRC
586 .LM86:
587 026c FC01 movw r30,r24
588 026e E10F add r30,r17
589 0270 F11D adc r31,__zero_reg__
590 0272 832F mov r24,r19
591 0274 9927 clr r25
592 0276 8083 st Z,r24
228:level3.c ****
229:level3.c **** }
593 .stabn 68,0,229,.LM87-AddCRC
594 .LM87:
595 .LBE6:
596 /* epilogue: frame size=0 */
597 0278 1F91 pop r17
598 027a 0895 ret
599 /* epilogue end (size=2) */
600 /* function AddCRC size 22 (19) */
601 .size AddCRC, .-AddCRC
602 .stabs "crc:r(4,4)",64,0,225,18
603 .stabn 192,0,0,.LBB6-AddCRC
604 .stabn 224,0,0,.LBE6-AddCRC
605 .Lscope3:
606 .stabs "",36,0,0,.Lscope3-AddCRC
607 .stabs "TINVENTORY:t(1,1)=(1,2)=s16mask_len:(4,2),0,8;value:(4,2),8,8;mask:(1,3)=ar(12,3);0;11;(4,
608 .stabs "InventoryStep_version4:F(4,1)",36,0,261,InventoryStep_version4
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -