📄 os_core.asm
字号:
.code
LM19:
R2=[BP] // QImode move
R1=R2 // QImode move
pc=L2 // Indirect jump
.debug
.dw '.stabn 0x44,0,132,',0,0
.dd LM20-_OSEventNameGet
.dw 0x0d,0x0a
.code
LM20:
LBE2:
.debug
.dw '.stabn 0x44,0,132,',0,0
.dd LM21-_OSEventNameGet
.dw 0x0d,0x0a
.code
LM21:
L2:
sp+=2
pop bp from [sp]
retf
.endp // end of OSEventNameGet
.debug
.dw '.stabs "pevent:p42",160,0,0,5',0x0d,0x0a
.CODE
.debug
.dw '.stabs "pname:p51=*21",160,0,0,6',0x0d,0x0a
.CODE
.debug
.dw '.stabs "err:p51",160,0,0,7',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB2-_OSEventNameGet
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "len:21",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE2-_OSEventNameGet
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME1-_OSEventNameGet
.dw 0x0d,0x0a
.code
LME1:
.code
.debug
.dw '.stabs "OSEventNameSet:F19",36,0,0,',0,0,offset _OSEventNameSet,seg _OSEventNameSet,0x0d,0x0a
.CODE
.public _OSEventNameSet
_OSEventNameSet: .proc
.debug
.dw '.stabn 0x44,0,164,',0,0
.dd LM22-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM22:
// total=2, vars=2
// frame_pointer_needed: 1
push bp to [sp]
sp-=2
bp=sp+1
R1=BP+5
[bp+1]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,165,',0,0
.dd LM23-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM23:
LBB3:
.debug
.dw '.stabn 0x44,0,173,',0,0
.dd LM24-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM24:
R1=[bp+1] // QImode move
R3=[bp+1] // QImode move
R2=R3+2
R3=R2 // QImode move
R1=[R3] // QImode move
CMP R1,0 // QImode test
NSJNZ L19 //QImode NE
.debug
.dw '.stabn 0x44,0,174,',0,0
.dd LM25-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM25:
pc=L18 // Indirect jump
L19:
.debug
.dw '.stabn 0x44,0,176,',0,0
.dd LM26-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM26:
R2=[bp+1] // QImode move
R1=[R2] // QImode move
CMP R1,0 // QImode test
NSJNZ L20 //QImode NE
.debug
.dw '.stabn 0x44,0,177,',0,0
.dd LM27-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM27:
R1=[bp+1] // QImode move
R3=[bp+1] // QImode move
R2=R3+2
R3=R2 // QImode move
R1=[R3] // QImode move
R2=4 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,178,',0,0
.dd LM28-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM28:
pc=L18 // Indirect jump
L20:
.debug
.dw '.stabn 0x44,0,180,',0,0
.dd LM29-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM29:
R1=[bp+1] // QImode move
R1=[bp+1] // QImode move
R2=R1+1
R3=R2 // QImode move
R1=[R3] // QImode move
CMP R1,0 // QImode test
NSJNZ L21 //QImode NE
.debug
.dw '.stabn 0x44,0,181,',0,0
.dd LM30-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM30:
R1=[bp+1] // QImode move
R1=[bp+1] // QImode move
R2=R1+2
R3=R2 // QImode move
R1=[R3] // QImode move
R2=15 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,182,',0,0
.dd LM31-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM31:
pc=L18 // Indirect jump
L21:
.debug
.dw '.stabn 0x44,0,185,',0,0
.dd LM32-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM32:
R1=[bp+1] // QImode move
R2=[R1] // QImode move
R3=R2 // QImode move
R1=[R3] // QImode move
CMP R1,4 // QImode compare
NSJA L27 //QImode GTU
CMP R1,1 // QImode compare
NSJB L27 //QImode LTU
pc=L26 // Indirect jump
L23:
L24:
L25:
L26:
.debug
.dw '.stabn 0x44,0,190,',0,0
.dd LM33-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM33:
pc=L22 // Indirect jump
L27:
.debug
.dw '.stabn 0x44,0,193,',0,0
.dd LM34-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM34:
R1=[bp+1] // QImode move
R1=[bp+1] // QImode move
R2=R1+2
R3=R2 // QImode move
R1=[R3] // QImode move
R2=1 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,194,',0,0
.dd LM35-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM35:
pc=L18 // Indirect jump
L22:
.debug
.dw '.stabn 0x44,0,196,',0,0
.dd LM36-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM36:
call _Critical_in // call with return value
.debug
.dw '.stabn 0x44,0,197,',0,0
.dd LM37-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM37:
R1=[bp+1] // QImode move
R1=[bp+1] // QImode move
R2=R1+1
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
call _OS_StrLen // call with return value
SP = SP + 1 //SP
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,198,',0,0
.dd LM38-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM38:
R1=[BP] // QImode move
CMP R1,15 // QImode compare
NSJNA L29 //QImode LEU
.debug
.dw '.stabn 0x44,0,199,',0,0
.dd LM39-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM39:
LBB4:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,200,',0,0
.dd LM40-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM40:
R1=[bp+1] // QImode move
R1=[bp+1] // QImode move
R2=R1+2
R3=R2 // QImode move
R1=[R3] // QImode move
R2=12 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,201,',0,0
.dd LM41-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM41:
pc=L18 // Indirect jump
.debug
.dw '.stabn 0x44,0,202,',0,0
.dd LM42-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM42:
LBE4:
L29:
.debug
.dw '.stabn 0x44,0,203,',0,0
.dd LM43-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM43:
R1=[bp+1] // QImode move
R1=[bp+1] // QImode move
R2=R1+1
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
R1=[bp+1] // QImode move
R2=[R1] // QImode move
R1=R2+8
[SP--]=R1 // QImode move
call _OS_StrCopy // call with return value
SP = SP + 2 //SP
.debug
.dw '.stabn 0x44,0,204,',0,0
.dd LM44-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM44:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,205,',0,0
.dd LM45-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM45:
R1=[bp+1] // QImode move
R3=[bp+1] // QImode move
R2=R3+2
R3=R2 // QImode move
R1=[R3] // QImode move
R2=0 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,206,',0,0
.dd LM46-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM46:
LBE3:
.debug
.dw '.stabn 0x44,0,206,',0,0
.dd LM47-_OSEventNameSet
.dw 0x0d,0x0a
.code
LM47:
L18:
sp+=2
pop bp from [sp]
retf
.endp // end of OSEventNameSet
.debug
.dw '.stabs "pevent:p42",160,0,0,5',0x0d,0x0a
.CODE
.debug
.dw '.stabs "pname:p51",160,0,0,6',0x0d,0x0a
.CODE
.debug
.dw '.stabs "err:p51",160,0,0,7',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB3-_OSEventNameSet
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "len:21",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB4-_OSEventNameSet
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE4-_OSEventNameSet
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE3-_OSEventNameSet
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME2-_OSEventNameSet
.dw 0x0d,0x0a
.code
LME2:
.code
.debug
.dw '.stabs "OSInit:F19",36,0,0,',0,0,offset _OSInit,seg _OSInit,0x0d,0x0a
.CODE
.public _OSInit
_OSInit: .proc
.debug
.dw '.stabn 0x44,0,224,',0,0
.dd LM48-_OSInit
.dw 0x0d,0x0a
.code
LM48:
// total=1, vars=1
// frame_pointer_needed: 1
push bp to [sp]
sp-=1
bp=sp+1
R1=BP+4
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,226,',0,0
.dd LM49-_OSInit
.dw 0x0d,0x0a
.code
LM49:
call _OSInitHookBegin // call without return value
.debug
.dw '.stabn 0x44,0,229,',0,0
.dd LM50-_OSInit
.dw 0x0d,0x0a
.code
LM50:
call _OS_InitMisc // call without return value
.debug
.dw '.stabn 0x44,0,231,',0,0
.dd LM51-_OSInit
.dw 0x0d,0x0a
.code
LM51:
call _OS_InitRdyList // call without return value
.debug
.dw '.stabn 0x44,0,233,',0,0
.dd LM52-_OSInit
.dw 0x0d,0x0a
.code
LM52:
call _OS_InitTCBList // call without return value
.debug
.dw '.stabn 0x44,0,235,',0,0
.dd LM53-_OSInit
.dw 0x0d,0x0a
.code
LM53:
call _OS_InitEventList // call without return value
.debug
.dw '.stabn 0x44,0,249,',0,0
.dd LM54-_OSInit
.dw 0x0d,0x0a
.code
LM54:
call _OS_InitTaskIdle // call without return value
.debug
.dw '.stabn 0x44,0,251,',0,0
.dd LM55-_OSInit
.dw 0x0d,0x0a
.code
LM55:
call _OS_InitTaskStat // call without return value
.debug
.dw '.stabn 0x44,0,255,',0,0
.dd LM56-_OSInit
.dw 0x0d,0x0a
.code
LM56:
call _OSInitHookEnd // call without return value
.debug
.dw '.stabn 0x44,0,261,',0,0
.dd LM57-_OSInit
.dw 0x0d,0x0a
.code
LM57:
.debug
.dw '.stabn 0x44,0,261,',0,0
.dd LM58-_OSInit
.dw 0x0d,0x0a
.code
LM58:
L36:
sp+=1
pop bp from [sp]
retf
.endp // end of OSInit
.debug
.dw '.stabf ',0,0
.dd LME3-_OSInit
.dw 0x0d,0x0a
.code
LME3:
.code
.debug
.dw '.stabs "OSIntEnter:F19",36,0,0,',0,0,offset _OSIntEnter,seg _OSIntEnter,0x0d,0x0a
.CODE
.public _OSIntEnter
_OSIntEnter: .proc
.debug
.dw '.stabn 0x44,0,289,',0,0
.dd LM59-_OSIntEnter
.dw 0x0d,0x0a
.code
LM59:
// total=0, vars=0
// frame_pointer_needed: 1
push bp to [sp]
bp=sp+1
R1=BP+3
.debug
.dw '.stabn 0x44,0,290,',0,0
.dd LM60-_OSIntEnter
.dw 0x0d,0x0a
.code
LM60:
R2=[_OSRunning] // QImode move
CMP R2,1 // QImode compare
NSJNZ L38 //QImode NE
.debug
.dw '.stabn 0x44,0,291,',0,0
.dd LM61-_OSIntEnter
.dw 0x0d,0x0a
.code
LM61:
R2=[_OSIntNesting] // QImode move
CMP R2,254 // QImode compare
NSJA L38 //QImode GTU
.debug
.dw '.stabn 0x44,0,292,',0,0
.dd LM62-_OSIntEnter
.dw 0x0d,0x0a
.code
LM62:
R2=[_OSIntNesting] // QImode move
R3=1 // QImode move
[_OSIntNesting]=R2+R3 //addqi3_Qrr
L39:
L38:
.debug
.dw '.stabn 0x44,0,295,',0,0
.dd LM63-_OSIntEnter
.dw 0x0d,0x0a
.code
LM63:
.debug
.dw '.stabn 0x44,0,295,',0,0
.dd LM64-_OSIntEnter
.dw 0x0d,0x0a
.code
LM64:
L37:
pop bp from [sp]
retf
.endp // end of OSIntEnter
.debug
.dw '.stabf ',0,0
.dd LME4-_OSIntEnter
.dw 0x0d,0x0a
.code
LME4:
.code
.debug
.dw '.stabs "OSIntExit:F19",36,0,0,',0,0,offset _OSIntExit,seg _OSIntExit,0x0d,0x0a
.CODE
.public _OSIntExit
_OSIntExit: .proc
.debug
.dw '.stabn 0x44,0,317,',0,0
.dd LM65-_OSIntExit
.dw 0x0d,0x0a
.code
LM65:
// total=6, vars=6
// frame_pointer_needed: 1
push bp to [sp]
sp-=6
bp=sp+1
R1=BP+9
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,324,',0,0
.dd LM66-_OSIntExit
.dw 0x0d,0x0a
.code
LM66:
LBB5:
R1=[_OSRunning] // QImode move
CMP R1,1 // QImode compare
NSJNZ L43 //QImode NE
.debug
.dw '.stabn 0x44,0,325,',0,0
.dd LM67-_OSIntExit
.dw 0x0d,0x0a
.code
LM67:
LBB6:
call _Critical_in // call with return value
.debug
.dw '.stabn 0x44,0,326,',0,0
.dd LM68-_OSIntExit
.dw 0x0d,0x0a
.code
LM68:
R1=[_OSIntNesting] // QImode move
CMP R1,0 // QImode test
NSJZ L44 //QImode EQ
.debug
.dw '.stabn 0x44,0,327,',0,0
.dd LM69-_OSIntExit
.dw 0x0d,0x0a
.code
LM69:
R1=[_OSIntNesting] // QImode move
R2=(-1) // QImode move
[_OSIntNesting]=R1+R2 //addqi3_Qrr
L44:
.debug
.dw '.stabn 0x44,0,329,',0,0
.dd LM70-_OSIntExit
.dw 0x0d,0x0a
.code
LM70:
R1=[_OSIntNesting] // QImode move
CMP R1,0 // QImode test
NSJNZ L45 //QImode NE
.debug
.dw '.stabn 0x44,0,330,',0,0
.dd LM71-_OSIntExit
.dw 0x0d,0x0a
.code
LM71:
R1=[_OSLockNesting] // QImode move
CMP R1,0 // QImode test
NSJNZ L45 //QImode NE
.debug
.dw '.stabn 0x44,0,331,',0,0
.dd LM72-_OSIntExit
.dw 0x0d,0x0a
.code
LM72:
call _OS_SchedNew // call without return value
.debug
.dw '.stabn 0x44,0,332,',0,0
.dd LM73-_OSIntExit
.dw 0x0d,0x0a
.code
LM73:
R1=[_OSPrioHighRdy] // QImode move
CMP R1,[_OSPrioCur] // QImode compare
NSJZ L45 //QImode EQ
.debug
.dw '.stabn 0x44,0,333,',0,0
.dd LM74-_OSIntExit
.dw 0x0d,0x0a
.code
LM74:
LBB7:
R1=_OSTCBPrioTbl // QImode move
R2=[_OSPrioHighRdy] // QImode move
R1 = R1 + R2 //addqi3
R3=R1 // QImode move
R2=[R3] // QImode move
[_OSTCBHighRdy]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,335,',0,0
.dd LM75-_OSIntExit
.dw 0x0d,0x0a
.code
LM75:
R2=[_OSTCBHighRdy] // QImode move
R1=R2 // QImode move
R2=R2+19
R1=[_OSTCBHighRdy] // QImode move
R2=R1 // QImode move
R1=R1+19
R3=[_OSTCBHighRdy] // QImode move
R2=R3 // QImode move
R4=R3+19
[bp+3]=R4 // QImode move
R4=[bp+3] // QImode move
//split R3, [R4]
R3=[R4++] // QImode move
R4=[R4--] // QImode move
//split [bp+1], R3
[bp+1]=R3 // QImode move
[bp+2]=R4 // QImode move
//split R3, [bp+1]
R3=[bp+1] // QImode move
R4=[bp+2] // QImode move
R3=R3+1 // HImode RD=RS+#IMM16
R4=R4+0, Carry
//split [bp+4], R3
[bp+4]=R3 // QImode move
[bp+5]=R4 // QImode move
//split R3, [bp+4]
R3=[bp+4] // QImode move
R4=[bp+5] // QImode move
R2=R1 // QImode move
//split [R2], R3
[R2++]=R3 // QImode move
[R2--]=R4 // QImode move
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -