os_core.ls1
来自「在51单片机上移植成功的UCOS-II操作系统源代码,包括源代码及相关注释」· LS1 代码 · 共 1,120 行 · 第 1/5 页
LS1
1,120 行
797 ; for (i = 0; i < (OS_LOWEST_PRIO + 1); i++) { /* Clear the priority ta
ble */
798 ; SOURCE LINE # 254
008E 850083 F 799 MOV DPH,?C_XBP
0091 850082 F 800 MOV DPL,?C_XBP+01H
0094 E4 801 CLR A
0095 F0 802 MOVX @DPTR,A
0096 A3 803 INC DPTR
0097 F0 804 MOVX @DPTR,A
0098 805 ?C0004:
0098 850083 F 806 MOV DPH,?C_XBP
009B 850082 F 807 MOV DPL,?C_XBP+01H
009E E0 808 MOVX A,@DPTR
009F FE 809 MOV R6,A
00A0 A3 810 INC DPTR
00A1 E0 811 MOVX A,@DPTR
00A2 FF 812 MOV R7,A
00A3 C3 813 CLR C
00A4 941D 814 SUBB A,#01DH
00A6 EE 815 MOV A,R6
00A7 9400 816 SUBB A,#00H
00A9 5027 817 JNC ?C0005
818 ; OSTCBPrioTbl[i] = (OS_TCB *)0;
819 ; SOURCE LINE # 255
00AB 900000 F 820 MOV DPTR,#OSTCBPrioTbl
00AE 75F003 821 MOV B,#03H
00B1 EF 822 MOV A,R7
00B2 120000 F 823 LCALL ?C?OFFXADD
00B5 EE 824 MOV A,R6
00B6 75F003 825 MOV B,#03H
00B9 A4 826 MUL AB
00BA 2583 827 ADD A,DPH
00BC F583 828 MOV DPH,A
00BE E4 829 CLR A
00BF F0 830 MOVX @DPTR,A
00C0 A3 831 INC DPTR
00C1 F0 832 MOVX @DPTR,A
00C2 A3 833 INC DPTR
00C3 F0 834 MOVX @DPTR,A
835 ; }
836 ; SOURCE LINE # 256
00C4 850083 F 837 MOV DPH,?C_XBP
00C7 850082 F 838 MOV DPL,?C_XBP+01H
00CA 75F001 839 MOV B,#01H
00CD 120000 F 840 LCALL ?C?IILDX
00D0 80C6 841 SJMP ?C0004
00D2 842 ?C0005:
843 ; for (i = 0; i < (OS_MAX_TASKS + OS_N_SYS_TASKS - 1); i++) { /* Init. list of free TC
Bs */
844 ; SOURCE LINE # 257
00D2 850083 F 845 MOV DPH,?C_XBP
00D5 850082 F 846 MOV DPL,?C_XBP+01H
00D8 E4 847 CLR A
00D9 F0 848 MOVX @DPTR,A
00DA A3 849 INC DPTR
A51 MACRO ASSEMBLER OS_CORE 09/09/2007 21:12:24 PAGE 15
00DB F0 850 MOVX @DPTR,A
00DC 851 ?C0007:
00DC 850083 F 852 MOV DPH,?C_XBP
00DF 850082 F 853 MOV DPL,?C_XBP+01H
00E2 E0 854 MOVX A,@DPTR
00E3 FE 855 MOV R6,A
00E4 A3 856 INC DPTR
00E5 E0 857 MOVX A,@DPTR
00E6 FF 858 MOV R7,A
00E7 C3 859 CLR C
00E8 941B 860 SUBB A,#01BH
00EA EE 861 MOV A,R6
00EB 9400 862 SUBB A,#00H
00ED 5043 863 JNC ?C0008
864 ; OSTCBTbl[i].OSTCBNext = &OSTCBTbl[i + 1];
865 ; SOURCE LINE # 258
00EF 7C00 866 MOV R4,#00H
00F1 7D11 867 MOV R5,#011H
00F3 120000 F 868 LCALL ?C?IMUL
00F6 7400 F 869 MOV A,#LOW (OSTCBTbl+011H)
00F8 2F 870 ADD A,R7
00F9 F9 871 MOV R1,A
00FA 7400 F 872 MOV A,#HIGH (OSTCBTbl+011H)
00FC 3E 873 ADDC A,R6
00FD FA 874 MOV R2,A
00FE 850083 F 875 MOV DPH,?C_XBP
0101 850082 F 876 MOV DPL,?C_XBP+01H
0104 E0 877 MOVX A,@DPTR
0105 FE 878 MOV R6,A
0106 A3 879 INC DPTR
0107 E0 880 MOVX A,@DPTR
0108 900000 F 881 MOV DPTR,#OSTCBTbl+03H
010B 75F011 882 MOV B,#011H
010E 120000 F 883 LCALL ?C?OFFXADD
0111 EE 884 MOV A,R6
0112 75F011 885 MOV B,#011H
0115 A4 886 MUL AB
0116 2583 887 ADD A,DPH
0118 F583 888 MOV DPH,A
011A 7401 889 MOV A,#01H
011C F0 890 MOVX @DPTR,A
011D A3 891 INC DPTR
011E EA 892 MOV A,R2
011F F0 893 MOVX @DPTR,A
0120 A3 894 INC DPTR
0121 E9 895 MOV A,R1
0122 F0 896 MOVX @DPTR,A
897 ; }
898 ; SOURCE LINE # 259
0123 850083 F 899 MOV DPH,?C_XBP
0126 850082 F 900 MOV DPL,?C_XBP+01H
0129 E4 901 CLR A
012A 75F001 902 MOV B,#01H
012D 120000 F 903 LCALL ?C?IILDX
0130 80AA 904 SJMP ?C0007
0132 905 ?C0008:
906 ; OSTCBTbl[OS_MAX_TASKS + OS_N_SYS_TASKS - 1].OSTCBNext = (OS_TCB *)0; /* Last OS_TC
B */
907 ; SOURCE LINE # 260
0132 900000 F 908 MOV DPTR,#OSTCBTbl+01CEH
0135 E4 909 CLR A
0136 F0 910 MOVX @DPTR,A
0137 A3 911 INC DPTR
0138 F0 912 MOVX @DPTR,A
0139 A3 913 INC DPTR
013A F0 914 MOVX @DPTR,A
A51 MACRO ASSEMBLER OS_CORE 09/09/2007 21:12:24 PAGE 16
915 ; OSTCBFreeList = &OSTCBTbl[0];
916 ; SOURCE LINE # 261
013B 900000 F 917 MOV DPTR,#OSTCBFreeList
013E 04 918 INC A
013F F0 919 MOVX @DPTR,A
0140 A3 920 INC DPTR
0141 7400 F 921 MOV A,#HIGH (OSTCBTbl)
0143 F0 922 MOVX @DPTR,A
0144 A3 923 INC DPTR
0145 7400 F 924 MOV A,#LOW (OSTCBTbl)
0147 F0 925 MOVX @DPTR,A
926 ;
927 ; #if OS_MAX_EVENTS >= 2
928 ; for (i = 0; i < (OS_MAX_EVENTS - 1); i++) { /* Init. list of free EVENT co
ntrol blocks */
929 ; SOURCE LINE # 264
0148 850083 F 930 MOV DPH,?C_XBP
014B 850082 F 931 MOV DPL,?C_XBP+01H
014E E4 932 CLR A
014F F0 933 MOVX @DPTR,A
0150 A3 934 INC DPTR
0151 F0 935 MOVX @DPTR,A
0152 936 ?C0010:
0152 850083 F 937 MOV DPH,?C_XBP
0155 850082 F 938 MOV DPL,?C_XBP+01H
0158 E0 939 MOVX A,@DPTR
0159 FE 940 MOV R6,A
015A A3 941 INC DPTR
015B E0 942 MOVX A,@DPTR
015C FF 943 MOV R7,A
015D C3 944 CLR C
015E 9401 945 SUBB A,#01H
0160 EE 946 MOV A,R6
0161 9400 947 SUBB A,#00H
0163 5043 948 JNC ?C0011
949 ; OSEventTbl[i].OSEventPtr = (OS_EVENT *)&OSEventTbl[i + 1];
950 ; SOURCE LINE # 265
0165 7C00 951 MOV R4,#00H
0167 7D0B 952 MOV R5,#0BH
0169 120000 F 953 LCALL ?C?IMUL
016C 7400 F 954 MOV A,#LOW (OSEventTbl+0BH)
016E 2F 955 ADD A,R7
016F F9 956 MOV R1,A
0170 7400 F 957 MOV A,#HIGH (OSEventTbl+0BH)
0172 3E 958 ADDC A,R6
0173 FA 959 MOV R2,A
0174 850083 F 960 MOV DPH,?C_XBP
0177 850082 F 961 MOV DPL,?C_XBP+01H
017A E0 962 MOVX A,@DPTR
017B FE 963 MOV R6,A
017C A3 964 INC DPTR
017D E0 965 MOVX A,@DPTR
017E 900000 F 966 MOV DPTR,#OSEventTbl
0181 75F00B 967 MOV B,#0BH
0184 120000 F 968 LCALL ?C?OFFXADD
0187 EE 969 MOV A,R6
0188 75F00B 970 MOV B,#0BH
018B A4 971 MUL AB
018C 2583 972 ADD A,DPH
018E F583 973 MOV DPH,A
0190 7401 974 MOV A,#01H
0192 F0 975 MOVX @DPTR,A
0193 A3 976 INC DPTR
0194 EA 977 MOV A,R2
0195 F0 978 MOVX @DPTR,A
0196 A3 979 INC DPTR
A51 MACRO ASSEMBLER OS_CORE 09/09/2007 21:12:24 PAGE 17
0197 E9 980 MOV A,R1
0198 F0 981 MOVX @DPTR,A
982 ; }
983 ; SOURCE LINE # 266
0199 850083 F 984 MOV DPH,?C_XBP
019C 850082 F 985 MOV DPL,?C_XBP+01H
019F E4 986 CLR A
01A0 75F001 987 MOV B,#01H
01A3 120000 F 988 LCALL ?C?IILDX
01A6 80AA 989 SJMP ?C0010
01A8 990 ?C0011:
991 ; OSEventTbl[OS_MAX_EVENTS - 1].OSEventPtr = (OS_EVENT *)0;
992 ; SOURCE LINE # 267
01A8 900000 F 993 MOV DPTR,#OSEventTbl+0BH
01AB E4 994 CLR A
01AC F0 995 MOVX @DPTR,A
01AD A3 996 INC DPTR
01AE F0 997 MOVX @DPTR,A
01AF A3 998 INC DPTR
01B0 F0 999 MOVX @DPTR,A
1000 ; OSEventFreeList = &OSEventTbl[0];
1001 ; SOURCE LINE # 268
01B1 7B01 1002 MOV R3,#01H
01B3 900000 F 1003 MOV DPTR,#OSEventFreeList
01B6 04 1004 INC A
01B7 F0 1005 MOVX @DPTR,A
01B8 A3 1006 INC DPTR
01B9 7400 F 1007 MOV A,#HIGH (OSEventTbl)
01BB F0 1008 MOVX @DPTR,A
01BC A3 1009 INC DPTR
01BD 7400 F 1010 MOV
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?