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 + -
显示快捷键?