📄 os_cpu_a.ls1
字号:
0044 A807 276 MOV R0,AR7
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 5
0046 E6 277 MOV A,@R0
0047 120000 F 278 LCALL ?C?CSTPTR
279 ; STKCount--;
280 ; SOURCE LINE # 110
004A DEF0 281 DJNZ R6,?C0003
282 ; }while(STKCount!=0);
283 ; SOURCE LINE # 111
284 ;
285 ; #if CXBP_OK>0
286 ; UserStkSP++;
287 ; SOURCE LINE # 114
004C 7401 288 MOV A,#01H
004E 29 289 ADD A,R1
004F F9 290 MOV R1,A
0050 E4 291 CLR A
0051 3A 292 ADDC A,R2
0052 FA 293 MOV R2,A
294 ; UserStkSP_tmp=UserStkSP;
295 ; SOURCE LINE # 115
0053 900000 F 296 MOV DPTR,#UserStkSP_tmp
0056 EB 297 MOV A,R3
0057 F0 298 MOVX @DPTR,A
0058 A3 299 INC DPTR
0059 EA 300 MOV A,R2
005A F0 301 MOVX @DPTR,A
005B A3 302 INC DPTR
005C E9 303 MOV A,R1
005D F0 304 MOVX @DPTR,A
305 ; #pragma asm
306 ; MOV R0,#LOW (UserStkSP_tmp)
005E 7800 F 307 MOV R0,#LOW (UserStkSP_tmp)
308 ; ;MOV R0,#UserStkSP_tmp
309 ;MOV R0,#UserStkSP_tmp
310 ; ;INC R0
311 ;INC R0
312 ; ;MOV DPH,@R0 ;变量 UserStkSP_tmp 在IDATA中
313 ;MOV DPH,@R0 ;变量 UserStkSP_tmp 在IDATA中
314 ; ;INC R0
315 ;INC R0
316 ; ;MOV DPL,@R0
317 ;MOV DPL,@R0
318 ;
319
320 ; ;保存仿真堆栈指针?C_XBP
321 ;保存仿真堆栈指针?C_XBP
322 ; MOV A,?C_XBP ;?C_XBP 仿真堆栈指针高8位
0060 E500 F 323 MOV A,?C_XBP ;?C_XBP 仿真堆栈指针高8位
324 ; ;MOVX @DPTR,A
325 ;MOVX @DPTR,A
326 ; MOVX @R0,A
0062 F2 327 MOVX @R0,A
328 ; INC R0
0063 08 329 INC R0
330 ; ;INC DPTR
331 ;INC DPTR
332 ; MOV A,?C_XBP+1 ;?C_XBP 仿真堆栈指针低8位
0064 E500 F 333 MOV A,?C_XBP+1 ;?C_XBP 仿真堆栈指针低8位
334 ; ;MOVX @DPTR,A
335 ;MOVX @DPTR,A
336 ; MOVX @R0,A
0066 F2 337 MOVX @R0,A
338 ; #pragma endasm
339 ; #endif
340 ; OSTaskSwHook();
341 ; SOURCE LINE # 135
0067 120000 F 342 LCALL _?OSTaskSwHook
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 6
343 ;
344 ;
345 ; OSTCBCur=OSTCBHighRdy;
346 ; SOURCE LINE # 138
006A 900000 F 347 MOV DPTR,#OSTCBHighRdy
006D E0 348 MOVX A,@DPTR
006E F9 349 MOV R1,A
006F A3 350 INC DPTR
0070 E0 351 MOVX A,@DPTR
0071 FA 352 MOV R2,A
0072 A3 353 INC DPTR
0073 E0 354 MOVX A,@DPTR
0074 900000 F 355 MOV DPTR,#OSTCBCur
0077 C9 356 XCH A,R1
0078 F0 357 MOVX @DPTR,A
0079 A3 358 INC DPTR
007A EA 359 MOV A,R2
007B F0 360 MOVX @DPTR,A
007C A3 361 INC DPTR
007D E9 362 MOV A,R1
007E F0 363 MOVX @DPTR,A
364 ; OSPrioCur=OSPrioHighRdy;
365 ; SOURCE LINE # 139
007F 900000 F 366 MOV DPTR,#OSPrioHighRdy
0082 E0 367 MOVX A,@DPTR
0083 900000 F 368 MOV DPTR,#OSPrioCur
0086 F0 369 MOVX @DPTR,A
370 ;
371 ; UserStkSP=OSTCBCur->OSTCBStkPtr;
372 ; SOURCE LINE # 141
0087 900000 F 373 MOV DPTR,#OSTCBCur
008A E0 374 MOVX A,@DPTR
008B FB 375 MOV R3,A
008C A3 376 INC DPTR
008D E0 377 MOVX A,@DPTR
008E FA 378 MOV R2,A
008F A3 379 INC DPTR
0090 E0 380 MOVX A,@DPTR
0091 F9 381 MOV R1,A
0092 120000 F 382 LCALL ?C?PLDPTR
383 ; SysStkSP=UserSysSP_Start;
384 ; SOURCE LINE # 142
0095 AF00 F 385 MOV R7,UserSysSP_Start
386 ; STKCount=*UserStkSP;
387 ; SOURCE LINE # 143
0097 120000 F 388 LCALL ?C?CLDPTR
009A FE 389 MOV R6,A
390 ;
391 ; SP=UserSysSP_Start+STKCount;
392 ; SOURCE LINE # 145
009B 2500 F 393 ADD A,UserSysSP_Start
009D F581 394 MOV SP,A
009F 395 ?C0006:
396 ;
397 ; do{
398 ; SOURCE LINE # 147
399 ; UserStkSP++;
400 ; SOURCE LINE # 148
009F 7401 401 MOV A,#01H
00A1 29 402 ADD A,R1
00A2 F9 403 MOV R1,A
00A3 E4 404 CLR A
00A4 3A 405 ADDC A,R2
00A5 FA 406 MOV R2,A
407 ; SysStkSP++;
408 ; SOURCE LINE # 149
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 7
00A6 0F 409 INC R7
410 ; *SysStkSP=*UserStkSP;
411 ; SOURCE LINE # 150
00A7 120000 F 412 LCALL ?C?CLDPTR
00AA A807 413 MOV R0,AR7
00AC F6 414 MOV @R0,A
415 ; STKCount--;
416 ; SOURCE LINE # 151
00AD DEF0 417 DJNZ R6,?C0006
418 ; }while(STKCount!=0);
419 ; SOURCE LINE # 152
420 ;
421 ; #if CXBP_OK>0
422 ; UserStkSP++;
423 ; SOURCE LINE # 155
00AF 7401 424 MOV A,#01H
00B1 29 425 ADD A,R1
00B2 F9 426 MOV R1,A
00B3 E4 427 CLR A
00B4 3A 428 ADDC A,R2
00B5 FA 429 MOV R2,A
430 ; UserStkSP_tmp=UserStkSP;
431 ; SOURCE LINE # 156
00B6 900000 F 432 MOV DPTR,#UserStkSP_tmp
00B9 EB 433 MOV A,R3
00BA F0 434 MOVX @DPTR,A
00BB A3 435 INC DPTR
00BC EA 436 MOV A,R2
00BD F0 437 MOVX @DPTR,A
00BE A3 438 INC DPTR
00BF E9 439 MOV A,R1
00C0 F0 440 MOVX @DPTR,A
441 ; #pragma asm
442 ; MOV R0,#LOW (UserStkSP_tmp)
00C1 7800 F 443 MOV R0,#LOW (UserStkSP_tmp)
444 ; ;MOV R0,#UserStkSP_tmp
445 ;MOV R0,#UserStkSP_tmp
446 ; ;INC R0
447 ;INC R0
448 ; ;MOV DPH,@R0 ;变量UserStkSP在IDATA中
449 ;MOV DPH,@R0 ;变量UserStkSP在IDATA中
450 ; ;INC R0
451 ;INC R0
452 ; ;MOV DPL,@R0
453 ;MOV DPL,@R0
454 ;
455
456 ; ;MOVX A,@DPTR
457 ;MOVX A,@DPTR
458 ; MOVX A,@R0
00C3 E2 459 MOVX A,@R0
460 ; MOV ?C_XBP,A ;?C_XBP 仿真堆栈指针高8位
00C4 F500 F 461 MOV ?C_XBP,A ;?C_XBP 仿真堆栈指针高8位
462 ; ;INC DPTR
463 ;INC DPTR
464 ; INC R0
00C6 08 465 INC R0
466 ; ;MOVX A,@DPTR
467 ;MOVX A,@DPTR
468 ; MOVX A,@R0
00C7 E2 469 MOVX A,@R0
470 ; MOV ?C_XBP+1,A ;?C_XBP 仿真堆栈指针低8位
00C8 F500 F 471 MOV ?C_XBP+1,A ;?C_XBP 仿真堆栈指针低8位
472 ; #pragma endasm
473 ; #endif
474 ;
A51 MACRO ASSEMBLER OS_CPU_A 10/23/2007 17:47:44 PAGE 8
475 ; #pragma asm
476 ; POPALL
477 POPALL
501 ; RETI
00EC 32 502 RETI
503 ; #pragma endasm
504 ;
505 ; }
506 ; SOURCE LINE # 181
00ED 22 507 RET
508 ; END OF OSCtxSw
509
---- 510 CSEG AT 0000BH
000B 020000 F 511 LJMP OSTickISR
512
513 ;
514 ; void OSTickISR(void) interrupt 1
515
---- 516 RSEG ?PR?OSTickISR?OS_CPU_A
517 USING 0
0000 518 OSTickISR:
0000 C0E0 519 PUSH ACC
0002 C0F0 520 PUSH B
0004 C083 521 PUSH DPH
0006 C082 522 PUSH DPL
0008 C0D0 523 PUSH PSW
000A 75D000 524 MOV PSW,#00H
000D C000 525 PUSH AR0
000F C001 526 PUSH AR1
0011 C002 527 PUSH AR2
0013 C003 528 PUSH AR3
0015 C004 529 PUSH AR4
0017 C005 530 PUSH AR5
0019 C006 531 PUSH AR6
001B C007 532 PUSH AR7
533 USING 0
534 ; SOURCE LINE # 183
535 ; {
536 ; /* OS_STK idata *SysStkSP;
537 ; OS_STK *UserStkSP;
538 ; INT8U STKCount;*/
539 ;
540 ; TR0=0;
541 ; SOURCE LINE # 189
001D C28C 542 CLR TR0
543 ; TH0=0x70;
544 ; SOURCE LINE # 190
001F 758C70 545 MOV TH0,#070H
546 ; TL0=0x00;
547 ; SOURCE LINE # 191
0022 758A00 548 MOV TL0,#00H
549 ; TR0 = 1;
550 ; SOURCE LINE # 192
0025 D28C 551 SETB TR0
552 ;
553 ; OSIntEnter();
554 ; SOURCE LINE # 194
0027 120000 F 555 LCALL _?OSIntEnter
556 ; /* if (OSIntNesting == 1)
557 ; {
558 ; SysStkSP=UserSysSP_Start;
559 ; STKCount=SP-UserSysSP_Start;
560 ; UserStkSP=OSTCBCur->OSTCBStkPtr;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -