鱼C论坛

 找回密码
 立即注册
查看: 2716|回复: 3

这个代码有谁读的懂

[复制链接]
发表于 2020-2-25 15:00:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
;****************************************************************
;                        UCOS186A.ASM
;            80186/80188 Real Time Operating System
;                     SMALL MEMORY MODEL
;****************************************************************
            PUBLIC _OSStartHighRdy  
            PUBLIC _OSCtxSw
            PUBLIC _OSIntCtxSw
            PUBLIC _OSTickISR
            EXTRN  _OSIntEnter:NEAR
            EXTRN  _OSIntExit:NEAR
            EXTRN  _OSTimeTick:NEAR
            EXTRN  _OSTCBCur:WORD
            EXTRN  _OSTCBHighRdy:WORD
.MODEL      SMALL
.CODE
.186
;****************************************************************
;                      START MULTITASKING
;                   void OSStartHighRdy(void)              
;****************************************************************
_OSStartHighRdy    PROC NEAR
            MOV    BX,[_OSTCBHighRdy] ;Get highest prio. task
            MOV    [_OSTCBCur],BX
            MOV    AX,[BX]            ;Get ptr to top of stack
            MOV    SP,AX
            MOV    AX,DS              ;Stacks are in DATA segment
            MOV    SS,AX              ;Thus set SS to DS
            POP    ES
            POPA
            IRET                      ;Return to task
_OSStartHighRdy    ENDP
;****************************************************************
;            PERFORM A CONTEXT SWITCH (From task level)
;                       void OSCtxSw(void)
;****************************************************************
_OSCtxSw    PROC   FAR
            PUSHA                     ;Save current task's context
            PUSH   ES
            MOV    BX,[_OSTCBCur]     ;Save stack ptr in TCB
            MOV    [BX],SP
            MOV    BX,[_OSTCBHighRdy] ;Point to HI Prio. Task Rdy
            MOV    [_OSTCBCur],BX     ;This is now current TCB
            MOV    SP,[BX]            ;Get new task's stack ptr
            POP    ES
            POPA
            IRET                      ;Return to new task
_OSCtxSw    ENDP
;****************************************************************
;            PERFORM A CONTEXT SWITCH (From an ISR)
;                     void OSIntCtxSw(void)
;****************************************************************
_OSIntCtxSw PROC   NEAR
            ADD    SP,10              ;Ignore calls to OSIntExit,
;                                     ;OSIntCtxSw and locals.
            MOV    BX,[_OSTCBCur]     ;Save stack ptr in TCB
            MOV    [BX],SP
            MOV    BX,[_OSTCBHighRdy] ;Point to HI Prio. Task Rdy
            MOV    [_OSTCBCur],BX     ;This is now current TCB
            MOV    SP,[BX]            ;Get new task's stack ptr
            POP    ES
            POPA
            IRET
_OSIntCtxSw ENDP
;****************************************************************
;                        HANDLE TICK ISR
;                      void OSTickISR(void)
;****************************************************************
_OSTickISR  PROC   FAR
            STI                       ;Enable interrupt nesting
            PUSHA                     ;Save current task's context
            PUSH   ES
            CALL   _OSIntEnter
            CALL   _OSTimeTick
            INT    0F2H               ;Run old tick ISR (DEMO only)
            CALL   _OSIntExit
            POP    ES                 ;Restore new task's context
            POPA
            IRET                      ;Return to interrupted task
_OSTickISR  ENDP
            END
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-25 15:01:53 | 显示全部楼层
我就是想问一件事情就是[_OSTCBHighRdy]和_OSTCBHighRdy有什么不同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-25 17:43:06 | 显示全部楼层
这个代码是ucos的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-25 17:47:59 | 显示全部楼层
有谁会ucos就是单片机上的东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 01:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表