?? os_cpu_a.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 + -