📄 os_cpu_a.ls1
字号:
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 1
MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN OS_CPU_A.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE OS_CPU_A.src PR(.\OS_CPU_A.ls1) EP DEBUG
LOC OBJ LINE SOURCE
1 ; .\OS_CPU_A.SRC generated from: OS_CPU_A.C
2 ; COMPILER INVOKED BY:
3 ; C:\Keil\C51\BIN\C51.EXE OS_CPU_A.C LARGE BROWSE DEBUG OBJECTEXTEND SRC(.\OS_CPU_A.
SRC)
4
5 $nomod51
6
7 NAME OS_CPU_A
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_CPU_A 10/23/2007 17:47:44 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?OSCtxSw?OS_CPU_A SEGMENT CODE
73 ?PR?OSTickISR?OS_CPU_A SEGMENT CODE
74 ?PR?OSIntCtxSw?OS_CPU_A SEGMENT CODE
75 ?PR?OSStartHighRdy?OS_CPU_A SEGMENT CODE
76 ?PR?_?SerialISR?OS_CPU_A SEGMENT CODE
77 ?XD?OS_CPU_A SEGMENT XDATA
78 EXTRN XDATA (OSRunning)
79 EXTRN CODE (_?OSIntExit)
80 EXTRN CODE (_?serial)
81 EXTRN XDATA (OSTCBCur)
82 EXTRN XDATA (OSTCBHighRdy)
83 EXTRN CODE (_?OSTaskSwHook)
84 EXTRN CODE (_?OSTimeTick)
85 EXTRN XDATA (OSPrioCur)
86 EXTRN CODE (_?OSIntEnter)
87 EXTRN XDATA (OSPrioHighRdy)
88 EXTRN DATA (UserSysSP_Start)
89 EXTRN CODE (?C?PLDPTR)
90 EXTRN CODE (?C?CSTPTR)
91 EXTRN CODE (?C?CLDPTR)
92 PUBLIC UserStkSP_tmp
93 PUBLIC _?SerialISR
94 PUBLIC OSStartHighRdy
95 PUBLIC OSIntCtxSw
96 PUBLIC OSTickISR
97 PUBLIC OSCtxSw
98
---- 99 RSEG ?XD?OS_CPU_A
0000 100 UserStkSP_tmp: DS 3
101 ; /*
102 ; *****************************************************************************************
****************
103 ; * uC/OS-II
104 ; * 实时内核
105 ; *
106 ; * (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
107 ; * 版权所有
108 ; *
109 ; * MCU-51 专用代码
110 ; * KEIL C51大模式编译
111 ; *
112 ; * 文件名 : OS_CPU_A.C
113 ; * 作者 : Jean J. Labrosse
114 ; * 改编 : 柯新 kexin28@126.com 深圳众芯科技有限公司软件部 2007.10.22
115 ; *****************************************************************************************
****************
116 ; */
117 ;
118 ; //#define OS_CPU_GLOBALS
119 ; #include "includes.h"
120 ;
121 ; OS_STK *UserStkSP_tmp;
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 3
122 ;
123 ; #if CXBP_OK>0
124 ; #pragma asm
125 EXTRN DATA (?C_XBP) ;仿真堆栈指针用于重入局部变量保存
126 ; #pragma endasm
127 ; #endif
128 ;
129 ; #pragma asm
130
131 PUSHALL MACRO
132
133 PUSH PSW
134 PUSH ACC
135 PUSH B
136 PUSH DPL
137 PUSH DPH
138 MOV A,R0 ;R0-R7入栈
139 PUSH ACC
140 MOV A,R1
141 PUSH ACC
142 MOV A,R2
143 PUSH ACC
144 MOV A,R3
145 PUSH ACC
146 MOV A,R4
147 PUSH ACC
148 MOV A,R5
149 PUSH ACC
150 MOV A,R6
151 PUSH ACC
152 MOV A,R7
153 PUSH ACC
154
155 ENDM
156
157 ; #pragma endasm
158 ;
159 ; #pragma asm
160
161 POPALL MACRO
162
163 POP ACC ;R0-R7出栈
164 MOV R7,A
165 POP ACC
166 MOV R6,A
167 POP ACC
168 MOV R5,A
169 POP ACC
170 MOV R4,A
171 POP ACC
172 MOV R3,A
173 POP ACC
174 MOV R2,A
175 POP ACC
176 MOV R1,A
177 POP ACC
178 MOV R0,A
179 POP DPH
180 POP DPL
181 POP B
182 POP ACC
183 POP PSW
184
185 ENDM
186
187 ; #pragma endasm
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 4
188 ;
189 ; void OSCtxSw(void)
190
---- 191 RSEG ?PR?OSCtxSw?OS_CPU_A
0000 192 OSCtxSw:
193 USING 0
194 ; SOURCE LINE # 89
195 ; {
196 ; SOURCE LINE # 90
197 ; OS_STK idata *SysStkSP;
198 ; OS_STK *UserStkSP;
199 ; INT8U STKCount;
200 ;
201 ; #pragma asm
202 ; PUSHALL
203 PUSHALL
227 ; #pragma endasm
228 ;
229 ; SysStkSP=UserSysSP_Start;
230 ; SOURCE LINE # 99
0022 AF00 F 231 MOV R7,UserSysSP_Start
232 ;---- Variable 'SysStkSP?040' assigned to Register 'R7' ----
233 ; STKCount=SP-UserSysSP_Start;
234 ; SOURCE LINE # 100
0024 C3 235 CLR C
0025 E581 236 MOV A,SP
0027 9500 F 237 SUBB A,UserSysSP_Start
0029 FE 238 MOV R6,A
239 ;---- Variable 'STKCount?042' assigned to Register 'R6' ----
240 ; UserStkSP=OSTCBCur->OSTCBStkPtr;
241 ; SOURCE LINE # 101
002A 900000 F 242 MOV DPTR,#OSTCBCur
002D E0 243 MOVX A,@DPTR
002E FB 244 MOV R3,A
002F A3 245 INC DPTR
0030 E0 246 MOVX A,@DPTR
0031 FA 247 MOV R2,A
0032 A3 248 INC DPTR
0033 E0 249 MOVX A,@DPTR
0034 F9 250 MOV R1,A
0035 120000 F 251 LCALL ?C?PLDPTR
252 ;---- Variable 'UserStkSP?041' assigned to Register 'R1/R2/R3' ----
253 ;
254 ; *UserStkSP=STKCount;
255 ; SOURCE LINE # 103
0038 EE 256 MOV A,R6
0039 120000 F 257 LCALL ?C?CSTPTR
003C 258 ?C0003:
259 ;
260 ; do
261 ; {
262 ; SOURCE LINE # 106
263 ; SysStkSP++;
264 ; SOURCE LINE # 107
003C 0F 265 INC R7
266 ; UserStkSP++;
267 ; SOURCE LINE # 108
003D 7401 268 MOV A,#01H
003F 29 269 ADD A,R1
0040 F9 270 MOV R1,A
0041 E4 271 CLR A
0042 3A 272 ADDC A,R2
0043 FA 273 MOV R2,A
274 ; *UserStkSP=*SysStkSP;
275 ; SOURCE LINE # 109
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -