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

📄 os_cpu_a.lst

📁 在C8051F120内移植uCOS-II
💻 LST
📖 第 1 页 / 共 3 页
字号:
                     233             SUBB A,R0
                     234             MOV  R5,A                     
                     235     
                     236             MOV  R1,#LOW(OSSimSTKBP)      
                     237         INC  R1
                     238             MOV  DPH,@R1 
                     239             INC  R1 
                     240             MOV  DPL,@R1 
                     241             
                     242             MOV  A,R5
                     243             MOVX @DPTR,A                  
                     244     
                     245             INC  DPTR
                     246     
                     247         MOV  A,DPL
                     248             CLR  C
                     249             SUBB A,R5
                     250             MOV  DPL,A
                     251             MOV  A,DPH
                     252             SUBB A,#00H
                     253             MOV  DPH,A                        
                     254     
                     255     SIMIN: 
                     256             MOVX A,@R0                    
A51 MACRO ASSEMBLER  OS_CPU_A                                                             04/13/2009 13:31:23 PAGE     5

                     257             MOVX @DPTR,A                  
                     258             INC  DPTR
                     259             INC  R0          
                     260             DJNZ R5,SIMIN   
                     261     
                     262     ENDM
                     263     
                     264     
                     265     SimPOP   MACRO
                     266         MOV  R0,#LOW(OSSimSTKBP)
                     267         INC  R0
                     268             MOV  DPH,@R0
                     269             INC  R0
                     270             MOV  DPL,@R0
                     271     
                     272             MOVX A,@DPTR             
                     273             MOV  R5,A                                
                     274     
                     275             INC  DPTR 
                     276     
                     277             MOV  A,DPL
                     278             CLR  C   
                     279             SUBB A,R5 
                     280             MOV  DPL,A 
                     281             MOV  A,DPH      
                     282             SUBB A,#00H      
                     283             MOV  DPH,A                   
                     284     
                     285             MOV  R0,?C_IBP                   
                     286       
                     287     SIMOUT:
                     288         MOVX A,@DPTR
                     289             MOVX @R0,A
                     290             INC  DPTR
                     291             INC  R0
                     292             DJNZ R5,SIMOUT
                     293     
                     294     ENDM
                     295     
                     296     
                     297     
                     298     
                     299     
                     300     
                     301     
                     302     ;//----------------------------------------------------------------
----                 303             RSEG  ?PR?OSStartHighRdy?OS_CPU_A
0000                 304     OSStartHighRdy:
                     305             USING   1
0000 C2AF            306             CLR     EA
0002 120000   F      307             LCALL   OSTaskSwHook
0005 750060   F      308             MOV     STKStart,#0x60
0008                 309     _OSStartHighRdyGet:     
                     310             ;//------------------------------------------
                     311             ;// load the low byte of address of (name)
                     312             ;// and load the TCB of OSTCBHighRdy to DPTR
0008 7800     F      313             MOV   R0,#LOW  (OSTCBCur) 
000A 08              314             INC   R0
000B 8683            315             MOV   DPH,@R0
000D 08              316             INC   R0
000E 8682            317             MOV   DPL,@R0
                     318             
                     319             ;//------------------------------------------
                     320             ;// get the STK of OSTCBCur task TCB
0010 A3              321             INC   DPTR            
0011 E0              322         MOVX  A, @DPTR
A51 MACRO ASSEMBLER  OS_CPU_A                                                             04/13/2009 13:31:23 PAGE     6

0012 F9              323             MOV   R1,A
0013 A3              324             INC   DPTR
0014 E0              325             MOVX  A, @DPTR
0015 F8              326             MOV   R0,A
0016 8983            327             MOV   DPH, R1
0018 8882            328             MOV   DPL, R0
                     329             
                     330             ;//------------------------------------------
                     331             ;// DPTR --> STK of task
                     332                              
001A E0              333             MOVX  A, @DPTR
001B FD              334             MOV   R5,A
                     335             ;//------------------------------------------
                     336             ;// copy user to system
001C A900     F      337             MOV   R1, STKStart
001E 19              338             DEC   R1
                     339         
001F                 340     COPY_STK:
001F A3              341             INC   DPTR
0020 09              342             INC   R1
0021 E0              343             MOVX  A, @DPTR
0022 F7              344             MOV   @R1, A
0023 DDFA            345             DJNZ  R5, COPY_STK
                     346             
                     347             ;//------------------------------------------
                     348             ;// OSRunning = 1; multitask start
0025 7800     F      349             MOV   R0, #LOW(OSRunning)
0027 7601            350             MOV   @R0,#01
                     351             
                     352             ;//------------------------------------------
                     353             ;// Now R1 is the new task SP   
0029 8981            354             MOV  SP, R1
                     355             PopAll
                     393                     SimPOP
007B D2AF            422             SETB  EA
007D 32              423             RETI    
                     424     
                     425     
                     426     ;//----------------------------------------------------------------     
                     427     
                     428     ;//----------------------------------------------------------------
----                 429             RSEG  ?PR?OSCtxSw?OS_CPU_A
0000                 430     OSCtxSw:
0000 C2AF            431         CLR  EA
0002 7800     F      432             MOV  R0,#?C_IBP
                     433         PushAll     
                     471             SimPUSH
005E                 507     OSCtxSw2:       
                     508             ;//------------------------------------------
                     509             ;// SP - STKStart ===> R5
005E E581            510             MOV   A, SP
0060 C3              511             CLR   C
0061 9500     F      512             SUBB  A, STKStart
0063 FD              513             MOV   R5,A
0064 A900     F      514             MOV   R1,STKStart 
0066 ED              515             MOV   A, R5
0067 2401            516             ADD   A, #01
0069 FD              517             MOV   R5,A
                     518             
                     519             ;//------------------------------------------
006A 850083   F      520             MOV   DPH, User_SP
006D 850082   F      521             MOV   DPL, User_SP+1
                     522             
                     523             ;//------------------------------------------
                     524             ;// DPTR - R5
0070 E582            525             MOV   A, DPL    ; Adjust the xstack pointer
A51 MACRO ASSEMBLER  OS_CPU_A                                                             04/13/2009 13:31:23 PAGE     7

0072 C3              526             CLR   C
0073 9D              527             SUBB  A, R5
0074 F582            528             MOV   DPL,A
0076 E583            529             MOV   A,  DPH
0078 9400            530             SUBB  A,  #00H
007A F583            531             MOV   DPH,A
                     532             
                     533             ;//------------------------------------------
                     534             ;// User_SP ===> DPTR
007C 858300   F      535             MOV User_SP,   DPH
007F 858200   F      536             MOV User_SP+1, DPL
                     537     
0082 A3              538         INC DPTR
                     539             
                     540             ;//------------------------------------------
                     541             ;// Save the number of bytes saved
0083 ED              542             MOV  A, R5      
0084 F0              543             MOVX @DPTR,A
                     544             
                     545             ;//------------------------------------------
                     546             ;// Save to user stk
0085 ED              547             MOV A, R5
0086 FC              548             MOV R4,A
0087 19              549             DEC R1
0088                 550     SAVE_STK:
0088 A3              551             INC   DPTR
0089 09              552             INC   R1
008A E7              553             MOV   A, @R1
008B F0              554             MOVX  @DPTR, A
008C DCFA            555             DJNZ  R4, SAVE_STK  
                     556             
                     557         ;//------------------------------------------
008E 7800     F      558         MOV   R0,#LOW(OSTCBCur)
0090 08              559         INC   R0
0091 8683            560         MOV   DPH,@R0
0093 08              561         INC   R0
0094 8682            562         MOV   DPL,@R0
                     563             
0096 A3              564             INC   DPTR
0097 E500     F      565             MOV   A,User_SP
0099 F0              566             MOVX  @DPTR,A
009A A3              567             INC   DPTR
009B E500     F      568             MOV   A,User_SP+1
009D F0              569             MOVX  @DPTR,A
                     570     
009E 7800     F      571             MOV   R0,#LOW(OSTCBCur)
00A0 08              572             INC   R0
00A1 7900     F      573             MOV   R1,#LOW(OSTCBHighRdy)
00A3 09              574             INC   R1
00A4 E7              575             MOV   A,@R1
00A5 F6              576             MOV   @R0,A
                     577     
00A6 08              578             INC   R0
00A7 09              579             INC   R1
00A8 E7              580             MOV   A,@R1
00A9 F6              581             MOV   @R0,A     
                     582     
00AA 7800     F      583             MOV   R0,#OSPrioCur
00AC 7900     F      584             MOV   R1,#OSPrioHighRdy
                     585     
00AE E7              586             MOV   A,@R1
00AF F6              587             MOV   @R0,A
                     588             
                     589             ;//------------------------------------------   
00B0 120000   F      590             LCALL OSTaskSwHook
                     591         
A51 MACRO ASSEMBLER  OS_CPU_A                                                             04/13/2009 13:31:23 PAGE     8

00B3 020000   F      592             LJMP _OSStartHighRdyGet
                     593             ;//------------------------------------------
                     594             
                     595     ;//----------------------------------------------------------------
                     596     
                     597     ;//----------------------------------------------------------------
----                 598             RSEG  ?PR?OSIntCtxSw?OS_CPU_A
0000                 599     OSIntCtxSw:
                     600             ;//------------------------------------------
                     601             ;// Adjust the stack pointer to remove call to:
                     602             ;//   - call to OSIntExit  (2 bytes)
                     603             ;//   - call to OSIntCtxSw (2 bytes)
                     604             ;//   - locals             (0 bytes)
0000 C2AF            605             CLR     EA
0002 E581            606             MOV     A, SP
0004 C3              607             CLR     C
0005 9404            608             SUBB    A, #4

⌨️ 快捷键说明

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