⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taskisr.lst

📁 MCS-51的一个小型操作系统,在KeilC中大模式下编译工作
💻 LST
字号:
C51 COMPILER V8.02   TASKISR                                                               11/05/2004 10:43:36 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE TASKISR
OBJECT MODULE PLACED IN TASKISR.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE TASKISR.C BROWSE DEBUG OBJECTEXTEND SRC(.\TASKISR.SRC)

line level    source

   1          /********************************************
   2                 嵌入式系统 小型操作系统
   3                            作者:汪普宏
   4                      制作日期:2006.9
   5          *********************************************/
   6          
   7          #include "os.h"
   8          #include"OS_Mail.h"
   9          #include "OS_Memory.h"
  10          /****************************************
  11          模块功能:任务级任务调度
  12          模块接口:当前任务优先级,任务挂起延迟时间
  13          调用者:任务
  14          返回值:  无
  15          *****************************************/
  16          
  17          void OSTask_TimeDal(uchar TimeDal)                      //任务级任务切换函数
  18          {   
  19   1              ISR_num++; 
  20   1              #pragma ASM 
  21   1              PUSH    ACC
  22   1              PUSH    B 
  23   1              PUSH    DPH 
  24   1              PUSH    DPL 
  25   1              PUSH    PSW 
  26   1              MOV     PSW,  0
  27   1              PUSH    AR0
  28   1              PUSH    AR1
  29   1              PUSH    AR2
  30   1              PUSH    AR3
  31   1              PUSH    AR4
  32   1              PUSH    AR5
  33   1              PUSH    AR6
  34   1              PUSH    AR7
  35   1              #pragma  ENDASM 
  36   1              OSPCB[Prio].timedal=TimeDal;    
  37   1              if(Prio!=FREE_TASK)
  38   1              {
  39   2                        if(TimeDal>0)
  40   2                        {
  41   3                                  OSPCB[Prio].flg=WAIT_TIME;   //任务因时间延迟挂起
  42   3                        }
  43   2                        else   
  44   2                        {
  45   3                                  OSPCB[Prio].flg=WAIT_MSG;    //非空闲任务应因等待消息挂起
  46   3                        }
  47   2                if((OSRdyTab[Prio>>3]&=~OSMapTab[Prio&0x07])==0)      //从就绪表中删除该任务
  48   2                {
  49   3                              OSRdyGrp&=~OSMapTab[Prio>>3]; 
  50   3                        }
  51   2                        OSISR_Task_Sched();                                                           
  52   2          }   
  53   1          #pragma ASM
  54   1              POP     AR7
  55   1              POP     AR6
C51 COMPILER V8.02   TASKISR                                                               11/05/2004 10:43:36 PAGE 2   

  56   1              POP     AR5
  57   1              POP     AR4
  58   1              POP     AR3
  59   1              POP     AR2
  60   1              POP     AR1
  61   1              POP     AR0
  62   1              POP     PSW
  63   1              POP     DPL
  64   1              POP     DPH
  65   1              POP     B
  66   1              POP     ACC
  67   1              DEC     ISR_num
  68   1              RETI
  69   1              #pragma  ENDASM  
  70   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    185    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -