📄 mbox.src
字号:
.CPU 300
.IMPORT $sp_regsv$3
.IMPORT $spregld2$3
.IMPORT _OSCPUSaveSR
.IMPORT _OSCPURestoreSR
.IMPORT _OSEventFreeList
.IMPORT _OSIntNesting
.IMPORT _OSTCBCur
.IMPORT _OS_EventTaskRdy
.IMPORT _OS_EventTaskWait
.IMPORT _OS_EventTO
.IMPORT _OS_EventWaitListInit
.IMPORT _OS_Sched
.EXPORT _OSMboxAccept
.EXPORT _OSMboxCreate
.EXPORT _OSMboxDel
.EXPORT _OSMboxPend
.EXPORT _OSMboxPost
.EXPORT _OSMboxPostOpt
.EXPORT _OSMboxQuery
.SECTION P,CODE,ALIGN=2
.LINE "E:\Study\ucOS-II\ucOS-II\ucOS kernel\event\MBox.c",39
_OSMboxAccept: ; function: OSMboxAccept
.STACK _OSMboxAccept=6
PUSH.W R6
PUSH.W R4
.LINE 40
MOV.W R0,R6
.LINE 53
MOV.B @R6,R1L
CMP.B #1,R1L
BEQ L137
.LINE 53
.LINE 54
SUB.W R0,R0
BRA L138
L137:
.LINE 56
JSR @_OSCPUSaveSR:16
.LINE 57
MOV.W @(2:16,R6),R4
.LINE 58
SUB.W R1,R1
MOV.W R1,@(2:16,R6)
.LINE 59
JSR @_OSCPURestoreSR:16
.LINE 60
MOV.W R4,R0
.LINE 61
L138:
POP.W R4
POP.W R6
RTS
.LINE 80
_OSMboxCreate: ; function: OSMboxCreate
.STACK _OSMboxCreate=12
JSR @$sp_regsv$3:16
.LINE 81
MOV.W R0,R3
.LINE 89
MOV.B @_OSIntNesting:16,R1L
BEQ L139
.LINE 89
.LINE 90
SUB.W R0,R0
BRA L140
L139:
.LINE 92
JSR @_OSCPUSaveSR:16
MOV.B R0L,R4L
.LINE 93
MOV.W #_OSEventFreeList,R1
MOV.W @R1,R6
.LINE 94
MOV.W R6,R0
BEQ L141
.LINE 94
.LINE 95
MOV.W @(2:16,R6),R0
MOV.W R0,@R1
L141:
.LINE 97
MOV.B R4L,R0L
JSR @_OSCPURestoreSR:16
.LINE 98
MOV.W R6,R6
BEQ L142
.LINE 98
.LINE 99
MOV.B #1,R0L
MOV.B R0L,@R6
.LINE 100
SUB.W R0,R0
MOV.W R0,@(4:16,R6)
.LINE 101
MOV.W R3,@(2:16,R6)
.LINE 106
MOV.W R6,R0
JSR @_OS_EventWaitListInit:16
L142:
.LINE 108
MOV.W R6,R0
.LINE 109
L140:
JMP @$spregld2$3:16
.LINE 148
_OSMboxDel: ; function: OSMboxDel
.STACK _OSMboxDel=16
JSR @$sp_regsv$3:16
SUBS.W #2,SP
.LINE 149
MOV.W #_OSEventFreeList,R3
MOV.W R0,R6
MOV.B R1L,@SP
MOV.W @(14:16,SP),R5
.LINE 167
MOV.B @R6,R1H
CMP.B #1,R1H
BEQ L143
.LINE 167
.LINE 168
MOV.B #1,R1H
MOV.B R1H,@R5
.LINE 169
JMP @L144:16
L143:
.LINE 171
MOV.B @_OSIntNesting:16,R0L
BEQ L145
.LINE 171
.LINE 172
MOV.B #-116,R0L
MOV.B R0L,@R5
.LINE 173
MOV.W R6,R0
JMP @L144:16
L145:
.LINE 175
JSR @_OSCPUSaveSR:16
MOV.B R0L,R4L
.LINE 176
MOV.B @(6:16,R6),R0L
BEQ L146
.LINE 176
.LINE 177
MOV.B #1,R4H
BRA L147
L146:
.LINE 178
.LINE 179
SUB.B R4H,R4H
L147:
.LINE 181
MOV.B @SP,R0L
BEQ L134
CMP.B #1,R0L
BNE L136
BRA L152
.LINE 181
.LINE 182
L134:
.LINE 183
MOV.B R4H,R4H
BNE L149
.LINE 183
.LINE 188
SUB.B R0L,R0L
MOV.B R0L,@R6
.LINE 189
MOV.W @R3,R1
MOV.W R1,@(2:16,R6)
.LINE 190
SUB.W R1,R1
MOV.W R1,@(4:16,R6)
.LINE 191
MOV.W R6,@R3
.LINE 192
MOV.B R4L,R0L
JSR @_OSCPURestoreSR:16
.LINE 193
.LINE 194
BRA L174
L149:
.LINE 195
.LINE 196
MOV.B R4L,R0L
JSR @_OSCPURestoreSR:16
.LINE 197
MOV.B #8,R0L
.LINE 198
.LINE 200
BRA L175
.LINE 203
L151:
.LINE 203
.LINE 204
MOV.B #2,R0L
PUSH.W R0
SUB.W R1,R1
MOV.W R6,R0
JSR @_OS_EventTaskRdy:16
ADDS.W #2,SP
L152:
.LINE 203
MOV.B @(6:16,R6),R0L
BNE L151
.LINE 210
MOV.B R0L,@R6
.LINE 211
MOV.W @R3,R0
MOV.W R0,@(2:16,R6)
.LINE 212
SUB.W R0,R0
MOV.W R0,@(4:16,R6)
.LINE 213
MOV.W R6,@R3
.LINE 214
MOV.B R4L,R0L
JSR @_OSCPURestoreSR:16
.LINE 215
CMP.B #1,R4H
BNE L174
.LINE 215
.LINE 216
JSR @_OS_Sched:16
.LINE 218
.LINE 219
.LINE 220
L174:
SUB.B R0L,R0L
MOV.B R0L,@R5
SUB.W R5,R5
BRA L148
L136:
.LINE 223
MOV.B R4L,R0L
JSR @_OSCPURestoreSR:16
.LINE 224
MOV.B #7,R0L
.LINE 225
.LINE 226
L175:
MOV.B R0L,@R5
MOV.W R6,R5
L148:
.LINE 228
MOV.W R5,R0
.LINE 229
L144:
ADDS.W #2,SP
JMP @$spregld2$3:16
.LINE 264
_OSMboxPend: ; function: OSMboxPend
.STACK _OSMboxPend=18
JSR @$sp_regsv$3:16
SUBS.W #2,SP
SUBS.W #2,SP
.LINE 265
MOV.W R0,R5
MOV.W R1,@SP
MOV.W @(16:16,SP),R4
.LINE 282
MOV.B @R5,R2L
CMP.B #1,R2L
BEQ L154
.LINE 282
.LINE 283
MOV.B #1,R2L
MOV.B R2L,@R4
.LINE 284
BRA L177
L154:
.LINE 286
MOV.B @_OSIntNesting:16,R0L
BEQ L156
.LINE 286
.LINE 287
MOV.B #2,R0L
.LINE 288
BRA L178
L156:
.LINE 290
JSR @_OSCPUSaveSR:16
MOV.B R0L,R2H
.LINE 291
MOV.W @(2:16,R5),R6
.LINE 292
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -