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

📄 os_cpu_a.lst

📁 ucos v2.62 安装程序 附带已移植到C8051F020的UCOS源码
💻 LST
字号:
A51 MACRO ASSEMBLER  OS_CPU_A                                                             04/11/2007 16:19:49 PAGE     1


MACRO ASSEMBLER A51 V8.00b
OBJECT MODULE PLACED IN ..\Output\OS_CPU_A.obj
ASSEMBLER INVOKED BY: D:\Program Files\keil\C51\BIN\A51.EXE ..\Port\OS_CPU_A.ASM SET(LARGE) DEBUG PRINT(..\Output\OS_CPU
                      _A.lst) OBJECT(..\Output\OS_CPU_A.obj) EP

LOC  OBJ            LINE     SOURCE

                       1     
                       2     
                       3     NAME OS_CPU_A    ;模块名
                       4             
                       5     ;定义重定位段
                       6     ?PR?OSStartHighRdy?OS_CPU_A    SEGMENT CODE
                       7     ?PR?OSCtxSw?OS_CPU_A           SEGMENT CODE
                       8     ?PR?OSIntCtxSw?OS_CPU_A        SEGMENT CODE
                       9     ?PR?OSTickISR?OS_CPU_A         SEGMENT CODE
                      10     
                      11     
                      12             
                      13     ;声明引用全局变量和外部子程序
                      14             EXTRN DATA  (?C_XBP)     ;仿真堆栈指针用于重入局部变量保存
                      15     
                      16             EXTRN IDATA (OSTCBCur)
                      17             EXTRN IDATA (OSTCBHighRdy)
                      18             EXTRN IDATA (OSRunning)
                      19             EXTRN IDATA (OSPrioCur)
                      20             EXTRN IDATA (OSPrioHighRdy)
                      21         
                      22             EXTRN CODE  (_?OSTaskSwHook)
                      23             EXTRN CODE  (_?OSIntEnter)
                      24             EXTRN CODE  (_?OSIntExit)
                      25             EXTRN CODE  (_?OSTimeTick)        
                      26                     
                      27                 
                      28     ;对外声明4个不可重入函数
                      29             PUBLIC OSStartHighRdy
                      30             PUBLIC OSCtxSw
                      31             PUBLIC OSIntCtxSw
                      32             PUBLIC OSTickISR
                      33             
                      34         
                      35     ;分配堆栈空间。只关心大小,堆栈起点由keil决定,通过标号可以获得keil分配的SP起点。
                      36     ?STACK SEGMENT IDATA
----                  37             RSEG ?STACK
0000                  38     OSStack:
0000                  39             DS 40H
  FFFF                40     OSStkStart IDATA OSStack-1
                      41     
                      42     ;定义压栈出栈宏
                      43     PUSHALL    MACRO
                      44             PUSH PSW
                      45             PUSH ACC
                      46             PUSH B
                      47             PUSH DPL
                      48             PUSH DPH
                      49             MOV  A,R0   ;R0-R7入栈
                      50             PUSH ACC
                      51             MOV  A,R1
                      52             PUSH ACC
                      53             MOV  A,R2
                      54             PUSH ACC
                      55             MOV  A,R3
                      56             PUSH ACC
                      57             MOV  A,R4
A51 MACRO ASSEMBLER  OS_CPU_A                                                             04/11/2007 16:19:49 PAGE     2

                      58             PUSH ACC
                      59             MOV  A,R5
                      60             PUSH ACC
                      61             MOV  A,R6
                      62             PUSH ACC
                      63             MOV  A,R7
                      64             PUSH ACC
                      65             ;PUSH SP    ;不必保存SP,任务切换时由相应程序调整
                      66             ENDM
                      67         
                      68     POPALL    MACRO
                      69             ;POP  ACC   ;不必保存SP,任务切换时由相应程序调整
                      70             POP  ACC    ;R0-R7出栈
                      71             MOV  R7,A
                      72             POP  ACC
                      73             MOV  R6,A
                      74             POP  ACC
                      75             MOV  R5,A
                      76             POP  ACC
                      77             MOV  R4,A
                      78             POP  ACC
                      79             MOV  R3,A
                      80             POP  ACC
                      81             MOV  R2,A
                      82             POP  ACC
                      83             MOV  R1,A
                      84             POP  ACC
                      85             MOV  R0,A
                      86             POP  DPH
                      87             POP  DPL
                      88             POP  B
                      89             POP  ACC
                      90             POP  PSW
                      91             ENDM
                      92         
                      93     ;子程序
                      94     ;-------------------------------------------------------------------------
----                  95            RSEG ?PR?OSStartHighRdy?OS_CPU_A
0000                  96     OSStartHighRdy:
                      97             USING 0    ;上电后51自动关中断,此处不必用CLR EA指令,因为到此处还未开中断,本程序

⌨️ 快捷键说明

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