📄 os_cpu_a.ls1
字号:
561 ;
562 ; *UserStkSP=STKCount;
563 ;
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 9
564 ; do
565 ; {
566 ; SysStkSP++;
567 ; UserStkSP++;
568 ; *UserStkSP=*SysStkSP;
569 ; STKCount--;
570 ; }while(STKCount!=0);
571 ; } */
572 ; OSTimeTick();
573 ; SOURCE LINE # 211
002A 120000 F 574 LCALL _?OSTimeTick
575 ; OSIntExit();
576 ; SOURCE LINE # 212
002D 120000 F 577 LCALL _?OSIntExit
578 ; }
579 ; SOURCE LINE # 213
0030 D007 580 POP AR7
0032 D006 581 POP AR6
0034 D005 582 POP AR5
0036 D004 583 POP AR4
0038 D003 584 POP AR3
003A D002 585 POP AR2
003C D001 586 POP AR1
003E D000 587 POP AR0
0040 D0D0 588 POP PSW
0042 D082 589 POP DPL
0044 D083 590 POP DPH
0046 D0F0 591 POP B
0048 D0E0 592 POP ACC
004A 32 593 RETI
594 ; END OF OSTickISR
595
596 ;
597 ; void OSIntCtxSw(void)
598
---- 599 RSEG ?PR?OSIntCtxSw?OS_CPU_A
0000 600 OSIntCtxSw:
601 USING 0
602 ; SOURCE LINE # 215
603 ; {
604 ; SOURCE LINE # 216
605 ; OS_STK idata *SysStkSP;
606 ; OS_STK *UserStkSP;
607 ; INT8U STKCount;
608 ;
609 ; OSTaskSwHook();
610 ; SOURCE LINE # 221
0000 120000 F 611 LCALL _?OSTaskSwHook
612 ;
613 ; OSTCBCur=OSTCBHighRdy;
614 ; SOURCE LINE # 223
0003 900000 F 615 MOV DPTR,#OSTCBHighRdy
0006 E0 616 MOVX A,@DPTR
0007 F9 617 MOV R1,A
0008 A3 618 INC DPTR
0009 E0 619 MOVX A,@DPTR
000A FA 620 MOV R2,A
000B A3 621 INC DPTR
000C E0 622 MOVX A,@DPTR
000D 900000 F 623 MOV DPTR,#OSTCBCur
0010 C9 624 XCH A,R1
0011 F0 625 MOVX @DPTR,A
0012 A3 626 INC DPTR
0013 EA 627 MOV A,R2
0014 F0 628 MOVX @DPTR,A
0015 A3 629 INC DPTR
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 10
0016 E9 630 MOV A,R1
0017 F0 631 MOVX @DPTR,A
632 ; OSPrioCur=OSPrioHighRdy;
633 ; SOURCE LINE # 224
0018 900000 F 634 MOV DPTR,#OSPrioHighRdy
001B E0 635 MOVX A,@DPTR
001C 900000 F 636 MOV DPTR,#OSPrioCur
001F F0 637 MOVX @DPTR,A
638 ;
639 ; UserStkSP=OSTCBCur->OSTCBStkPtr;
640 ; SOURCE LINE # 226
0020 900000 F 641 MOV DPTR,#OSTCBCur
0023 E0 642 MOVX A,@DPTR
0024 FB 643 MOV R3,A
0025 A3 644 INC DPTR
0026 E0 645 MOVX A,@DPTR
0027 FA 646 MOV R2,A
0028 A3 647 INC DPTR
0029 E0 648 MOVX A,@DPTR
002A F9 649 MOV R1,A
002B 120000 F 650 LCALL ?C?PLDPTR
651 ;---- Variable 'UserStkSP?244' assigned to Register 'R1/R2/R3' ----
652 ; SysStkSP=UserSysSP_Start;
653 ; SOURCE LINE # 227
002E AF00 F 654 MOV R7,UserSysSP_Start
655 ;---- Variable 'SysStkSP?243' assigned to Register 'R7' ----
656 ; STKCount=*UserStkSP;
657 ; SOURCE LINE # 228
0030 120000 F 658 LCALL ?C?CLDPTR
0033 FE 659 MOV R6,A
660 ;---- Variable 'STKCount?245' assigned to Register 'R6' ----
661 ; // STKCount-=4;
662 ; SP=UserSysSP_Start+STKCount;
663 ; SOURCE LINE # 230
0034 2500 F 664 ADD A,UserSysSP_Start
0036 F581 665 MOV SP,A
0038 666 ?C0011:
667 ;
668 ; do{
669 ; SOURCE LINE # 232
670 ; UserStkSP++;
671 ; SOURCE LINE # 233
0038 7401 672 MOV A,#01H
003A 29 673 ADD A,R1
003B F9 674 MOV R1,A
003C E4 675 CLR A
003D 3A 676 ADDC A,R2
003E FA 677 MOV R2,A
678 ; SysStkSP++;
679 ; SOURCE LINE # 234
003F 0F 680 INC R7
681 ; *SysStkSP=*UserStkSP;
682 ; SOURCE LINE # 235
0040 120000 F 683 LCALL ?C?CLDPTR
0043 A807 684 MOV R0,AR7
0045 F6 685 MOV @R0,A
686 ; STKCount--;
687 ; SOURCE LINE # 236
0046 DEF0 688 DJNZ R6,?C0011
689 ; }while(STKCount!=0);
690 ; SOURCE LINE # 237
691 ;
692 ; #if CXBP_OK>0
693 ; UserStkSP++;
694 ; SOURCE LINE # 240
0048 7401 695 MOV A,#01H
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 11
004A 29 696 ADD A,R1
004B F9 697 MOV R1,A
004C E4 698 CLR A
004D 3A 699 ADDC A,R2
004E FA 700 MOV R2,A
701 ; UserStkSP_tmp=UserStkSP;
702 ; SOURCE LINE # 241
004F 900000 F 703 MOV DPTR,#UserStkSP_tmp
0052 EB 704 MOV A,R3
0053 F0 705 MOVX @DPTR,A
0054 A3 706 INC DPTR
0055 EA 707 MOV A,R2
0056 F0 708 MOVX @DPTR,A
0057 A3 709 INC DPTR
0058 E9 710 MOV A,R1
0059 F0 711 MOVX @DPTR,A
712 ; #pragma asm
713 ; MOV R0,#LOW (UserStkSP_tmp)
005A 7800 F 714 MOV R0,#LOW (UserStkSP_tmp)
715 ; ;MOV R0,#UserStkSP_tmp
716 ;MOV R0,#UserStkSP_tmp
717 ; ;INC R0
718 ;INC R0
719 ; ;MOV DPH,@R0 ;变量UserStkSP在IDATA中
720 ;MOV DPH,@R0 ;变量UserStkSP在IDATA中
721 ; ;INC R0
722 ;INC R0
723 ; ;MOV DPL,@R0
724 ;MOV DPL,@R0
725 ;
726
727 ; ;MOVX A,@DPTR
728 ;MOVX A,@DPTR
729 ; MOVX A,@R0
005C E2 730 MOVX A,@R0
731 ; MOV ?C_XBP,A ;?C_XBP 仿真堆栈指针高8位
005D F500 F 732 MOV ?C_XBP,A ;?C_XBP 仿真堆栈指针高8位
733 ; ;INC DPTR
734 ;INC DPTR
735 ; INC R0
005F 08 736 INC R0
737 ; ;MOVX A,@DPTR
738 ;MOVX A,@DPTR
739 ; MOVX A,@R0
0060 E2 740 MOVX A,@R0
741 ; MOV ?C_XBP+1,A ;?C_XBP 仿真堆栈指针低8位
0061 F500 F 742 MOV ?C_XBP+1,A ;?C_XBP 仿真堆栈指针低8位
743 ; #pragma endasm
744 ; #endif
745 ;
746 ; #pragma asm
747 ; POPALL
748 POPALL
772 ; RETI
0085 32 773 RETI
774 ; #pragma endasm
775 ;
776 ; }
777 ; SOURCE LINE # 266
0086 22 778 RET
779 ; END OF OSIntCtxSw
780
781 ;
782 ; void OSStartHighRdy(void)
783
---- 784 RSEG ?PR?OSStartHighRdy?OS_CPU_A
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 12
0000 785 OSStartHighRdy:
786 USING 0
787 ; SOURCE LINE # 268
788 ; {
789 ; SOURCE LINE # 269
790 ; OS_STK idata *SysStkSP;
791 ; OS_STK *UserStkSP;
792 ; INT8U STKCount;
793 ;
794 ; OSTaskSwHook();
795 ; SOURCE LINE # 274
0000 120000 F 796 LCALL _?OSTaskSwHook
797 ;
798 ;
799 ; SysStkSP=UserSysSP_Start;
800 ; SOURCE LINE # 277
0003 AF00 F 801 MOV R7,UserSysSP_Start
802 ;---- Variable 'SysStkSP?346' assigned to Register 'R7' ----
803 ; OSTCBCur=OSTCBHighRdy;
804 ; SOURCE LINE # 278
0005 900000 F 805 MOV DPTR,#OSTCBHighRdy
0008 E0 806 MOVX A,@DPTR
0009 F9 807 MOV R1,A
000A A3 808 INC DPTR
000B E0 809 MOVX A,@DPTR
000C FA 810 MOV R2,A
000D A3 811 INC DPTR
000E E0 812 MOVX A,@DPTR
000F 900000 F 813 MOV DPTR,#OSTCBCur
0012 C9 814 XCH A,R1
0013 F0 815 MOVX @DPTR,A
0014 A3 816 INC DPTR
0015 EA 817 MOV A,R2
0016 F0 818 MOVX @DPTR,A
0017 A3 819 INC DPTR
0018 E9 820 MOV A,R1
0019 F0 821 MOVX @DPTR,A
822 ; OSPrioCur=OSPrioHighRdy;
823 ; SOURCE LINE # 279
001A 900000 F 824 MOV DPTR,#OSPrioHighRdy
001D E0 825 MOVX A,@DPTR
001E 900000 F 826 MOV DPTR,#OSPrioCur
0021 F0 827 MOVX @DPTR,A
828 ;
829 ; UserStkSP=OSTCBCur->OSTCBStkPtr;
830 ; SOURCE LINE # 281
0022 900000 F 831 MOV DPTR,#OSTCBCur
0025 E0 832 MOVX A,@DPTR
0026 FB 833 MOV R3,A
0027 A3 834 INC DPTR
0028 E0 835 MOVX A,@DPTR
0029 FA 836 MOV R2,A
002A A3 837 INC DPTR
002B E0 838 MOVX A,@DPTR
002C F9 839 MOV R1,A
002D 120000 F 840 LCALL ?C?PLDPTR
841 ;---- Variable 'UserStkSP?347' assigned to Register 'R1/R2/R3' ----
842 ; STKCount=*UserStkSP;
843 ; SOURCE LINE # 282
0030 120000 F 844 LCALL ?C?CLDPTR
0033 FE 845 MOV R6,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -