📄 os_cpu_a.lst
字号:
195 SaveXBP
201
202 SaveREG R5
205
0042 7800 F 206 MOV R0, #?STACK-1
0044 207 Stack_Save_Loop:
0044 A3 208 INC DPTR
0045 08 209 INC R0
210 SaveREG @R0
0048 DDFA 213 DJNZ R5, Stack_Save_Loop
214
215 ;POPALL
216
217 ; OSTCBCur->OSTCBStkPtr = ?C_XBP;
A51 MACRO ASSEMBLER OS_CPU_A 04/08/2008 09:22:25 PAGE 4
004A 758200 F 218 MOV DPL, #LOW(OSTCBCur)
004D 758300 F 219 MOV DPH, #HIGH(OSTCBCur)
0050 A3 220 INC DPTR
221 LoadReg R0
0053 A3 224 INC DPTR
225 LoadReg DPL
0057 8883 228 MOV DPH, R0
0059 A3 229 INC DPTR
230 SaveReg ?C_XBP
005D A3 233 INC DPTR
234 SaveReg ?C_XBP+1
237
0061 120000 F 238 LCALL _?OSTaskSwHook
239
240 ; OSTCBCur = OSTCBHighRdy;
0064 758200 F 241 MOV DPL, #LOW(OSTCBHighRdy)
0067 758300 F 242 MOV DPH, #HIGH(OSTCBHighRdy)
243 LoadReg R0
006C A3 246 INC DPTR
247 LoadReg R1
006F A3 250 INC DPTR
251 LoadReg R2
0072 758200 F 254 MOV DPL, #LOW(OSTCBCur)
0075 758300 F 255 MOV DPH, #HIGH(OSTCBCur)
256 SaveReg R0
007A A3 259 INC DPTR
260 SaveReg R1
007D A3 263 INC DPTR
264 SaveReg R2
267
268 ; OSPrioCur = OSPrioHighRdy;
0080 758200 F 269 MOV DPL, #LOW(OSPrioHighRdy)
0083 758300 F 270 MOV DPH, #HIGH(OSPrioHighRdy)
271 LoadReg R0
0088 758200 F 274 MOV DPL, #LOW(OSPrioCur)
008B 758300 F 275 MOV DPH, #HIGH(OSPrioCur)
276 SaveReg R0
279
0090 280 ?C_XBP_Load:
281 ; ?C_XBP = OSTCBCur->OSTCBStkPtr;
0090 758200 F 282 MOV DPL, #LOW(OSTCBCur)
0093 758300 F 283 MOV DPH, #HIGH(OSTCBCur)
0096 A3 284 INC DPTR
285 LoadReg R0
0099 A3 288 INC DPTR
289 LoadReg DPL
009D 8883 292 MOV DPH, R0
009F A3 293 INC DPTR
294 LoadReg ?C_XBP
00A3 A3 297 INC DPTR
298 LoadReg ?C_XBP+1
301
00A7 302 SP_Load:
303 LoadXBP
306
307 LoadREG R5
310
00AF 7800 F 311 MOV R0, #?STACK-1
00B1 312 Stack_Load_Loop:
00B1 A3 313 INC DPTR
00B2 08 314 INC R0
315 LoadREG @R0
00B5 DDFA 318 DJNZ R5, Stack_Load_Loop
319
00B7 8881 320 MOV SP, R0
321
A51 MACRO ASSEMBLER OS_CPU_A 04/08/2008 09:22:25 PAGE 5
00B9 A3 322 INC DPTR
323 SaveXBP
329
330 ; OSTCBCur->OSTCBStkPtr = ?C_XBP;
331
332 POPALL
359
00E2 22 360 RET
361
362 ;******************************************************************************************
**************
363 ; void OSIntCtxSw(void);
364 ;******************************************************************************************
**************
365
---- 366 RSEG ?PR?_?OSIntCtxSw?OS_CPU_A
0000 367 _?OSIntCtxSw:
0000 1581 368 DEC SP
0002 1581 369 DEC SP
0004 1581 370 DEC SP
0006 1581 371 DEC SP
0008 020000 F 372 LJMP SP_Offset
373
374 ;******************************************************************************************
**************
375 ; void OSTickISR(void);
376 ;******************************************************************************************
**************
377
---- 378 CSEG AT 000BH
000B 020000 F 379 LJMP _?OSTickISR
380
---- 381 RSEG ?PR?_?OSTickISR?OS_CPU_A
0000 382 _?OSTickISR:
0000 120000 F 383 LCALL ResetHwIntr
384 PUSHALL
412
413 ;DEC OSTickCtr
414 ;MOV A, OSTickCtr
415 ;JNZ OSTick_End
416 ;MOV OSTickCtr, OSTickRate
417
0025 120000 F 418 LCALL _?OSIntEnter
0028 120000 F 419 LCALL _?OSTimeTick
002B 120000 F 420 LCALL _?OSIntExit
002E 421 OSTick_End:
422 POPALL
0050 22 449 RET
450
0051 451 ResetHwIntr:
0051 32 452 RETI
453
454 END
A51 MACRO ASSEMBLER OS_CPU_A 04/08/2008 09:22:25 PAGE 6
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C_XBP. . . . . . . . . . . . D ADDR ----- EXT
?C_XBP_LOAD . . . . . . . . . C ADDR 0090H R SEG=?PR?_?OSCTXSW?OS_CPU_A
?PR?_?OSCTXSW?OS_CPU_A. . . . C SEG 00E3H REL=UNIT
?PR?_?OSINTCTXSW?OS_CPU_A . . C SEG 000BH REL=UNIT
?PR?_?OSSTARTHIGHRDY?OS_CPU_A C SEG 000FH REL=UNIT
?PR?_?OSTICKISR?OS_CPU_A. . . C SEG 0052H REL=UNIT
?STACK. . . . . . . . . . . . I SEG 0001H REL=UNIT
ACC . . . . . . . . . . . . . D ADDR 00E0H A
B . . . . . . . . . . . . . . D ADDR 00F0H A
DPH . . . . . . . . . . . . . D ADDR 0083H A
DPL . . . . . . . . . . . . . D ADDR 0082H A
DT?OS_CPU_A . . . . . . . . . D SEG 0002H REL=UNIT
OSPRIOCUR . . . . . . . . . . X ADDR ----- EXT
OSPRIOHIGHRDY . . . . . . . . X ADDR ----- EXT
OSRUNNING . . . . . . . . . . X ADDR ----- EXT
OSTCBCUR. . . . . . . . . . . X ADDR ----- EXT
OSTCBHIGHRDY. . . . . . . . . X ADDR ----- EXT
OSTICKCTR . . . . . . . . . . D ADDR 0001H R SEG=DT?OS_CPU_A
OSTICKRATE. . . . . . . . . . D ADDR 0000H R SEG=DT?OS_CPU_A
OSTICK_END. . . . . . . . . . C ADDR 002EH R SEG=?PR?_?OSTICKISR?OS_CPU_A
OS_CPU_A. . . . . . . . . . . N NUMB -----
PSW . . . . . . . . . . . . . D ADDR 00D0H A
RESETHWINTR . . . . . . . . . C ADDR 0051H R SEG=?PR?_?OSTICKISR?OS_CPU_A
SP. . . . . . . . . . . . . . D ADDR 0081H A
SP_LOAD . . . . . . . . . . . C ADDR 00A7H R SEG=?PR?_?OSCTXSW?OS_CPU_A
SP_OFFSET . . . . . . . . . . C ADDR 0022H R SEG=?PR?_?OSCTXSW?OS_CPU_A
SP_SAVE . . . . . . . . . . . C ADDR 0038H R SEG=?PR?_?OSCTXSW?OS_CPU_A
STACK_LOAD_LOOP . . . . . . . C ADDR 00B1H R SEG=?PR?_?OSCTXSW?OS_CPU_A
STACK_SAVE_LOOP . . . . . . . C ADDR 0044H R SEG=?PR?_?OSCTXSW?OS_CPU_A
_?OSCTXSW . . . . . . . . . . C ADDR 0000H R SEG=?PR?_?OSCTXSW?OS_CPU_A
_?OSINTCTXSW. . . . . . . . . C ADDR 0000H R SEG=?PR?_?OSINTCTXSW?OS_CPU_A
_?OSINTENTER. . . . . . . . . C ADDR ----- EXT
_?OSINTEXIT . . . . . . . . . C ADDR ----- EXT
_?OSSTARTHIGHRDY. . . . . . . C ADDR 0000H R SEG=?PR?_?OSSTARTHIGHRDY?OS_CPU_A
_?OSTASKSWHOOK. . . . . . . . C ADDR ----- EXT
_?OSTICKISR . . . . . . . . . C ADDR 0000H R SEG=?PR?_?OSTICKISR?OS_CPU_A
_?OSTIMETICK. . . . . . . . . C ADDR ----- EXT
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -