📄 os_time.ls1
字号:
A51 MACRO ASSEMBLER OS_TIME 08/08/2005 11:36:58 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN OS_TIME.OBJ
ASSEMBLER INVOKED BY: C:\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 ; C:\Keil\C51\BIN\C51.EXE OS_TIME.C LARGE BROWSE ORDER NOAREGS DEBUG OBJECTEXTEND SR
C(.\OS_TIME.SRC)
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
00D0 13 PSW DATA 0D0H
00E0 14 ACC DATA 0E0H
00F0 15 B DATA 0F0H
0081 16 SP DATA 081H
0082 17 DPL DATA 082H
0083 18 DPH DATA 083H
0087 19 PCON DATA 087H
0088 20 TCON DATA 088H
0089 21 TMOD DATA 089H
008A 22 TL0 DATA 08AH
008B 23 TL1 DATA 08BH
008C 24 TH0 DATA 08CH
008D 25 TH1 DATA 08DH
00A8 26 IE DATA 0A8H
00B8 27 IP DATA 0B8H
0098 28 SCON DATA 098H
0099 29 SBUF DATA 099H
00D7 30 CY BIT 0D0H.7
00D6 31 AC BIT 0D0H.6
00D5 32 F0 BIT 0D0H.5
00D4 33 RS1 BIT 0D0H.4
00D3 34 RS0 BIT 0D0H.3
00D2 35 OV BIT 0D0H.2
00D0 36 P BIT 0D0H.0
008F 37 TF1 BIT 088H.7
008E 38 TR1 BIT 088H.6
008D 39 TF0 BIT 088H.5
008C 40 TR0 BIT 088H.4
008B 41 IE1 BIT 088H.3
008A 42 IT1 BIT 088H.2
0089 43 IE0 BIT 088H.1
0088 44 IT0 BIT 088H.0
00AF 45 EA BIT 0A8H.7
00AC 46 ES BIT 0A8H.4
00AB 47 ET1 BIT 0A8H.3
00AA 48 EX1 BIT 0A8H.2
00A9 49 ET0 BIT 0A8H.1
00A8 50 EX0 BIT 0A8H.0
00BC 51 PS BIT 0B8H.4
00BB 52 PT1 BIT 0B8H.3
00BA 53 PX1 BIT 0B8H.2
00B9 54 PT0 BIT 0B8H.1
00B8 55 PX0 BIT 0B8H.0
00B7 56 RD BIT 0B0H.7
00B6 57 WR BIT 0B0H.6
A51 MACRO ASSEMBLER OS_TIME 08/08/2005 11:36:58 PAGE 2
00B5 58 T1 BIT 0B0H.5
00B4 59 T0 BIT 0B0H.4
00B3 60 INT1 BIT 0B0H.3
00B2 61 INT0 BIT 0B0H.2
00B1 62 TXD BIT 0B0H.1
00B0 63 RXD BIT 0B0H.0
009F 64 SM0 BIT 098H.7
009E 65 SM1 BIT 098H.6
009D 66 SM2 BIT 098H.5
009C 67 REN BIT 098H.4
009B 68 TB8 BIT 098H.3
009A 69 RB8 BIT 098H.2
0099 70 TI BIT 098H.1
0098 71 RI BIT 098H.0
72 ?PR?_OSTimeDly?OS_TIME SEGMENT CODE
73 ?PR?_OSTimeDlyHMSM?OS_TIME SEGMENT CODE
74 ?XD?_OSTimeDlyHMSM?OS_TIME SEGMENT XDATA OVERLAYABLE
75 ?PR?_OSTimeDlyResume?OS_TIME SEGMENT CODE
76 ?XD?_OSTimeDlyResume?OS_TIME SEGMENT XDATA OVERLAYABLE
77 ?PR?OSTimeGet?OS_TIME SEGMENT CODE
78 ?PR?_OSTimeSet?OS_TIME SEGMENT CODE
79 EXTRN XDATA (OSRdyGrp)
80 EXTRN XDATA (OSRdyTbl)
81 EXTRN IDATA (OSTCBCur)
82 EXTRN XDATA (OSTCBPrioTbl)
83 EXTRN XDATA (OSTime)
84 EXTRN CODE (OS_Sched)
85 EXTRN CODE (?C?CLDOPTR)
86 EXTRN CODE (?C?ISTOPTR)
87 EXTRN CODE (?C?LMUL)
88 EXTRN CODE (?C?ULDIV)
89 EXTRN CODE (?C?LSTXDATA)
90 EXTRN CODE (?C?ILDOPTR)
91 PUBLIC _OSTimeSet
92 PUBLIC OSTimeGet
93 PUBLIC _OSTimeDlyResume
94 PUBLIC ?_OSTimeDlyHMSM?BYTE
95 PUBLIC _OSTimeDlyHMSM
96 PUBLIC _OSTimeDly
97
---- 98 RSEG ?XD?_OSTimeDlyHMSM?OS_TIME
0000 99 ?_OSTimeDlyHMSM?BYTE:
0000 100 hours?141: DS 1
0001 101 minutes?142: DS 1
0002 102 seconds?143: DS 1
0003 103 milli?144: DS 2
0005 104 ORG 5
0005 105 ticks?145: DS 4
0009 106 loops?146: DS 2
107
---- 108 RSEG ?XD?_OSTimeDlyResume?OS_TIME
0000 109 ?_OSTimeDlyResume?BYTE:
0000 110 ptcb?248: DS 3
111 ; /*
112 ; *****************************************************************************************
****************
113 ; * uC/OS-II
114 ; * The Real-Time Kernel
115 ; * TIME MANAGEMENT
116 ; *
117 ; * (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
118 ; * All Rights Reserved
119 ; *
120 ; * File : OS_TIME.C
121 ; * By : Jean J. Labrosse
122 ; *****************************************************************************************
A51 MACRO ASSEMBLER OS_TIME 08/08/2005 11:36:58 PAGE 3
****************
123 ; */
124 ;
125 ; #ifndef OS_MASTER_FILE
126 ; #include "includes.h"
127 ; #endif
128 ;
129 ; /*
130 ; *****************************************************************************************
****************
131 ; * DELAY TASK 'n' TICKS (n from 0 to 65535)
132 ; *
133 ; * Description: This function is called to delay execution of the currently running task u
ntil the
134 ; * specified number of system ticks expires. This, of course, directly equat
es to delaying
135 ; * the current task for some time to expire. No delay will result If the spe
cified delay is
136 ; * 0. If the specified delay is greater than 0 then, a context switch will r
esult.
137 ; *
138 ; * Arguments : ticks is the time delay that the task will be suspended in number of c
lock 'ticks'.
139 ; * Note that by specifying 0, the task will not be delayed.
140 ; *
141 ; * Returns : none
142 ; *****************************************************************************************
****************
143 ; */
144 ;
145 ; void OSTimeDly (INT16U ticks)
146
---- 147 RSEG ?PR?_OSTimeDly?OS_TIME
0000 148 _OSTimeDly:
149 USING 0
150 ; SOURCE LINE # 35
151 ;---- Variable 'ticks?040' assigned to Register 'R4/R5' ----
0000 CD 152 XCH A,R5
0001 EF 153 MOV A,R7
0002 CD 154 XCH A,R5
0003 CC 155 XCH A,R4
0004 EE 156 MOV A,R6
0005 CC 157 XCH A,R4
158 ; {
159 ; SOURCE LINE # 36
160 ;
161 ;
162 ;
163 ; if (ticks > 0) { /* 0 means no d
elay! */
164 ; SOURCE LINE # 40
0006 D3 165 SETB C
0007 ED 166 MOV A,R5
0008 9400 167 SUBB A,#00H
000A EC 168 MOV A,R4
000B 9400 169 SUBB A,#00H
000D 406D 170 JC ?C0003
171 ; OS_ENTER_CRITICAL();
172 ; SOURCE LINE # 41
000F C2AF 173 CLR EA
174 ; if ((OSRdyTbl[OSTCBCur->OSTCBY] &= ~OSTCBCur->OSTCBBitX) == 0) { /* Delay curren
t task */
175 ; SOURCE LINE # 42
0011 7800 F 176 MOV R0,#LOW (OSTCBCur)
0013 CB 177 XCH A,R3
0014 E6 178 MOV A,@R0
A51 MACRO ASSEMBLER OS_TIME 08/08/2005 11:36:58 PAGE 4
0015 CB 179 XCH A,R3
0016 08 180 INC R0
0017 E6 181 MOV A,@R0
0018 FA 182 MOV R2,A
0019 08 183 INC R0
001A E6 184 MOV A,@R0
001B F9 185 MOV R1,A
001C 90000E 186 MOV DPTR,#0EH
001F 120000 F 187 LCALL ?C?CLDOPTR
0022 2400 F 188 ADD A,#LOW (OSRdyTbl)
0024 F582 189 MOV DPL,A
0026 E4 190 CLR A
0027 3400 F 191 ADDC A,#HIGH (OSRdyTbl)
0029 F583 192 MOV DPH,A
002B C083 193 PUSH DPH
002D C082 194 PUSH DPL
002F E0 195 MOVX A,@DPTR
0030 FF 196 MOV R7,A
0031 7800 F 197 MOV R0,#LOW (OSTCBCur)
0033 CB 198 XCH A,R3
0034 E6 199 MOV A,@R0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -