📄 16f884.lst
字号:
462 0159 008A movwf 10
463 015A int_restore
464 015A 0859 movf saved_status,w
465 015B 0083 movwf 3
466 015C 0EFC swapf saved_w
467 015D 0E7C swapf saved_w,w
468 015E 0009 retfie
469
470 psect intentry
471 0004 int_entry
472 0004 00FC movwf saved_w
473 0005 0803 movf 3,w
474 0006 0183 clrf 3
475 0007 00D9 movwf saved_status
476 0008 0804 movf 4,w
477 0009 00DA movwf saved_fsr
478 000A 080A movf 10,w
479 000B 00DB movwf saved_pclath
480 000C 018A clrf 10
481
482 psect intsave
483 0059 saved_status
484 0059 ds 1
485 005A saved_fsr
486 005A ds 1
487 005B saved_pclath
488 005B ds 1
489
490 psect text2
491 0343 _display
492 ; _temp_h assigned to ?a_display+0
493 0000 _display$temp_h set ?a_display
494 ; _temp_l assigned to ?a_display+1
495 0000 _display$temp_l set ?a_display+1
496 ;16f884.c: 275: void display(void )
497 0343 1683 bsf 3,5
498 0344 1303 bcf 3,6 ;carry unused
499 0345 0821 movf _dis_i^(0+128),w
500 0346 3ECC addlw _display_buffer
501 0347 0084 movwf 4
502 0348 1383 bcf 3,7
503 0349 0800 movf 0,w
504 034A 39F0 andlw -16
505 034B 1283 bcf 3,5
506 034C 00B0 movwf ?a_display
507 ;16f884.c: 279: temp_l=display_buffer[dis_i]&0x
+ 0f;
508 034D 1683 bsf 3,5
509 034E 0821 movf _dis_i^(0+128),w
510 034F 3ECC addlw _display_buffer
511 0350 0084 movwf 4
512 0351 0800 movf 0,w
513 0352 390F andlw 15
514 0353 1283 bcf 3,5
515 0354 00B1 movwf ?a_display+1
516 ;16f884.c: 280: if(dis_i==0){PORTA=0;PORTC=temp
+ _h;PORTD=temp_l|128;}
517 0355 1683 bsf 3,5
518 0356 08A1 movf _dis_i^(0+128)
519 0357 1D03 btfss 3,2
520 0358 2B60 goto l135
521 0359 1283 bcf 3,5
522 035A 0185 clrf 5 ;volatile
523 035B 0830 movf ?a_display,w
524 035C 0087 movwf 7 ;volatile
525 035D 0831 movf ?a_display+1,w
526 035E 3880 iorlw -128
527 035F 2BB3 goto L18
528 0360 l135
529 ;16f884.c: 281: else if(dis_i==1){PORTA=0;PORTC
+ =temp_h;PORTD=temp_l|64;}
530 0360 0B21 decfsz _dis_i^(0+128),w
531 0361 2B69 goto l137
532 0362 1283 bcf 3,5
533 0363 0185 clrf 5 ;volatile
534 0364 0830 movf ?a_display,w
535 0365 0087 movwf 7 ;volatile
536 0366 0831 movf ?a_display+1,w
537 0367 3840 iorlw 64
538 0368 2BB3 goto L18
539 0369 l137
540 ;16f884.c: 282: else if(dis_i==2){PORTA=0;PORTC
+ =temp_h;PORTD=temp_l|16;}
541 0369 0821 movf _dis_i^(0+128),w
542 036A 3A02 xorlw 2
543 036B 1D03 btfss 3,2
544 036C 2B74 goto l139
545 036D 1283 bcf 3,5
546 036E 0185 clrf 5 ;volatile
547 036F 0830 movf ?a_display,w
548 0370 0087 movwf 7 ;volatile
549 0371 0831 movf ?a_display+1,w
550 0372 3810 iorlw 16
551 0373 2BB3 goto L18
552 0374 l139
553 ;16f884.c: 283: else if(dis_i==3){PORTA=0;PORTC
+ =temp_h|8;PORTD=temp_l;}
554 0374 0821 movf _dis_i^(0+128),w
555 0375 3A03 xorlw 3
556 0376 1D03 btfss 3,2
557 0377 2B7D goto l141
558 0378 1283 bcf 3,5
559 0379 0185 clrf 5 ;volatile
560 037A 0830 movf ?a_display,w
561 037B 3808 iorlw 8
562 037C 2BB1 goto L19
563 037D l141
564 ;16f884.c: 284: else if(dis_i==4){PORTA=0;PORTC
+ =temp_h|2;PORTD=temp_l;}
565 037D 0821 movf _dis_i^(0+128),w
566 037E 3A04 xorlw 4
567 037F 1D03 btfss 3,2
568 0380 2B86 goto l143
569 0381 1283 bcf 3,5
570 0382 0185 clrf 5 ;volatile
571 0383 0830 movf ?a_display,w
572 0384 3802 iorlw 2
573 0385 2BB1 goto L19
574 0386 l143
575 ;16f884.c: 285: else if(dis_i==5){PORTA=0;PORTC
+ =temp_h|1;PORTD=temp_l;}
576 0386 0821 movf _dis_i^(0+128),w
577 0387 3A05 xorlw 5
578 0388 1D03 btfss 3,2
579 0389 2B8F goto l145
580 038A 1283 bcf 3,5
581 038B 0185 clrf 5 ;volatile
582 038C 0830 movf ?a_display,w
583 038D 3801 iorlw 1
584 038E 2BB1 goto L19
585 038F l145
586 ;16f884.c: 286: else if(dis_i==6){PORTA=32;PORT
+ C=temp_h;PORTD=temp_l;}
587 038F 0821 movf _dis_i^(0+128),w
588 0390 3A06 xorlw 6
589 0391 1D03 btfss 3,2
590 0392 2B95 goto l147
591 0393 3020 movlw 32
592 0394 2BAE goto L20
593 0395 l147
594 ;16f884.c: 287: else if(dis_i==7){PORTA=16;PORT
+ C=temp_h;PORTD=temp_l;}
595 0395 0821 movf _dis_i^(0+128),w
596 0396 3A07 xorlw 7
597 0397 1D03 btfss 3,2
598 0398 2B9B goto l149
599 0399 3010 movlw 16
600 039A 2BAE goto L20
601 039B l149
602 ;16f884.c: 288: else if(dis_i==8){PORTA=8;PORTC
+ =temp_h;PORTD=temp_l;}
603 039B 0821 movf _dis_i^(0+128),w
604 039C 3A08 xorlw 8
605 039D 1D03 btfss 3,2
606 039E 2BA1 goto l151
607 039F 3008 movlw 8
608 03A0 2BAE goto L20
609 03A1 l151
610 ;16f884.c: 289: else if(dis_i==9){PORTA=4;PORTC
+ =temp_h;PORTD=temp_l;}
611 03A1 0821 movf _dis_i^(0+128),w
612 03A2 3A09 xorlw 9
613 03A3 1D03 btfss 3,2
614 03A4 2BA7 goto l153
615 03A5 3004 movlw 4
616 03A6 2BAE goto L20
617 03A7 l153
618 ;16f884.c: 290: else if(dis_i==10){PORTA=2;PORT
+ C=temp_h;PORTD=temp_l;}
619 03A7 0821 movf _dis_i^(0+128),w
620 03A8 3A0A xorlw 10
621 03A9 1D03 btfss 3,2
622 03AA 2BAD goto l155
623 03AB 3002 movlw 2
624 03AC 2BAE goto L20
625 03AD l155
626 ;16f884.c: 291: else {PORTA=1;PORTC=temp_h;PORT
+ D=temp_l;}
627 03AD 3001 movlw 1
628 03AE L20
629 03AE 1283 bcf 3,5
630 03AF 0085 movwf 5 ;volatile
631 03B0 0830 movf ?a_display,w
632 03B1 L19
633 03B1 0087 movwf 7 ;volatile
634 03B2 0831 movf ?a_display+1,w
635 03B3 L18
636 03B3 0088 movwf 8 ;volatile
637 ;16f884.c: 292: dis_i++;
638 03B4 1683 bsf 3,5
639 03B5 0AA1 incf _dis_i^(0+128)
640 ;16f884.c: 293: if(dis_i>11)dis_i=0;
641 03B6 300C movlw 12
642 03B7 0221 subwf _dis_i^(0+128),w
643 03B8 1803 btfsc 3,0
644 03B9 01A1 clrf _dis_i^(0+128)
645 ;16f884.c: 295: }
646 03BA 1283 bcf 3,5
647 03BB 0008 return ;W free
648
649 psect text3
650 0AF4 _key_identify
651 ;16f884.c: 297: void key_identify(void)
652 0AF4 0183 clrf 3 ;select bank 0
653 0AF5 0828 movf _key_data,w ;volatile
654 0AF6 3A0E xorlw 14
655 0AF7 1D03 btfss 3,2
656 0AF8 2AFB goto l159
657 0AF9 15A1 bsf _ext/(0+8),_ext& (0+7)
658 0AFA 0008 return
659 0AFB l159
660 ;16f884.c: 301: else if(key_data==13)up=1;
661 0AFB 0828 movf _key_data,w ;volatile
662 0AFC 3A0D xorlw 13
663 0AFD 1D03 btfss 3,2
664 0AFE 2B01 goto l161
665 0AFF 1422 bsf _up/(0+8),_up& (0+7)
666 0B00 0008 return
667 0B01 l161
668 ;16f884.c: 302: else if(key_data==11)down=1;
669 0B01 0828 movf _key_data,w ;volatile
670 0B02 3A0B xorlw 11
671 0B03 1D03 btfss 3,2
672 0B04 2B07 goto l163
673 0B05 1521 bsf _down/(0+8),_down& (0+7)
674 0B06 0008 return
675 0B07 l163
676 ;16f884.c: 303: else if(key_data==7)ok=1;
677 0B07 0828 movf _key_data,w ;volatile
678 0B08 3A07 xorlw 7
679 0B09 1903 btfsc 3,2
680 0B0A 16A1 bsf _ok/(0+8),_ok& (0+7)
681 ;16f884.c: 305: }
682 0B0B 0008 return ;W free
683
684 psect text5
685 01BD _temp_dis_buffer1
686 ; _bit3 assigned to ?a_temp_dis_buffer1+0
687 0000 _temp_dis_buffer1$bit3 set ?a_temp_dis_buffer1
688 ;_bit3 stored from w
689 01BD 0183 clrf 3 ;select bank 0
690 01BE 00B3 movwf ?a_temp_dis_buffer1
691 ;16f884.c: 315: void temp_dis_buffer1(unsigned
+ char bit3,unsigned char bit2,unsigned char bit1
+ ,unsigned char bit0)
692 01BF 3008 movlw _display_data shr (0+8)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -