📄 os_core.asm
字号:
.debug
.dw '.stabn 0x44,0,436,',0,0
.dd LM100-_OSSched
.dw 0x0d,0x0a
.code
LM100:
R1=_OSUnMapTbl // QImode move
R2=[_OSRdyGrp] // QImode move
R1 = R1 + R2 //addqi3
R3=R1 // QImode move
R2=[R3] // QImode move
[BP]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,437,',0,0
.dd LM101-_OSSched
.dw 0x0d,0x0a
.code
LM101:
R2=[BP] // QImode move
R1=R2 lsl 3
R3=[BP] // QImode move
R2=R3 // QImode move
R2=R2+_OSRdyTbl
R3=_OSUnMapTbl // QImode move
R4=R2 // QImode move
R4=[R4] // QImode move
[bp+2]=R4 // QImode move
R2=R3 // QImode move
R2 = R2 + [bp+2] //addqi3
R4=R2 // QImode move
R3=[R4] // QImode move
[_OSPrioHighRdy]=R1+R3 //addqi3_Qrr
.debug
.dw '.stabn 0x44,0,438,',0,0
.dd LM102-_OSSched
.dw 0x0d,0x0a
.code
LM102:
R1=[_OSPrioHighRdy] // QImode move
CMP R1,[_OSPrioCur] // QImode compare
NSJZ L47 //QImode EQ
.debug
.dw '.stabn 0x44,0,439,',0,0
.dd LM103-_OSSched
.dw 0x0d,0x0a
.code
LM103:
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,440,',0,0
.dd LM104-_OSSched
.dw 0x0d,0x0a
.code
LM104:
//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,441,',0,0
.dd LM105-_OSSched
.dw 0x0d,0x0a
.code
LM105:
call _OSCtxSw // call without return value
L48:
L47:
.debug
.dw '.stabn 0x44,0,444,',0,0
.dd LM106-_OSSched
.dw 0x0d,0x0a
.code
LM106:
// GCC inline ASM start
INT IRQ
INT FIQ
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,445,',0,0
.dd LM107-_OSSched
.dw 0x0d,0x0a
.code
LM107:
LBE5:
.debug
.dw '.stabn 0x44,0,445,',0,0
.dd LM108-_OSSched
.dw 0x0d,0x0a
.code
LM108:
L46:
sp+=3
pop bp from [sp]
retf
.endp // end of OSSched
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB5-_OSSched
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "y:21",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE5-_OSSched
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME8-_OSSched
.dw 0x0d,0x0a
.code
LME8:
.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,464,',0,0
.dd LM109-_OSSchedLock
.dw 0x0d,0x0a
.code
LM109:
// total=0, vars=0
// frame_pointer_needed: 1
push bp to [sp]
bp=sp+1
R1=BP+3
.debug
.dw '.stabn 0x44,0,465,',0,0
.dd LM110-_OSSchedLock
.dw 0x0d,0x0a
.code
LM110:
R2=[_OSRunning] // QImode move
CMP R2,1 // QImode compare
NSJNZ L52 //QImode NE
.debug
.dw '.stabn 0x44,0,466,',0,0
.dd LM111-_OSSchedLock
.dw 0x0d,0x0a
.code
LM111:
// GCC inline ASM start
INT OFF
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,467,',0,0
.dd LM112-_OSSchedLock
.dw 0x0d,0x0a
.code
LM112:
R2=[_OSLockNesting] // QImode move
R3=1 // QImode move
[_OSLockNesting]=R2+R3 //addqi3_Qrr
.debug
.dw '.stabn 0x44,0,468,',0,0
.dd LM113-_OSSchedLock
.dw 0x0d,0x0a
.code
LM113:
// GCC inline ASM start
INT IRQ
INT FIQ
// GCC inline ASM end
L52:
.debug
.dw '.stabn 0x44,0,470,',0,0
.dd LM114-_OSSchedLock
.dw 0x0d,0x0a
.code
LM114:
.debug
.dw '.stabn 0x44,0,470,',0,0
.dd LM115-_OSSchedLock
.dw 0x0d,0x0a
.code
LM115:
L51:
pop bp from [sp]
retf
.endp // end of OSSchedLock
.debug
.dw '.stabf ',0,0
.dd LME9-_OSSchedLock
.dw 0x0d,0x0a
.code
LME9:
.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,488,',0,0
.dd LM116-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM116:
// 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,489,',0,0
.dd LM117-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM117:
R1=[_OSRunning] // QImode move
CMP R1,1 // QImode compare
NSJNZ L55 //QImode NE
.debug
.dw '.stabn 0x44,0,490,',0,0
.dd LM118-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM118:
// GCC inline ASM start
INT OFF
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,491,',0,0
.dd LM119-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM119:
R1=[_OSLockNesting] // QImode move
CMP R1,0 // QImode test
NSJZ L56 //QImode EQ
.debug
.dw '.stabn 0x44,0,492,',0,0
.dd LM120-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM120:
R1=[_OSLockNesting] // QImode move
R2=(-1) // QImode move
[_OSLockNesting]=R1+R2 //addqi3_Qrr
.debug
.dw '.stabn 0x44,0,493,',0,0
.dd LM121-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM121:
R1=[_OSLockNesting] // QImode move
R2=[_OSIntNesting] // QImode move
R1|=R2
CMP R1,0 // QImode test
NSJNZ L57 //QImode NE
.debug
.dw '.stabn 0x44,0,494,',0,0
.dd LM122-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM122:
// GCC inline ASM start
INT IRQ
INT FIQ
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,495,',0,0
.dd LM123-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM123:
call _OSSched // call without return value
.debug
.dw '.stabn 0x44,0,496,',0,0
.dd LM124-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM124:
pc=L58 // Indirect jump
L57:
.debug
.dw '.stabn 0x44,0,497,',0,0
.dd LM125-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM125:
// GCC inline ASM start
INT IRQ
INT FIQ
// GCC inline ASM end
L58:
.debug
.dw '.stabn 0x44,0,499,',0,0
.dd LM126-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM126:
pc=L55 // Indirect jump
L56:
.debug
.dw '.stabn 0x44,0,500,',0,0
.dd LM127-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM127:
// GCC inline ASM start
INT IRQ
INT FIQ
// GCC inline ASM end
L59:
L55:
.debug
.dw '.stabn 0x44,0,503,',0,0
.dd LM128-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM128:
.debug
.dw '.stabn 0x44,0,503,',0,0
.dd LM129-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LM129:
L54:
sp+=1
pop bp from [sp]
retf
.endp // end of OSSchedUnlock
.debug
.dw '.stabf ',0,0
.dd LME10-_OSSchedUnlock
.dw 0x0d,0x0a
.code
LME10:
.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,524,',0,0
.dd LM130-_OSStart
.dw 0x0d,0x0a
.code
LM130:
// total=4, vars=4
// frame_pointer_needed: 1
push bp to [sp]
sp-=4
bp=sp+1
R1=BP+7
[bp+2]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,525,',0,0
.dd LM131-_OSStart
.dw 0x0d,0x0a
.code
LM131:
LBB6:
.debug
.dw '.stabn 0x44,0,529,',0,0
.dd LM132-_OSStart
.dw 0x0d,0x0a
.code
LM132:
R1=[_OSRunning] // QImode move
CMP R1,0 // QImode test
NSJNZ L64 //QImode NE
.debug
.dw '.stabn 0x44,0,530,',0,0
.dd LM133-_OSStart
.dw 0x0d,0x0a
.code
LM133:
R1=_OSUnMapTbl // QImode move
R2=[_OSRdyGrp] // QImode move
R1 = R1 + R2 //addqi3
R3=R1 // QImode move
R2=[R3] // QImode move
[BP]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,531,',0,0
.dd LM134-_OSStart
.dw 0x0d,0x0a
.code
LM134:
R2=BP // QImode move
R1=BP+1
R3=[BP] // QImode move
R2=R3 // QImode move
R2=R2+_OSRdyTbl
R3=_OSUnMapTbl // QImode move
R4=R2 // QImode move
R4=[R4] // QImode move
[bp+3]=R4 // QImode move
R2=R3 // QImode move
R2 = R2 + [bp+3] //addqi3
R4=R2 // QImode move
R3=[R4] // QImode move
R2=R1 // QImode move
[R2]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,532,',0,0
.dd LM135-_OSStart
.dw 0x0d,0x0a
.code
LM135:
R2=[BP] // QImode move
R1=R2 lsl 3
R2=BP // QImode move
R3=BP+1
R4=R3 // QImode move
R2=[R4] // QImode move
[_OSPrioHighRdy]=R1+R2 //addqi3_Qrr
.debug
.dw '.stabn 0x44,0,533,',0,0
.dd LM136-_OSStart
.dw 0x0d,0x0a
.code
LM136:
R1=[_OSPrioHighRdy] // QImode move
[_OSPrioCur]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,534,',0,0
.dd LM137-_OSStart
.dw 0x0d,0x0a
.code
LM137:
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,535,',0,0
.dd LM138-_OSStart
.dw 0x0d,0x0a
.code
LM138:
R1=[_OSTCBHighRdy] // QImode move
[_OSTCBCur]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,536,',0,0
.dd LM139-_OSStart
.dw 0x0d,0x0a
.code
LM139:
call _OSStartHighRdy // call without return value
L64:
.debug
.dw '.stabn 0x44,0,538,',0,0
.dd LM140-_OSStart
.dw 0x0d,0x0a
.code
LM140:
LBE6:
.debug
.dw '.stabn 0x44,0,538,',0,0
.dd LM141-_OSStart
.dw 0x0d,0x0a
.code
LM141:
L63:
sp+=4
pop bp from [sp]
retf
.endp // end of OSStart
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB6-_OSStart
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "y:21",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabs "x:21",128,0,0,1',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE6-_OSStart
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME11-_OSStart
.dw 0x0d,0x0a
.code
LME11:
.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,562,',0,0
.dd LM142-_OSStatInit
.dw 0x0d,0x0a
.code
LM142:
// 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,563,',0,0
.dd LM143-_OSStatInit
.dw 0x0d,0x0a
.code
LM143:
R1=2 // QImode move
[SP--]=R1 // QImode move
call _OSTimeDly // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,564,',0,0
.dd LM144-_OSStatInit
.dw 0x0d,0x0a
.code
LM144:
// GCC inline ASM start
INT OFF
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,565,',0,0
.dd LM145-_OSStatInit
.dw 0x0d,0x0a
.code
LM145:
//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,566,',0,0
.dd LM146-_OSStatInit
.dw 0x0d,0x0a
.code
LM146:
// GCC inline ASM start
INT IRQ
INT FIQ
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,567,',0,0
.dd LM147-_OSStatInit
.dw 0x0d,0x0a
.code
LM147:
R1=64 // QImode move
[SP--]=R1 // QImode move
call _OSTimeDly // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,568,',0,0
.dd LM148-_OSStatInit
.dw 0x0d,0x0a
.code
LM148:
// GCC inline ASM start
INT OFF
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,569,',0,0
.dd LM149-_OSStatInit
.dw 0x0d,0x0a
.code
LM149:
//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,570,',0,0
.dd LM150-_OSStatInit
.dw 0x0d,0x0a
.code
LM150:
R1=1 // QImode move
[_OSStatRdy]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,571,',0,0
.dd LM151-_OSStatInit
.dw 0x0d,0x0a
.code
LM151:
// GCC inline ASM start
INT IRQ
INT FIQ
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,572,',0,0
.dd LM152-_OSStatInit
.dw 0x0d,0x0a
.code
LM152:
.debug
.dw '.stabn 0x44,0,572,',0,0
.dd LM153-_OSStatInit
.dw 0x0d,0x0a
.code
LM153:
L66:
sp+=1
pop bp from [sp]
retf
.endp // end of OSStatInit
.debug
.dw '.stabf ',0,0
.dd LME12-_OSStatInit
.dw 0x0d,0x0a
.code
LME12:
.code
.debug
.dw '.stabs "OSTaskIdle:F19",36,0,0,',0,0,offset _OSTaskIdle,seg _OSTaskIdle,0x0d,0x0a
.CODE
.public _OSTaskIdle
_OSTaskIdle: .proc
.debug
.dw '.stabn 0x44,0,589,',0,0
.dd LM154-_OSTaskIdle
.dw 0x0d,0x0a
.code
LM154:
// total=4, vars=4
// frame_pointer_needed: 1
push bp to [sp]
sp-=4
bp=sp+1
R1=BP+7
L68:
.debug
.dw '.stabn 0x44,0,592,',0,0
.dd LM155-_OSTaskIdle
.dw 0x0d,0x0a
.code
LM155:
// GCC inline ASM start
INT OFF
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,593,',0,0
.dd LM156-_OSTaskIdle
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -