📄 os_core.asm
字号:
.debug
.dw '.stabn 0x44,0,337,',0,0
.dd LM76-_OSIntExit
.dw 0x0d,0x0a
.code
LM76:
//split R1, [_OSCtxSwCtr]
R1=[_OSCtxSwCtr] // QImode move
R2=[_OSCtxSwCtr+1] // QImode move
R3=R1+1 // HImode RD=RS+#IMM16
R4=R2+0, Carry
//split [_OSCtxSwCtr], R3
[_OSCtxSwCtr]=R3 // QImode move
[_OSCtxSwCtr+1]=R4 // QImode move
.debug
.dw '.stabn 0x44,0,338,',0,0
.dd LM77-_OSIntExit
.dw 0x0d,0x0a
.code
LM77:
call _OSIntCtxSw // call with return value
.debug
.dw '.stabn 0x44,0,339,',0,0
.dd LM78-_OSIntExit
.dw 0x0d,0x0a
.code
LM78:
LBE7:
L47:
L46:
L45:
.debug
.dw '.stabn 0x44,0,342,',0,0
.dd LM79-_OSIntExit
.dw 0x0d,0x0a
.code
LM79:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,343,',0,0
.dd LM80-_OSIntExit
.dw 0x0d,0x0a
.code
LM80:
LBE6:
L43:
.debug
.dw '.stabn 0x44,0,344,',0,0
.dd LM81-_OSIntExit
.dw 0x0d,0x0a
.code
LM81:
LBE5:
.debug
.dw '.stabn 0x44,0,344,',0,0
.dd LM82-_OSIntExit
.dw 0x0d,0x0a
.code
LM82:
L42:
sp+=6
pop bp from [sp]
retf
.endp // end of OSIntExit
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB5-_OSIntExit
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB6-_OSIntExit
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB7-_OSIntExit
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE7-_OSIntExit
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE6-_OSIntExit
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE5-_OSIntExit
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME5-_OSIntExit
.dw 0x0d,0x0a
.code
LME5:
.code
.debug
.dw '.stabs "OSSchedLock:F19",36,0,0,',0,0,offset _OSSchedLock,seg _OSSchedLock,0x0d,0x0a
.CODE
.public _OSSchedLock
_OSSchedLock: .proc
.debug
.dw '.stabn 0x44,0,364,',0,0
.dd LM83-_OSSchedLock
.dw 0x0d,0x0a
.code
LM83:
// 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,371,',0,0
.dd LM84-_OSSchedLock
.dw 0x0d,0x0a
.code
LM84:
LBB8:
R1=[_OSRunning] // QImode move
CMP R1,1 // QImode compare
NSJNZ L54 //QImode NE
.debug
.dw '.stabn 0x44,0,372,',0,0
.dd LM85-_OSSchedLock
.dw 0x0d,0x0a
.code
LM85:
LBB9:
call _Critical_in // call with return value
.debug
.dw '.stabn 0x44,0,373,',0,0
.dd LM86-_OSSchedLock
.dw 0x0d,0x0a
.code
LM86:
R1=[_OSLockNesting] // QImode move
CMP R1,254 // QImode compare
NSJA L55 //QImode GTU
.debug
.dw '.stabn 0x44,0,374,',0,0
.dd LM87-_OSSchedLock
.dw 0x0d,0x0a
.code
LM87:
R1=[_OSLockNesting] // QImode move
R2=1 // QImode move
[_OSLockNesting]=R1+R2 //addqi3_Qrr
L55:
.debug
.dw '.stabn 0x44,0,376,',0,0
.dd LM88-_OSSchedLock
.dw 0x0d,0x0a
.code
LM88:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,377,',0,0
.dd LM89-_OSSchedLock
.dw 0x0d,0x0a
.code
LM89:
LBE9:
L54:
.debug
.dw '.stabn 0x44,0,378,',0,0
.dd LM90-_OSSchedLock
.dw 0x0d,0x0a
.code
LM90:
LBE8:
.debug
.dw '.stabn 0x44,0,378,',0,0
.dd LM91-_OSSchedLock
.dw 0x0d,0x0a
.code
LM91:
L53:
sp+=1
pop bp from [sp]
retf
.endp // end of OSSchedLock
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB8-_OSSchedLock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB9-_OSSchedLock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE9-_OSSchedLock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE8-_OSSchedLock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME6-_OSSchedLock
.dw 0x0d,0x0a
.code
LME6:
.code
.debug
.dw '.stabs "OSSchedUnlock:F19",36,0,0,',0,0,offset _OSSchedUnlock,seg _OSSchedUnlock,0x0d,0x0a
.CODE
.public _OSSchedUnlock
_OSSchedUnlock: .proc
.debug
.dw '.stabn 0x44,0,399,',0,0
.dd LM92-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM92:
// 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,406,',0,0
.dd LM93-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM93:
LBB10:
R1=[_OSRunning] // QImode move
CMP R1,1 // QImode compare
NSJNZ L59 //QImode NE
.debug
.dw '.stabn 0x44,0,407,',0,0
.dd LM94-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM94:
LBB11:
call _Critical_in // call with return value
.debug
.dw '.stabn 0x44,0,408,',0,0
.dd LM95-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM95:
R1=[_OSLockNesting] // QImode move
CMP R1,0 // QImode test
NSJZ L60 //QImode EQ
.debug
.dw '.stabn 0x44,0,409,',0,0
.dd LM96-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM96:
R1=[_OSLockNesting] // QImode move
R2=(-1) // QImode move
[_OSLockNesting]=R1+R2 //addqi3_Qrr
.debug
.dw '.stabn 0x44,0,410,',0,0
.dd LM97-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM97:
R1=[_OSLockNesting] // QImode move
CMP R1,0 // QImode test
NSJNZ L61 //QImode NE
.debug
.dw '.stabn 0x44,0,411,',0,0
.dd LM98-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM98:
R1=[_OSIntNesting] // QImode move
CMP R1,0 // QImode test
NSJNZ L62 //QImode NE
.debug
.dw '.stabn 0x44,0,412,',0,0
.dd LM99-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM99:
LBB12:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,413,',0,0
.dd LM100-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM100:
call _OS_Sched // call without return value
.debug
.dw '.stabn 0x44,0,414,',0,0
.dd LM101-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM101:
LBE12:
pc=L63 // Indirect jump
L62:
.debug
.dw '.stabn 0x44,0,415,',0,0
.dd LM102-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM102:
LBB13:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,416,',0,0
.dd LM103-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM103:
LBE13:
L63:
.debug
.dw '.stabn 0x44,0,417,',0,0
.dd LM104-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM104:
pc=L64 // Indirect jump
L61:
.debug
.dw '.stabn 0x44,0,418,',0,0
.dd LM105-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM105:
LBB14:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,419,',0,0
.dd LM106-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM106:
LBE14:
L64:
.debug
.dw '.stabn 0x44,0,420,',0,0
.dd LM107-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM107:
pc=L59 // Indirect jump
L60:
.debug
.dw '.stabn 0x44,0,421,',0,0
.dd LM108-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM108:
LBB15:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,422,',0,0
.dd LM109-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM109:
LBE15:
L65:
.debug
.dw '.stabn 0x44,0,423,',0,0
.dd LM110-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM110:
LBE11:
L59:
.debug
.dw '.stabn 0x44,0,424,',0,0
.dd LM111-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM111:
LBE10:
.debug
.dw '.stabn 0x44,0,424,',0,0
.dd LM112-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM112:
L58:
sp+=1
pop bp from [sp]
retf
.endp // end of OSSchedUnlock
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB10-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB11-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB12-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE12-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB13-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE13-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB14-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE14-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB15-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE15-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE11-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE10-_OSSchedUnlock
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME7-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LME7:
.code
.debug
.dw '.stabs "OSStart:F19",36,0,0,',0,0,offset _OSStart,seg _OSStart,0x0d,0x0a
.CODE
.public _OSStart
_OSStart: .proc
.debug
.dw '.stabn 0x44,0,449,',0,0
.dd LM113-_OSStart
.dw 0x0d,0x0a
.code
LM113:
// 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,450,',0,0
.dd LM114-_OSStart
.dw 0x0d,0x0a
.code
LM114:
LBB16:
R1=[_OSRunning] // QImode move
CMP R1,0 // QImode test
NSJNZ L71 //QImode NE
.debug
.dw '.stabn 0x44,0,451,',0,0
.dd LM115-_OSStart
.dw 0x0d,0x0a
.code
LM115:
LBB17:
call _OS_SchedNew // call without return value
.debug
.dw '.stabn 0x44,0,452,',0,0
.dd LM116-_OSStart
.dw 0x0d,0x0a
.code
LM116:
R1=[_OSPrioHighRdy] // QImode move
[_OSPrioCur]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,453,',0,0
.dd LM117-_OSStart
.dw 0x0d,0x0a
.code
LM117:
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,454,',0,0
.dd LM118-_OSStart
.dw 0x0d,0x0a
.code
LM118:
R1=[_OSTCBHighRdy] // QImode move
[_OSTCBCur]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,455,',0,0
.dd LM119-_OSStart
.dw 0x0d,0x0a
.code
LM119:
call _OSStartHighRdy // call with return value
.debug
.dw '.stabn 0x44,0,456,',0,0
.dd LM120-_OSStart
.dw 0x0d,0x0a
.code
LM120:
LBE17:
L71:
.debug
.dw '.stabn 0x44,0,457,',0,0
.dd LM121-_OSStart
.dw 0x0d,0x0a
.code
LM121:
LBE16:
.debug
.dw '.stabn 0x44,0,457,',0,0
.dd LM122-_OSStart
.dw 0x0d,0x0a
.code
LM122:
L70:
sp+=1
pop bp from [sp]
retf
.endp // end of OSStart
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB16-_OSStart
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB17-_OSStart
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE17-_OSStart
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE16-_OSStart
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME8-_OSStart
.dw 0x0d,0x0a
.code
LME8:
.code
.debug
.dw '.stabs "OSStatInit:F19",36,0,0,',0,0,offset _OSStatInit,seg _OSStatInit,0x0d,0x0a
.CODE
.public _OSStatInit
_OSStatInit: .proc
.debug
.dw '.stabn 0x44,0,481,',0,0
.dd LM123-_OSStatInit
.dw 0x0d,0x0a
.code
LM123:
// 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,488,',0,0
.dd LM124-_OSStatInit
.dw 0x0d,0x0a
.code
LM124:
LBB18:
R1=2 // QImode move
[SP--]=R1 // QImode move
call _OSTimeDly // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,489,',0,0
.dd LM125-_OSStatInit
.dw 0x0d,0x0a
.code
LM125:
call _Critical_in // call with return value
.debug
.dw '.stabn 0x44,0,490,',0,0
.dd LM126-_OSStatInit
.dw 0x0d,0x0a
.code
LM126:
//split R1, 0
R1=0 // QImode move
R2=0 // QImode move
//split [_OSIdleCtr], R1
[_OSIdleCtr]=R1 // QImode move
[_OSIdleCtr+1]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,491,',0,0
.dd LM127-_OSStatInit
.dw 0x0d,0x0a
.code
LM127:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,492,',0,0
.dd LM128-_OSStatInit
.dw 0x0d,0x0a
.code
LM128:
R1=6 // QImode move
[SP--]=R1 // QImode move
call _OSTimeDly // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,493,',0,0
.dd LM129-_OSStatInit
.dw 0x0d,0x0a
.code
LM129:
call _Critical_in // call with return value
.debug
.dw '.stabn 0x44,0,494,',0,0
.dd LM130-_OSStatInit
.dw 0x0d,0x0a
.code
LM130:
//split R1, [_OSIdleCtr]
R1=[_OSIdleCtr] // QImode move
R2=[_OSIdleCtr+1] // QImode move
//split [_OSIdleCtrMax], R1
[_OSIdleCtrMax]=R1 // QImode move
[_OSIdleCtrMax+1]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,495,',0,0
.dd LM131-_OSStatInit
.dw 0x0d,0x0a
.code
LM131:
R1=1 // QImode move
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -