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