📄 os_core.asm
字号:
.dw 0x0d,0x0a
.code
LM156:
//split R3, [_OSIdleCtr]
R3=[_OSIdleCtr] // QImode move
R4=[_OSIdleCtr+1] // QImode move
//split [bp+2], R3
[bp+2]=R3 // QImode move
[bp+3]=R4 // QImode move
//split R3, [bp+2]
R3=[bp+2] // QImode move
R4=[bp+3] // QImode move
R3=R3+1 // HImode RD=RS+#IMM16
R4=R4+0, Carry
//split [BP], R3
[BP]=R3 // QImode move
[bp+1]=R4 // QImode move
//split R3, [BP]
R3=[BP] // QImode move
R4=[bp+1] // QImode move
//split [_OSIdleCtr], R3
[_OSIdleCtr]=R3 // QImode move
[_OSIdleCtr+1]=R4 // QImode move
.debug
.dw '.stabn 0x44,0,594,',0,0
.dd LM157-_OSTaskIdle
.dw 0x0d,0x0a
.code
LM157:
// GCC inline ASM start
INT IRQ
INT FIQ
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,591,',0,0
.dd LM158-_OSTaskIdle
.dw 0x0d,0x0a
.code
LM158:
L70:
pc=L68 // Indirect jump
L69:
.debug
.dw '.stabn 0x44,0,596,',0,0
.dd LM159-_OSTaskIdle
.dw 0x0d,0x0a
.code
LM159:
.debug
.dw '.stabn 0x44,0,596,',0,0
.dd LM160-_OSTaskIdle
.dw 0x0d,0x0a
.code
LM160:
L67:
sp+=4
pop bp from [sp]
retf
.endp // end of OSTaskIdle
.debug
.dw '.stabs "pdata:p32",160,0,0,7',0x0d,0x0a
.CODE
.debug
.dw '.stabf ',0,0
.dd LME13-_OSTaskIdle
.dw 0x0d,0x0a
.code
LME13:
.code
.debug
.dw '.stabs "OSTaskStat:F19",36,0,0,',0,0,offset _OSTaskStat,seg _OSTaskStat,0x0d,0x0a
.CODE
.public _OSTaskStat
_OSTaskStat: .proc
.debug
.dw '.stabn 0x44,0,626,',0,0
.dd LM161-_OSTaskStat
.dw 0x0d,0x0a
.code
LM161:
// total=13, vars=13
// frame_pointer_needed: 1
push bp to [sp]
sp-=13
bp=sp+1
R1=BP+16
[bp+3]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,627,',0,0
.dd LM162-_OSTaskStat
.dw 0x0d,0x0a
.code
LM162:
LBB7:
.debug
.dw '.stabn 0x44,0,632,',0,0
.dd LM163-_OSTaskStat
.dw 0x0d,0x0a
.code
LM163:
L72:
R1=[_OSStatRdy] // QImode move
CMP R1,0 // QImode test
NSJZ L74 //QImode EQ
pc=L73 // Indirect jump
L74:
.debug
.dw '.stabn 0x44,0,633,',0,0
.dd LM164-_OSTaskStat
.dw 0x0d,0x0a
.code
LM164:
R1=128 // QImode move
[SP--]=R1 // QImode move
call _OSTimeDly // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,634,',0,0
.dd LM165-_OSTaskStat
.dw 0x0d,0x0a
.code
LM165:
pc=L72 // Indirect jump
L73:
L75:
.debug
.dw '.stabn 0x44,0,636,',0,0
.dd LM166-_OSTaskStat
.dw 0x0d,0x0a
.code
LM166:
// GCC inline ASM start
INT OFF
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,637,',0,0
.dd LM167-_OSTaskStat
.dw 0x0d,0x0a
.code
LM167:
//split R1, [_OSIdleCtr]
R1=[_OSIdleCtr] // QImode move
R2=[_OSIdleCtr+1] // QImode move
//split [_OSIdleCtrRun], R1
[_OSIdleCtrRun]=R1 // QImode move
[_OSIdleCtrRun+1]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,638,',0,0
.dd LM168-_OSTaskStat
.dw 0x0d,0x0a
.code
LM168:
//split R1, [_OSIdleCtr]
R1=[_OSIdleCtr] // QImode move
R2=[_OSIdleCtr+1] // QImode move
//split [BP], R1
[BP]=R1 // QImode move
[bp+1]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,639,',0,0
.dd LM169-_OSTaskStat
.dw 0x0d,0x0a
.code
LM169:
//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,640,',0,0
.dd LM170-_OSTaskStat
.dw 0x0d,0x0a
.code
LM170:
// GCC inline ASM start
INT IRQ
INT FIQ
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,641,',0,0
.dd LM171-_OSTaskStat
.dw 0x0d,0x0a
.code
LM171:
//split R1, [_OSIdleCtrMax]
R1=[_OSIdleCtrMax] // QImode move
R2=[_OSIdleCtrMax+1] // QImode move
CMP R2, 0 // HImode 1st compare
JNZ L88 // HImode EQ
CMP R1,0
NSJZ L78
L88:
.debug
.dw '.stabn 0x44,0,642,',0,0
.dd LM172-_OSTaskStat
.dw 0x0d,0x0a
.code
LM172:
R1=BP // QImode move
R2=BP+2
[bp+4]=R2 // QImode move
//split R3, [BP]
R3=[BP] // QImode move
R4=[bp+1] // QImode move
//split [bp+5], R3
[bp+5]=R3 // QImode move
[bp+6]=R4 // QImode move
//split R1, [bp+5]
R1=[bp+5] // QImode move
R2=[bp+6] // QImode move
R3=1 // QImode move
[SP--]=R3 // QImode move
push R1,R2 to [sp] // pushhi
call __lshiu2 // call with return value
SP = SP + 3 //SP
//split [bp+11], R1
[bp+11]=R1 // QImode move
[bp+12]=R2 // QImode move
R4=[bp+11] // QImode move
[bp+7]=R4 // QImode move
R3=[bp+5] // QImode move
R3 = R3 + [bp+7] //addqi3
[bp+7]=R3 // QImode move
R1=[bp+7] // QImode move
R4=1 // QImode move
[bp+8]=R4 // QImode move
R3=[bp+7] // QImode move
R4=[bp+11] // QImode move
CMP R3,R4 // QImode compare
NSJB L79 //QImode LTU
R3=0 // QImode move
[bp+8]=R3 // QImode move
L79:
R4=[bp+12] // QImode move
R3=R4 // QImode move
R4=[bp+6] // QImode move
R3 = R3 + R4 //addqi3
R2=R3 // QImode move
R3 = R3 + [bp+8] //addqi3
R2=R3 // QImode move
R3=3 // QImode move
[SP--]=R3 // QImode move
push R1,R2 to [sp] // pushhi
call __lshiu2 // call with return value
SP = SP + 3 //SP
//split [bp+11], R1
[bp+11]=R1 // QImode move
[bp+12]=R2 // QImode move
R3=[bp+11] // QImode move
[bp+9]=R3 // QImode move
R4=[bp+5] // QImode move
R4 = R4 + [bp+9] //addqi3
[bp+9]=R4 // QImode move
R1=[bp+9] // QImode move
R3=1 // QImode move
[bp+10]=R3 // QImode move
R4=[bp+9] // QImode move
R3=[bp+11] // QImode move
CMP R4,R3 // QImode compare
NSJB L80 //QImode LTU
R4=0 // QImode move
[bp+10]=R4 // QImode move
L80:
R4=[bp+12] // QImode move
R3=R4 // QImode move
R4=[bp+6] // QImode move
R3 = R3 + R4 //addqi3
R2=R3 // QImode move
R3 = R3 + [bp+10] //addqi3
R2=R3 // QImode move
R3=2 // QImode move
[SP--]=R3 // QImode move
push R1,R2 to [sp] // pushhi
call __lshiu2 // call with return value
SP = SP + 3 //SP
//split R3, [_OSIdleCtrMax]
R3=[_OSIdleCtrMax] // QImode move
R4=[_OSIdleCtrMax+1] // QImode move
push R3,R4 to [sp] // pushhi
push R1,R2 to [sp] // pushhi
call __divu2 // call with return value
SP = SP + 4 //SP
R4=100 // QImode move
R3=R4 // QImode move
R3 = R3 - R1 //subqi3
R1=[bp+4] // QImode move
[R1]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,643,',0,0
.dd LM173-_OSTaskStat
.dw 0x0d,0x0a
.code
LM173:
R1=BP // QImode move
R2=BP+2
R3=R2 // QImode move
R1=[R3] // QImode move
CMP R1,100 // QImode compare
NSJNG L81 //QImode LE
.debug
.dw '.stabn 0x44,0,644,',0,0
.dd LM174-_OSTaskStat
.dw 0x0d,0x0a
.code
LM174:
R1=100 // QImode move
[_OSCPUUsage]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,645,',0,0
.dd LM175-_OSTaskStat
.dw 0x0d,0x0a
.code
LM175:
pc=L82 // Indirect jump
L81:
R1=BP // QImode move
R2=BP+2
R4=R2 // QImode move
R1=[R4] // QImode move
CMP R1,0 // QImode test
NSJNL L83 //QImode GE
.debug
.dw '.stabn 0x44,0,646,',0,0
.dd LM176-_OSTaskStat
.dw 0x0d,0x0a
.code
LM176:
R1=0 // QImode move
[_OSCPUUsage]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,647,',0,0
.dd LM177-_OSTaskStat
.dw 0x0d,0x0a
.code
LM177:
pc=L82 // Indirect jump
L83:
.debug
.dw '.stabn 0x44,0,648,',0,0
.dd LM178-_OSTaskStat
.dw 0x0d,0x0a
.code
LM178:
R1=BP // QImode move
R2=BP+2
R3=R2 // QImode move
R1=[R3] // QImode move
[_OSCPUUsage]=R1 // QImode move
L84:
L82:
.debug
.dw '.stabn 0x44,0,650,',0,0
.dd LM179-_OSTaskStat
.dw 0x0d,0x0a
.code
LM179:
pc=L85 // Indirect jump
L78:
.debug
.dw '.stabn 0x44,0,651,',0,0
.dd LM180-_OSTaskStat
.dw 0x0d,0x0a
.code
LM180:
R1=0 // QImode move
[_OSCPUUsage]=R1 // QImode move
L85:
.debug
.dw '.stabn 0x44,0,653,',0,0
.dd LM181-_OSTaskStat
.dw 0x0d,0x0a
.code
LM181:
call _OSTaskStatHook // call without return value
.debug
.dw '.stabn 0x44,0,654,',0,0
.dd LM182-_OSTaskStat
.dw 0x0d,0x0a
.code
LM182:
R1=64 // QImode move
[SP--]=R1 // QImode move
call _OSTimeDly // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,635,',0,0
.dd LM183-_OSTaskStat
.dw 0x0d,0x0a
.code
LM183:
L77:
pc=L75 // Indirect jump
L76:
.debug
.dw '.stabn 0x44,0,656,',0,0
.dd LM184-_OSTaskStat
.dw 0x0d,0x0a
.code
LM184:
LBE7:
.debug
.dw '.stabn 0x44,0,656,',0,0
.dd LM185-_OSTaskStat
.dw 0x0d,0x0a
.code
LM185:
L71:
sp+=13
pop bp from [sp]
retf
.endp // end of OSTaskStat
.debug
.dw '.stabs "pdata:p32",160,0,0,16',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB7-_OSTaskStat
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "run:25",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabs "usage:22",128,0,0,2',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE7-_OSTaskStat
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME14-_OSTaskStat
.dw 0x0d,0x0a
.code
LME14:
.code
.debug
.dw '.stabs "OSTCBInit:F21",36,0,0,',0,0,offset _OSTCBInit,seg _OSTCBInit,0x0d,0x0a
.CODE
.public _OSTCBInit
_OSTCBInit: .proc
.debug
.dw '.stabn 0x44,0,703,',0,0
.dd LM186-_OSTCBInit
.dw 0x0d,0x0a
.code
LM186:
// total=7, vars=7
// frame_pointer_needed: 1
push bp to [sp]
sp-=7
bp=sp+1
R2=BP+10
.debug
.dw '.stabn 0x44,0,704,',0,0
.dd LM187-_OSTCBInit
.dw 0x0d,0x0a
.code
LM187:
LBB8:
.debug
.dw '.stabn 0x44,0,707,',0,0
.dd LM188-_OSTCBInit
.dw 0x0d,0x0a
.code
LM188:
// GCC inline ASM start
INT OFF
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,708,',0,0
.dd LM189-_OSTCBInit
.dw 0x0d,0x0a
.code
LM189:
R1=[_OSTCBFreeList] // QImode move
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,709,',0,0
.dd LM190-_OSTCBInit
.dw 0x0d,0x0a
.code
LM190:
R1=[BP] // QImode move
CMP R1,0 // QImode test
NSJZ L94 //QImode EQ
.debug
.dw '.stabn 0x44,0,710,',0,0
.dd LM191-_OSTCBInit
.dw 0x0d,0x0a
.code
LM191:
R3=[BP] // QImode move
R1=R3 // QImode move
R3=R3+1
R4=R3 // QImode move
R1=[R4] // QImode move
[_OSTCBFreeList]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,711,',0,0
.dd LM192-_OSTCBInit
.dw 0x0d,0x0a
.code
LM192:
// GCC inline ASM start
INT IRQ
INT FIQ
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,712,',0,0
.dd LM193-_OSTCBInit
.dw 0x0d,0x0a
.code
LM193:
R1=[BP] // QImode move
R3=R2 // QImode move
R3=R2+1
[bp+4]=R3 // QImode move
R4=[bp+4] // QImode move
R3=[R4] // QImode move
R4=R1 // QImode move
[R4]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,713,',0,0
.dd LM194-_OSTCBInit
.dw 0x0d,0x0a
.code
LM194:
R3=[BP] // QImode move
R1=R3 // QImode move
R3=R3+6
R4=R2 // QImode move
R1=[R4] // QImode move
R4=R3 // QImode move
[R4]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,714,',0,0
.dd LM195-_OSTCBInit
.dw 0x0d,0x0a
.code
LM195:
R3=[BP] // QImode move
R1=R3 // QImode move
R3=R3+5
R1=0 // QImode move
R4=R3 // QImode move
[R4]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,715,',0,0
.dd LM196-_OSTCBInit
.dw 0x0d,0x0a
.code
LM196:
R3=[BP] // QImode move
R1=R3 // QImode move
R3=R3+4
R1=0 // QImode move
R4=R3 // QImode move
[R4]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,724,',0,0
.dd LM197-_OSTCBInit
.dw 0x0d,0x0a
.code
LM197:
R3=R2 // QImode move
R1=R2+5
R3=R2 // QImode move
R3=R2+5
[bp+4]=R3 // QImode move
R4=[bp+4] // QImode move
R3=[R4] // QImode move
R4=R1 // QImode move
[R4]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,725,',0,0
.dd LM198-_OSTCBInit
.dw 0x0d,0x0a
.code
LM198:
R3=R2 // QImode move
R1=R2+4
R3=R2 // QImode move
R3=R2+4
[bp+4]=R3 // QImode move
R4=[bp+4] // QImode move
R3=[R4] // QImode move
R4=R1 // QImode move
[R4]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,726,',0,0
.dd LM199-_OSTCBInit
.dw 0x0d,0x0a
.code
LM199:
R3=R2 // QImode move
R1=R2+2
R3=R2 // QImode move
R3=R2+2
[bp+4]=R3 // QImode move
R4=[bp+4] // QImode move
R3=[R4] // QImode move
R4=R1 // QImode move
[R4]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,727,',0,0
.dd LM200-_OSTCBInit
.dw 0x0d,0x0a
.code
LM200:
R3=R2 // QImode move
R1=R2+6
R3=R2 // QImode move
R3=R2+6
[bp+4]=R3 // QImode move
R4=[bp+4] // QImode move
R3=[R4] // QImode move
R4=R1 // QImode move
[R4]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,728,',0,0
.dd LM201-_OSTCBInit
.dw 0x0d,0x0a
.code
LM201:
R3=R2 // QImode move
R1=R2+3
R3=R2 // QImode move
R3=R2+3
[bp+4]=R3 // QImode move
R4=[bp+4] // QImode move
R3=[R4] // QImode move
R4=R1 // QImode move
[R4]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,735,',0,0
.dd LM202-_OSTCBInit
.dw 0x0d,0x0a
.code
LM202:
R1=[BP] // QImode move
R3=R1 // QImode move
R1=R1+8
R4=R2 // QImode move
R3=[R4] // QImode move
R4=R3 lsr 3
R3=R1 // QImode move
[R3]=R4 // QImode move
.debug
.dw '.stabn 0x44,0,736,',0,0
.dd LM203-_OSTCBInit
.dw 0x0d,0x0a
.code
LM203:
R1=[BP] // QImode move
R3=R1 // QImode move
R1=R1+10
R4=[BP] // QImode move
R3=R4 // QImode move
R4=R4+8
R3=_OSMapTbl // QImode move
[bp+5]=R3 // QImode move
R3=R4 // QImode move
R4=[R3] // QImode move
R3=[bp+5] // QImode move
R3 = R3 + R4 //addqi3
R4=R3 // QImode move
R4=[R4] // QImode move
[bp+4]=R4 // QImode move
R3=[bp+4] // QImode move
R4=R1 // QImode move
[R4]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,737,',0,0
.dd LM204-_OSTCBInit
.dw 0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -