os_time.ls1
来自「在51单片机上移植成功的UCOS-II操作系统源代码,包括源代码及相关注释」· LS1 代码 · 共 1,130 行 · 第 1/5 页
LS1
1,130 行
00AF E4 407 CLR A
00B0 FC 408 MOV R4,A
00B1 FD 409 MOV R5,A
00B2 FE 410 MOV R6,A
00B3 7B10 411 MOV R3,#010H
00B5 7A0E 412 MOV R2,#0EH
00B7 F9 413 MOV R1,A
00B8 F8 414 MOV R0,A
00B9 120000 F 415 LCALL ?C?LMUL
00BC D003 416 POP AR3
00BE D002 417 POP AR2
00C0 D001 418 POP AR1
00C2 D000 419 POP AR0
00C4 EF 420 MOV A,R7
00C5 2B 421 ADD A,R3
00C6 FB 422 MOV R3,A
00C7 EE 423 MOV A,R6
00C8 3A 424 ADDC A,R2
00C9 FA 425 MOV R2,A
00CA ED 426 MOV A,R5
00CB 39 427 ADDC A,R1
00CC F9 428 MOV R1,A
00CD EC 429 MOV A,R4
A51 MACRO ASSEMBLER OS_TIME 09/09/2007 21:13:22 PAGE 8
00CE 38 430 ADDC A,R0
00CF F8 431 MOV R0,A
00D0 900008 432 MOV DPTR,#08H
00D3 120000 F 433 LCALL ?C?XBPOFF
00D6 E0 434 MOVX A,@DPTR
00D7 FF 435 MOV R7,A
00D8 E4 436 CLR A
00D9 FC 437 MOV R4,A
00DA FD 438 MOV R5,A
00DB FE 439 MOV R6,A
00DC EB 440 MOV A,R3
00DD 2F 441 ADD A,R7
00DE FF 442 MOV R7,A
00DF EE 443 MOV A,R6
00E0 3A 444 ADDC A,R2
00E1 FE 445 MOV R6,A
00E2 ED 446 MOV A,R5
00E3 39 447 ADDC A,R1
00E4 FD 448 MOV R5,A
00E5 EC 449 MOV A,R4
00E6 38 450 ADDC A,R0
00E7 FC 451 MOV R4,A
00E8 E4 452 CLR A
00E9 7B32 453 MOV R3,#032H
00EB FA 454 MOV R2,A
00EC F9 455 MOV R1,A
00ED F8 456 MOV R0,A
00EE 120000 F 457 LCALL ?C?LMUL
00F1 C004 458 PUSH AR4
00F3 C005 459 PUSH AR5
00F5 C006 460 PUSH AR6
00F7 C007 461 PUSH AR7
00F9 900009 462 MOV DPTR,#09H
00FC 120000 F 463 LCALL ?C?XBPOFF
00FF E0 464 MOVX A,@DPTR
0100 FE 465 MOV R6,A
0101 A3 466 INC DPTR
0102 E0 467 MOVX A,@DPTR
0103 FF 468 MOV R7,A
0104 EF 469 MOV A,R7
0105 240A 470 ADD A,#0AH
0107 FF 471 MOV R7,A
0108 E4 472 CLR A
0109 3E 473 ADDC A,R6
010A FE 474 MOV R6,A
010B E4 475 CLR A
010C 33 476 RLC A
010D FD 477 MOV R5,A
010E E4 478 CLR A
010F 33 479 RLC A
0110 FC 480 MOV R4,A
0111 E4 481 CLR A
0112 7B32 482 MOV R3,#032H
0114 FA 483 MOV R2,A
0115 F9 484 MOV R1,A
0116 F8 485 MOV R0,A
0117 120000 F 486 LCALL ?C?LMUL
011A E4 487 CLR A
011B 7BE8 488 MOV R3,#0E8H
011D 7A03 489 MOV R2,#03H
011F F9 490 MOV R1,A
0120 F8 491 MOV R0,A
0121 120000 F 492 LCALL ?C?ULDIV
0124 D003 493 POP AR3
0126 D002 494 POP AR2
0128 D001 495 POP AR1
A51 MACRO ASSEMBLER OS_TIME 09/09/2007 21:13:22 PAGE 9
012A D000 496 POP AR0
012C EB 497 MOV A,R3
012D 2F 498 ADD A,R7
012E FF 499 MOV R7,A
012F EA 500 MOV A,R2
0130 3E 501 ADDC A,R6
0131 FE 502 MOV R6,A
0132 E9 503 MOV A,R1
0133 3D 504 ADDC A,R5
0134 FD 505 MOV R5,A
0135 E8 506 MOV A,R0
0136 3C 507 ADDC A,R4
0137 FC 508 MOV R4,A
0138 850083 F 509 MOV DPH,?C_XBP
013B 850082 F 510 MOV DPL,?C_XBP+01H
013E 120000 F 511 LCALL ?C?LSTXDATA
512 ; loops = ticks / 65536L; /* Compute the integral number of 65536
tick delays */
513 ; SOURCE LINE # 95
0141 E4 514 CLR A
0142 FB 515 MOV R3,A
0143 FA 516 MOV R2,A
0144 7901 517 MOV R1,#01H
0146 F8 518 MOV R0,A
0147 850083 F 519 MOV DPH,?C_XBP
014A 850082 F 520 MOV DPL,?C_XBP+01H
014D E0 521 MOVX A,@DPTR
014E FC 522 MOV R4,A
014F A3 523 INC DPTR
0150 E0 524 MOVX A,@DPTR
0151 FD 525 MOV R5,A
0152 A3 526 INC DPTR
0153 E0 527 MOVX A,@DPTR
0154 FE 528 MOV R6,A
0155 A3 529 INC DPTR
0156 E0 530 MOVX A,@DPTR
0157 FF 531 MOV R7,A
0158 120000 F 532 LCALL ?C?ULDIV
015B 900004 533 MOV DPTR,#04H
015E 120000 F 534 LCALL ?C?XBPOFF
0161 EE 535 MOV A,R6
0162 F0 536 MOVX @DPTR,A
0163 A3 537 INC DPTR
0164 EF 538 MOV A,R7
0165 F0 539 MOVX @DPTR,A
540 ; ticks = ticks % 65536L; /* Obtain the fractional number of tick
s */
541 ; SOURCE LINE # 96
0166 850083 F 542 MOV DPH,?C_XBP
0169 850082 F 543 MOV DPL,?C_XBP+01H
016C C083 544 PUSH DPH
016E C082 545 PUSH DPL
0170 A3 546 INC DPTR
0171 A3 547 INC DPTR
0172 E0 548 MOVX A,@DPTR
0173 FE 549 MOV R6,A
0174 A3 550 INC DPTR
0175 E0 551 MOVX A,@DPTR
0176 FF 552 MOV R7,A
0177 E4 553 CLR A
0178 FD 554 MOV R5,A
0179 FC 555 MOV R4,A
017A D082 556 POP DPL
017C D083 557 POP DPH
017E 120000 F 558 LCALL ?C?LSTXDATA
559 ; OSTimeDly(ticks);
A51 MACRO ASSEMBLER OS_TIME 09/09/2007 21:13:22 PAGE 10
560 ; SOURCE LINE # 97
0181 850083 F 561 MOV DPH,?C_XBP
0184 850082 F 562 MOV DPL,?C_XBP+01H
0187 A3 563 INC DPTR
0188 A3 564 INC DPTR
0189 E0 565 MOVX A,@DPTR
018A FE 566 MOV R6,A
018B A3 567 INC DPTR
018C E0 568 MOVX A,@DPTR
018D FF 569 MOV R7,A
018E 120000 F 570 LCALL _?OSTimeDly
0191 571 ?C0010:
572 ; while (loops > 0) {
573 ; SOURCE LINE # 98
0191 900004 574 MOV DPTR,#04H
0194 120000 F 575 LCALL ?C?XBPOFF
0197 E0 576 MOVX A,@DPTR
0198 FE 577 MOV R6,A
0199 A3 578 INC DPTR
019A E0 579 MOVX A,@DPTR
019B D3 580 SETB C
019C 9400 581 SUBB A,#00H
019E EE 582 MOV A,R6
019F 9400 583 SUBB A,#00H
01A1 401D 584 JC ?C0011
585 ; OSTimeDly(32768);
586 ; SOURCE LINE # 99
01A3 7E80 587 MOV R6,#080H
01A5 7F00 588 MOV R7,#00H
01A7 120000 F 589 LCALL _?OSTimeDly
590 ; OSTimeDly(32768);
591 ; SOURCE LINE # 100
01AA 7E80 592 MOV R6,#080H
01AC 7F00 593 MOV R7,#00H
01AE 120000 F 594 LCALL _?OSTimeDly
595 ; loops--;
596 ; SOURCE LINE # 101
01B1 900004 597 MOV DPTR,#04H
01B4 120000 F 598 LCALL ?C?XBPOFF
01B7 74FF 599 MOV A,#0FFH
01B9 F5F0 600 MOV B,A
01BB 120000 F 601 LCALL ?C?IILDX
602 ; }
603 ; SOURCE LINE # 102
01BE 80D1 604 SJMP ?C0010
01C0 605 ?C0011:
606 ; return (OS_NO_ERR);
607 ; SOURCE LINE # 103
01C0 7F00 608 MOV R7,#00H
01C2 8002 609 SJMP ?C0007
610 ; } else {
611 ; SOURCE LINE # 104
01C4 612 ?C0004:
613 ; return (OS_TIME_ZERO_DLY);
614 ; SOURCE LINE # 105
01C4 7F54 615 MOV R7,#054H
616 ; }
617 ; SOURCE LINE # 106
618 ; }
619 ; SOURCE LINE # 107
01C6 620 ?C0007:
01C6 90000B 621 MOV DPTR,#0BH
01C9 020000 F 622 LJMP ?C?ADDXBP
623 ; END OF _?OSTimeDlyHMSM
624
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?