os_time.ls1

来自「在51单片机上移植成功的UCOS-II操作系统源代码,包括源代码及相关注释」· LS1 代码 · 共 1,130 行 · 第 1/5 页

LS1
1,130
字号
A51 MACRO ASSEMBLER  OS_TIME                                                              09/09/2007 21:13:22 PAGE     1


MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN OS_TIME.OBJ
ASSEMBLER INVOKED BY: D:\Keil\C51\BIN\A51.EXE OS_TIME.src PR(.\OS_TIME.ls1) EP DEBUG

LOC  OBJ            LINE     SOURCE

                       1     ; .\OS_TIME.SRC generated from: OS_TIME.C
                       2     ; COMPILER INVOKED BY:
                       3     ;        D:\Keil\C51\BIN\C51.EXE OS_TIME.C LARGE BROWSE DEBUG OBJECTEXTEND SRC(.\OS_TIME.SR
                             C)
                       4     
                       5     $nomod51 
                       6     
                       7     NAME    OS_TIME
                       8     
  0080                 9     P0      DATA    080H
  0090                10     P1      DATA    090H
  00A0                11     P2      DATA    0A0H
  00B0                12     P3      DATA    0B0H
  00B4                13     T0      BIT     0B0H.4
  00D6                14     AC      BIT     0D0H.6
  00B5                15     T1      BIT     0B0H.5
  00AF                16     EA      BIT     0A8H.7
  00A8                17     IE      DATA    0A8H
  00B7                18     RD      BIT     0B0H.7
  00AC                19     ES      BIT     0A8H.4
  00B8                20     IP      DATA    0B8H
  0098                21     RI      BIT     098H.0
  00B2                22     INT0    BIT     0B0H.2
  00D7                23     CY      BIT     0D0H.7
  0099                24     TI      BIT     098H.1
  00B3                25     INT1    BIT     0B0H.3
  00BC                26     PS      BIT     0B8H.4
  0081                27     SP      DATA    081H
  00D2                28     OV      BIT     0D0H.2
  00B6                29     WR      BIT     0B0H.6
  0099                30     SBUF    DATA    099H
  0087                31     PCON    DATA    087H
  0098                32     SCON    DATA    098H
  0089                33     TMOD    DATA    089H
  0088                34     TCON    DATA    088H
  0089                35     IE0     BIT     088H.1
  008B                36     IE1     BIT     088H.3
  00F0                37     B       DATA    0F0H
  00E0                38     ACC     DATA    0E0H
  00A9                39     ET0     BIT     0A8H.1
  00AB                40     ET1     BIT     0A8H.3
  008D                41     TF0     BIT     088H.5
  008F                42     TF1     BIT     088H.7
  009A                43     RB8     BIT     098H.2
  008C                44     TH0     DATA    08CH
  00A8                45     EX0     BIT     0A8H.0
  0088                46     IT0     BIT     088H.0
  008D                47     TH1     DATA    08DH
  009B                48     TB8     BIT     098H.3
  00AA                49     EX1     BIT     0A8H.2
  008A                50     IT1     BIT     088H.2
  00D0                51     P       BIT     0D0H.0
  009F                52     SM0     BIT     098H.7
  008A                53     TL0     DATA    08AH
  009E                54     SM1     BIT     098H.6
  008B                55     TL1     DATA    08BH
  009D                56     SM2     BIT     098H.5
  00B9                57     PT0     BIT     0B8H.1
A51 MACRO ASSEMBLER  OS_TIME                                                              09/09/2007 21:13:22 PAGE     2

  00BB                58     PT1     BIT     0B8H.3
  00D3                59     RS0     BIT     0D0H.3
  008C                60     TR0     BIT     088H.4
  00D4                61     RS1     BIT     0D0H.4
  008E                62     TR1     BIT     088H.6
  00B8                63     PX0     BIT     0B8H.0
  00BA                64     PX1     BIT     0B8H.2
  0083                65     DPH     DATA    083H
  0082                66     DPL     DATA    082H
  009C                67     REN     BIT     098H.4
  00B0                68     RXD     BIT     0B0H.0
  00B1                69     TXD     BIT     0B0H.1
  00D5                70     F0      BIT     0D0H.5
  00D0                71     PSW     DATA    0D0H
                      72     ?PR?_?OSTimeDly?OS_TIME                  SEGMENT CODE 
                      73     ?PR?_?OSTimeDlyHMSM?OS_TIME              SEGMENT CODE 
                      74     ?PR?_?OSTimeDlyResume?OS_TIME            SEGMENT CODE 
                      75     ?PR?_?OSTimeGet?OS_TIME                  SEGMENT CODE 
                      76     ?PR?_?OSTimeSet?OS_TIME                  SEGMENT CODE 
                      77             EXTRN   XDATA (OSRdyGrp)
                      78             EXTRN   IDATA (OSTCBCur)
                      79             EXTRN   CODE (_?OSSched)
                      80             EXTRN   XDATA (OSTime)
                      81             EXTRN   XDATA (OSTCBPrioTbl)
                      82             EXTRN   XDATA (OSRdyTbl)
                      83             EXTRN   CODE (?C?ADDXBP)
                      84             EXTRN   DATA (?C_XBP)
                      85             EXTRN   CODE (?C?CLDOPTR)
                      86             EXTRN   CODE (?C?ISTOPTR)
                      87             EXTRN   CODE (?C?XBPOFF)
                      88             EXTRN   CODE (?C?LMUL)
                      89             EXTRN   CODE (?C?ULDIV)
                      90             EXTRN   CODE (?C?LSTXDATA)
                      91             EXTRN   CODE (?C?IILDX)
                      92             EXTRN   CODE (?C?ILDOPTR)
                      93             PUBLIC  _?OSTimeSet
                      94             PUBLIC  _?OSTimeGet
                      95             PUBLIC  _?OSTimeDlyResume
                      96             PUBLIC  _?OSTimeDlyHMSM
                      97             PUBLIC  _?OSTimeDly
                      98     ; /*
                      99     ; *****************************************************************************************
                             ****************
                     100     ; *                                                uC/OS-II
                     101     ; *                                          The Real-Time Kernel
                     102     ; *                                             TIME MANAGEMENT
                     103     ; *
                     104     ; *                        (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
                     105     ; *                                           All Rights Reserved
                     106     ; *
                     107     ; *                                                  V2.00
                     108     ; *
                     109     ; * File : OS_TIME.C
                     110     ; * By   : Jean J. Labrosse
                     111     ; *****************************************************************************************
                             ****************
                     112     ; */
                     113     ; 
                     114     ; #ifndef  OS_MASTER_FILE
                     115     ; #include "includes.h"
                     116     ; #endif
                     117     ; 
                     118     ; /*
                     119     ; *****************************************************************************************
                             ****************
                     120     ; *                                DELAY TASK 'n' TICKS   (n from 0 to 65535)
A51 MACRO ASSEMBLER  OS_TIME                                                              09/09/2007 21:13:22 PAGE     3

                     121     ; *
                     122     ; * Description: This function is called to delay execution of the currently running task u
                             ntil the 
                     123     ; *              specified number of system ticks expires.  This, of course, directly equat
                             es to delaying
                     124     ; *              the current task for some time to expire.  No delay will result If the spe
                             cified delay is 
                     125     ; *              0.  If the specified delay is greater than 0 then, a context switch will r
                             esult.
                     126     ; *
                     127     ; * Arguments  : ticks     is the time delay that the task will be suspended in number of c
                             lock 'ticks'.  
                     128     ; *                        Note that by specifying 0, the task will not be delayed.
                     129     ; *
                     130     ; * Returns    : none
                     131     ; *****************************************************************************************
                             ****************
                     132     ; */
                     133     ; 
                     134     ; void OSTimeDly (INT16U ticks) reentrant
                     135     
----                 136             RSEG  ?PR?_?OSTimeDly?OS_TIME
0000                 137     _?OSTimeDly:
                     138             USING   0
                     139                             ; SOURCE LINE # 37
0000 90FFFE          140             MOV     DPTR,#0FFFEH
0003 120000   F      141             LCALL   ?C?ADDXBP
0006 EE              142             MOV     A,R6
0007 F0              143             MOVX    @DPTR,A
0008 A3              144             INC     DPTR
0009 EF              145             MOV     A,R7
000A F0              146             MOVX    @DPTR,A
                     147     ; {
                     148     ;     if (ticks > 0) {                                                      /* 0 means no d
                             elay!         */
                     149                             ; SOURCE LINE # 39
000B 850083   F      150             MOV     DPH,?C_XBP
000E 850082   F      151             MOV     DPL,?C_XBP+01H
0011 E0              152             MOVX    A,@DPTR
0012 FC              153             MOV     R4,A
0013 A3              154             INC     DPTR
0014 E0              155             MOVX    A,@DPTR
0015 FD              156             MOV     R5,A
0016 D3              157             SETB    C
0017 9400            158             SUBB    A,#00H
0019 EC              159             MOV     A,R4
001A 9400            160             SUBB    A,#00H
001C 4067            161             JC      ?C0003
                     162     ;         OS_ENTER_CRITICAL();
                     163                             ; SOURCE LINE # 40
001E C2AF            164             CLR     EA
                     165     ;         if ((OSRdyTbl[OSTCBCur->OSTCBY] &= ~OSTCBCur->OSTCBBitX) == 0) {  /* Delay curren
                             t task        */
                     166                             ; SOURCE LINE # 41
0020 7800     F      167             MOV     R0,#LOW (OSTCBCur)
0022 8603            168             MOV     AR3,@R0
0024 08              169             INC     R0
0025 E6              170             MOV     A,@R0
0026 FA              171             MOV     R2,A
0027 08              172             INC     R0
0028 E6              173             MOV     A,@R0
0029 F9              174             MOV     R1,A
002A 90000E          175             MOV     DPTR,#0EH
002D 120000   F      176             LCALL   ?C?CLDOPTR
0030 2400     F      177             ADD     A,#LOW (OSRdyTbl)
0032 F582            178             MOV     DPL,A
A51 MACRO ASSEMBLER  OS_TIME                                                              09/09/2007 21:13:22 PAGE     4

0034 E4              179             CLR     A
0035 3400     F      180             ADDC    A,#HIGH (OSRdyTbl)
0037 F583            181             MOV     DPH,A
0039 C083            182             PUSH    DPH
003B C082            183             PUSH    DPL
003D E0              184             MOVX    A,@DPTR
003E FF              185             MOV     R7,A
003F 7800     F      186             MOV     R0,#LOW (OSTCBCur)
0041 8603            187             MOV     AR3,@R0
0043 08              188             INC     R0
0044 E6              189             MOV     A,@R0
0045 FA              190             MOV     R2,A
0046 08              191             INC     R0
0047 E6              192             MOV     A,@R0
0048 F9              193             MOV     R1,A
0049 90000F          194             MOV     DPTR,#0FH
004C 120000   F      195             LCALL   ?C?CLDOPTR
004F F4              196             CPL     A
0050 FE              197             MOV     R6,A
0051 EF              198             MOV     A,R7
0052 5E              199             ANL     A,R6

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?