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

📄 os_cpu_a.lst

📁 基于51单片机来实现UCOS用一个串口来看到实现阶段
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  OS_CPU_A                                                             07/08/2007 20:25:05 PAGE     1


MACRO ASSEMBLER A51 V7.02a
OBJECT MODULE PLACED IN OS_CPU_A.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE OS_CPU_A.ASM SET(LARGE) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     NAME    OS_CPU_A
                       2     ;//----------------------------------------------------------------
                       3     ;用于C函数调用的汇编代码
                       4     ?PR?OSStartHighRdy?OS_CPU_A        SEGMENT CODE 
                       5     ?PR?OSCtxSw?OS_CPU_A               SEGMENT CODE 
                       6     ?PR?OSIntCtxSw?OS_CPU_A            SEGMENT CODE 
                       7     ?PR?OSTickISR?OS_CPU_A             SEGMENT CODE 
                       8     ;//----------------------------------------------------------------
                       9     ;?PR?_EXTERN_0_ISR_?OS_CPU_A        SEGMENT CODE 
                      10     ;?PR?_EXTERN_1_ISR_?OS_CPU_A        SEGMENT CODE 
                      11     ;?PR?_TIME_1_ISR_?OS_CPU_A          SEGMENT CODE 
                      12      ?PR?_SERY_ISR_?OS_CPU_A            SEGMENT CODE 
                      13     ;//----------------------------------------------------------------
                      14     ;汇编调用外部C函数和变量       
                      15                     EXTRN   IDATA (OSTCBCur)
                      16                     EXTRN   IDATA (OSTCBHighRdy)
                      17                     EXTRN   IDATA (OSRunning)
                      18                     EXTRN   IDATA (OSPrioCur)
                      19                     EXTRN   IDATA (OSPrioHighRdy)
                      20                     ;//--------------------------------------------------------
                      21                     EXTRN   CODE (OSTimeTick)
                      22                     EXTRN   CODE (_?OSTaskSwHook)
                      23                     EXTRN   CODE (OSIntExit)
                      24                     ;EXTRN  CODE (OSTCBSWHook)
                      25                     EXTRN   CODE (OSIntEnter)
                      26                     ;EXTRN  CODE (TickTime)
                      27                     ;//--------------------------------------------------------
                      28                     ;EXTRN  CODE (ExternInt0)
                      29                     ;EXTRN  CODE (ExternInt1)
                      30                     ;EXTRN  CODE (Time1Int)
                      31                      EXTRN  CODE (SeryInt)
                      32                     ;//--------------------------------------------------------
                      33                     ;PUBLIC  Extern_0_ISR 
                      34                     ;PUBLIC  Extern_1_ISR
                      35                     ;PUBLIC  Time_1_ISR
                      36                      PUBLIC  Sery_ISR
                      37                     ;//--------------------------------------------------------
                      38                     ;EXTRN  CODE (OSTickISRHook)
                      39                     ;//--------------------------------------------------------
                      40                     PUBLIC  OSTickISR
                      41                     PUBLIC  OSIntCtxSw
                      42                     PUBLIC  OSCtxSw
                      43                     PUBLIC  OSStartHighRdy
                      44                     ;//--------------------------------------------------------
                      45     ?STACK SEGMENT IDATA
----                  46     RSEG ?STACK
0000                  47     OSStack:
0000                  48     DS 40H
  FFFF                49     OSStkStart IDATA OSStack-1
                      50     ;//----------------------------------------------------------------
                      51     PushAll MACRO
                      52                   PUSH   PSW                
                      53                     PUSH   ACC
                      54                     PUSH   B
                      55                     PUSH   DPL
                      56                     PUSH   DPH
                      57     
                      58                     MOV    A,R0
A51 MACRO ASSEMBLER  OS_CPU_A                                                             07/08/2007 20:25:05 PAGE     2

                      59                     PUSH   ACC
                      60                     MOV    A,R1
                      61                     PUSH   ACC
                      62                     MOV    A,R2
                      63                     PUSH   ACC
                      64                     MOV    A,R3
                      65                     PUSH   ACC
                      66                     MOV    A,R4
                      67                     PUSH   ACC
                      68                     MOV    A,R5
                      69                     PUSH   ACC
                      70                     MOV    A,R6
                      71                     PUSH   ACC
                      72                     MOV    A,R7
                      73                     PUSH   ACC
                      74                     ENDM
                      75     ;//----------------------------------------------------------------       
                      76     ;//----------------------------------------------------------------
                      77     PopAll  MACRO
                      78                   POP   ACC
                      79                     MOV   R7,A
                      80                     POP   ACC
                      81                     MOV   R6,A
                      82                     POP   ACC
                      83                     MOV   R5,A
                      84                     POP   ACC
                      85                     MOV   R4,A
                      86                     POP   ACC
                      87                     MOV   R3,A
                      88                     POP   ACC
                      89                     MOV   R2,A
                      90                     POP   ACC
                      91                     MOV   R1,A
                      92                     POP   ACC
                      93                     MOV   R0,A
                      94     
                      95                     POP   DPL
                      96                     POP   DPH
                      97                     POP   B
                      98                     POP   ACC
                      99                     POP   PSW
                     100                     ENDM 
                     101     ;//----------------------------------------------------------------
----                 102     RSEG  ?PR?OSStartHighRdy?OS_CPU_A           
0000                 103     OSStartHighRdy:                                            
                     104                USING        0                                           
                     105                                                
                     106     
                     107                                            
0000                 108     OSCtxSw_in:
0000 7800     F      109             MOV   R0,#LOW  (OSTCBCur)         
                     110     
0002 08              111             INC   R0
0003 8683            112             MOV   DPH,@R0
0005 08              113             INC   R0
0006 8682            114             MOV   DPL,@R0                                
                     115                             
0008 A3              116             INC   DPTR
0009 E0              117             MOVX  A, @DPTR
000A F9              118             MOV   R1,A
000B A3              119                 INC   DPTR
000C E0              120                 MOVX  A, @DPTR
000D F8              121                 MOV   R0,A
000E 8983            122                 MOV   DPH, R1
0010 8882            123                 MOV   DPL, R0                                    
                     124             
A51 MACRO ASSEMBLER  OS_CPU_A                                                             07/08/2007 20:25:05 PAGE     3

0012 E0              125                 MOVX  A, @DPTR
0013 FD              126                 MOV   R5,A                                           
                     127     
0014 7800     F      128                 MOV  R0,#OSStkStart                          
                     129             
0016                 130     restore_stack:
                     131     
0016 A3              132             INC  DPTR
0017 08              133             INC  R0
0018 E0              134             MOVX A,@DPTR
0019 F6              135             MOV  @R0,A
001A DDFA            136             DJNZ R5,restore_stack                    
                     137                                     
001C 8881            138             MOV  SP,R0                                           
                     139         
                     140             ;OSRunning=TRUE
001E 7800     F      141             MOV  R0,#LOW (OSRunning)
0020 7601            142             MOV  @R0,#01
                     143                                                                             
                     144             POPALL                                                   
0044 D2AF            167             SETB EA                          
0046 32              168             RETI                                                 
                     169     
                     170     
                     171     ;//----------------------------------------------------------------     
                     172     
                     173     ;//----------------------------------------------------------------
----                 174     RSEG  ?PR?OSCtxSw?OS_CPU_A                                       
                     175     
                     176                                                 
0000                 177     OSCtxSw:
                     178             PushAll                                                          
0022                 201     OSIntCtxSw_in:          
0022 E581            202             MOV  A,SP
0024 C3              203             CLR  C                                                      
0025 9400     F      204             SUBB A,#OSStkStart
0027 FD              205             MOV  R5,A                                                
                     206         
                     207             ;OSTCBCur ===> DPTR 
0028 7800     F      208             MOV  R0,#LOW (OSTCBCur) 
002A 08              209             INC  R0
002B 8683            210             MOV  DPH,@R0    
002D 08              211             INC  R0
002E 8682            212             MOV  DPL,@R0                                              

⌨️ 快捷键说明

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