os_mbox.asm
来自「ucOS在51单片机上的移植实现」· 汇编 代码 · 共 947 行 · 第 1/3 页
ASM
947 行
BD L32 ; |347|
NOP
LD #0,A ; |347|
; branch occurs ; |347|
L30:
.line 26
LD *AR1(3),A ; |349|
BC L31,AEQ ; |349|
; branch occurs ; |349|
.line 27
rsbx INTM
.line 28
BD L32 ; |351|
NOP
LD #20,A ; |351|
; branch occurs ; |351|
L31:
.line 30
LD *SP(6),A ; |353|
STL A,*AR1(3) ; |353|
.line 31
rsbx INTM
.line 32
LD #0,A ; |355|
L32:
.line 33
FRAME #4 ; |356|
POPM AR1 ; |356|
RET ; |356|
; return occurs ; |356|
.endfunc 356,000000400h,5
.sect ".text"
.global _OSMboxPostOpt
.sym _OSMboxPostOpt,_OSMboxPostOpt, 46, 2, 0
.func 389
;***************************************************************
;* FUNCTION DEF: _OSMboxPostOpt *
;***************************************************************
_OSMboxPostOpt:
;* A assigned to _pevent
.sym _pevent,0, 24, 17, 16, _os_event
.sym _msg,6, 16, 9, 16
.sym _opt,7, 14, 9, 16
.sym _pevent,2, 24, 1, 16, _os_event
PSHM AR1
FRAME #-4
NOP
.line 2
STL A,*SP(2) ; |390|
.line 9
LD *SP(2),A ; |397|
BC L33,ANEQ ; |397|
; branch occurs ; |397|
.line 10
BD L41 ; |398|
NOP
LD #4,A ; |398|
; branch occurs ; |398|
L33:
.line 12
LD *SP(6),A ; |400|
BC L34,ANEQ ; |400|
; branch occurs ; |400|
.line 13
BD L41 ; |401|
NOP
LD #3,A ; |401|
; branch occurs ; |401|
L34:
.line 16
MVDK *SP(2),*(AR1) ; |404|
CMPM *AR1,#1 ; |404|
BC L35,TC ; |404|
; branch occurs ; |404|
.line 17
BD L41 ; |405|
NOP
LD #1,A ; |405|
; branch occurs ; |405|
L35:
.line 19
ssbx INTM
.line 20
LD *AR1(1),A ; |408|
BC L39,AEQ ; |408|
; branch occurs ; |408|
.line 21
BITF *SP(7),#1 ; |409|
BC L37,NTC ; |409|
; branch occurs ; |409|
.line 22
LD *AR1(1),A ; |410|
BC L38,AEQ ; |410|
; branch occurs ; |410|
L36:
.line 23
LD *SP(6),A ; |411|
ST #2,*SP(1) ; |411|
STL A,*SP(0) ; |411|
LD *SP(2),A ; |411|
CALL #_OS_EventTaskRdy ; |411|
; call occurs [#_OS_EventTaskRdy] ; |411|
.line 24
MVDK *SP(2),*(AR1) ; |412|
LD *AR1(1),A ; |412|
BC L36,ANEQ ; |412|
; branch occurs ; |412|
.line 25
B L38 ; |413|
; branch occurs ; |413|
L37:
.line 26
LD *SP(6),A ; |414|
ST #2,*SP(1) ; |414|
STL A,*SP(0) ; |414|
CALLD #_OS_EventTaskRdy ; |414|
NOP
LDM AR1,A ; |414|
; call occurs [#_OS_EventTaskRdy] ; |414|
L38:
.line 28
rsbx INTM
.line 29
CALL #_OS_Sched ; |417|
; call occurs [#_OS_Sched] ; |417|
.line 30
BD L41 ; |418|
NOP
LD #0,A ; |418|
; branch occurs ; |418|
L39:
.line 32
LD *AR1(3),A ; |420|
BC L40,AEQ ; |420|
; branch occurs ; |420|
.line 33
rsbx INTM
.line 34
BD L41 ; |422|
NOP
LD #20,A ; |422|
; branch occurs ; |422|
L40:
.line 36
LD *SP(6),A ; |424|
STL A,*AR1(3) ; |424|
.line 37
rsbx INTM
.line 38
LD #0,A ; |426|
L41:
.line 39
FRAME #4 ; |427|
POPM AR1 ; |427|
RET ; |427|
; return occurs ; |427|
.endfunc 427,000000400h,5
.sect ".text"
.global _OSMboxQuery
.sym _OSMboxQuery,_OSMboxQuery, 46, 2, 0
.func 449
;***************************************************************
;* FUNCTION DEF: _OSMboxQuery *
;***************************************************************
_OSMboxQuery:
;* A assigned to _pevent
.sym _pevent,0, 24, 17, 16, _os_event
.sym _p_mbox_data,5, 24, 9, 16, _os_mbox_data
.sym _pevent,0, 24, 1, 16, _os_event
.sym _psrc,1, 30, 1, 16
.sym _pdest,2, 30, 1, 16
PSHM AR1
FRAME #-3
NOP
.line 2
STL A,*SP(0) ; |450|
.line 11
LD *SP(0),A ; |459|
BC L42,ANEQ ; |459|
; branch occurs ; |459|
.line 12
BD L44 ; |460|
NOP
LD #4,A ; |460|
; branch occurs ; |460|
L42:
.line 15
MVDK *SP(0),*(AR1) ; |463|
CMPM *AR1,#1 ; |463|
BC L43,TC ; |463|
; branch occurs ; |463|
.line 16
BD L44 ; |464|
NOP
LD #1,A ; |464|
; branch occurs ; |464|
L43:
.line 18
ssbx INTM
.line 19
LD *AR1(1),A ; |467|
MVDK *SP(5),*(AR1) ; |467|
STL A,*AR1(9) ; |467|
.line 20
LD #4,A ; |468|
ADD *SP(0),A ; |468|
STL A,*SP(1) ; |468|
.line 21
LD *SP(5),A ; |469|
ADD #1,A ; |469|
STL A,*SP(2) ; |469|
.line 24
MVDK *SP(1),*(AR1) ; |472|
LD *AR1+,B ; |472|
MVKD *(AR1),*SP(1) ; |472|
STLM A,AR1 ; |472|
NOP
LDM AR1,A ; |472|
ADD #1,A,A ; |472|
STL A,*SP(2) ; |472|
STL B,*AR1 ; |472|
.line 28
MVDK *SP(1),*(AR1) ; |476|
LD *AR1+,B ; |476|
MVKD *(AR1),*SP(1) ; |476|
MVDK *SP(2),*(AR1) ; |476|
LDM AR1,A ; |476|
ADD #1,A,A ; |476|
STL A,*SP(2) ; |476|
STL B,*AR1 ; |476|
.line 32
MVDK *SP(1),*(AR1) ; |480|
LD *AR1+,B ; |480|
MVKD *(AR1),*SP(1) ; |480|
MVDK *SP(2),*(AR1) ; |480|
LDM AR1,A ; |480|
ADD #1,A,A ; |480|
STL A,*SP(2) ; |480|
STL B,*AR1 ; |480|
.line 36
MVDK *SP(1),*(AR1) ; |484|
LD *AR1+,B ; |484|
MVKD *(AR1),*SP(1) ; |484|
MVDK *SP(2),*(AR1) ; |484|
LDM AR1,A ; |484|
ADD #1,A,A ; |484|
STL A,*SP(2) ; |484|
STL B,*AR1 ; |484|
.line 40
MVDK *SP(1),*(AR1) ; |488|
LD *AR1+,B ; |488|
MVKD *(AR1),*SP(1) ; |488|
MVDK *SP(2),*(AR1) ; |488|
LDM AR1,A ; |488|
ADD #1,A,A ; |488|
STL A,*SP(2) ; |488|
STL B,*AR1 ; |488|
.line 44
MVDK *SP(1),*(AR1) ; |492|
LD *AR1+,B ; |492|
MVKD *(AR1),*SP(1) ; |492|
MVDK *SP(2),*(AR1) ; |492|
LDM AR1,A ; |492|
ADD #1,A,A ; |492|
STL A,*SP(2) ; |492|
STL B,*AR1 ; |492|
.line 48
MVDK *SP(1),*(AR1) ; |496|
LD *AR1+,B ; |496|
MVKD *(AR1),*SP(1) ; |496|
MVDK *SP(2),*(AR1) ; |496|
LDM AR1,A ; |496|
ADD #1,A,A ; |496|
STL A,*SP(2) ; |496|
STL B,*AR1 ; |496|
.line 52
MVDK *SP(1),*(AR2) ; |500|
MVDK *SP(2),*(AR3) ; |500|
MVDD *AR2,*AR3 ; |500|
.line 54
MVDK *SP(0),*(AR2) ; |502|
MAR *+AR2(#3) ; |502|
MVDK *SP(5),*(AR3) ; |502|
MVDD *AR2,*AR3 ; |502|
.line 55
rsbx INTM
.line 56
LD #0,A ; |504|
L44:
.line 57
FRAME #3 ; |505|
POPM AR1 ; |505|
RET ; |505|
; return occurs ; |505|
.endfunc 505,000000400h,4
;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;***************************************************************
.global _OS_EventTaskRdy
.global _OS_EventTaskWait
.global _OS_EventTO
.global _OS_EventWaitListInit
.global _OS_Sched
.global _OSTCBCur
.global _OSIntNesting
.global _OSEventFreeList
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?