📄 os_task.asm
字号:
.dw 0x0d,0x0a
.code
LM81:
L26:
sp+=3
pop bp from [sp]
retf
.endp // end of OSTaskCreate
.debug
.dw '.stabs "task:p46=*47=f19",160,0,0,6',0x0d,0x0a
.CODE
.debug
.dw '.stabs "p_arg:p31",160,0,0,7',0x0d,0x0a
.CODE
.debug
.dw '.stabs "ptos:p40",160,0,0,8',0x0d,0x0a
.CODE
.debug
.dw '.stabs "prio:p21",160,0,0,9',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB6-_OSTaskCreate
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "psp:40",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabs "err:21",128,0,0,1',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB7-_OSTaskCreate
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE7-_OSTaskCreate
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB8-_OSTaskCreate
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE8-_OSTaskCreate
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE6-_OSTaskCreate
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME2-_OSTaskCreate
.dw 0x0d,0x0a
.code
LME2:
.code
.debug
.dw '.stabs "OSTaskCreateExt:F21",36,0,0,',0,0,offset _OSTaskCreateExt,seg _OSTaskCreateExt,0x0d,0x0a
.CODE
.public _OSTaskCreateExt
_OSTaskCreateExt: .proc
.debug
.dw '.stabn 0x44,0,298,',0,0
.dd LM82-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM82:
// total=3, vars=3
// frame_pointer_needed: 1
push bp to [sp]
sp-=3
bp=sp+1
R1=BP+6
[bp+2]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,299,',0,0
.dd LM83-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM83:
LBB9:
.debug
.dw '.stabn 0x44,0,308,',0,0
.dd LM84-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM84:
R1=[bp+2] // QImode move
R3=[bp+2] // QImode move
R2=R3+3
R3=R2 // QImode move
R1=[R3] // QImode move
CMP R1,25 // QImode compare
NSJNA L39 //QImode LEU
.debug
.dw '.stabn 0x44,0,309,',0,0
.dd LM85-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM85:
R1=42 // QImode move
pc=L38 // Indirect jump
L39:
.debug
.dw '.stabn 0x44,0,312,',0,0
.dd LM86-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM86:
call _Critical_in // call with return value
.debug
.dw '.stabn 0x44,0,313,',0,0
.dd LM87-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM87:
R1=[_OSIntNesting] // QImode move
CMP R1,0 // QImode test
NSJZ L40 //QImode EQ
.debug
.dw '.stabn 0x44,0,314,',0,0
.dd LM88-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM88:
LBB10:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,315,',0,0
.dd LM89-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM89:
R1=16 // QImode move
pc=L38 // Indirect jump
.debug
.dw '.stabn 0x44,0,316,',0,0
.dd LM90-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM90:
LBE10:
L40:
.debug
.dw '.stabn 0x44,0,317,',0,0
.dd LM91-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM91:
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+3
R1=_OSTCBPrioTbl // QImode move
R3=R2 // QImode move
R2=[R3] // QImode move
R1 = R1 + R2 //addqi3
R3=R1 // QImode move
R2=[R3] // QImode move
CMP R2,0 // QImode test
NSJNZ L41 //QImode NE
.debug
.dw '.stabn 0x44,0,318,',0,0
.dd LM92-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM92:
LBB11:
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+3
R1=_OSTCBPrioTbl // QImode move
R3=R2 // QImode move
R2=[R3] // QImode move
R1 = R1 + R2 //addqi3
R2=1 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,320,',0,0
.dd LM93-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM93:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,322,',0,0
.dd LM94-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM94:
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+9
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+6
R1=R2 // QImode move
//split R3, [R1]
R3=[R1++] // QImode move
R4=[R1--] // QImode move
push R3,R4 to [sp] // pushhi
R1=[bp+2] // QImode move
R3=[bp+2] // QImode move
R2=R3+5
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
call _OS_TaskStkClr // call without return value
SP = SP + 4 //SP
.debug
.dw '.stabn 0x44,0,324,',0,0
.dd LM95-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM95:
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+9
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+2
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+1
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
R2=[bp+2] // QImode move
R1=[R2] // QImode move
[SP--]=R1 // QImode move
call _OSTaskStkInit // call with return value
SP = SP + 4 //SP
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,325,',0,0
.dd LM96-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM96:
R1=[bp+2] // QImode move
R3=[bp+2] // QImode move
R2=R3+9
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+8
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+6
R1=R2 // QImode move
//split R3, [R1]
R3=[R1++] // QImode move
R4=[R1--] // QImode move
push R3,R4 to [sp] // pushhi
R1=[bp+2] // QImode move
R3=[bp+2] // QImode move
R2=R3+4
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+5
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
R1=[BP] // QImode move
[SP--]=R1 // QImode move
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+3
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
call _OS_TCBInit // call with return value
SP = SP + 8 //SP
R2=BP // QImode move
R3=BP+1
R2=R3 // QImode move
[R2]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,326,',0,0
.dd LM97-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM97:
R1=BP // QImode move
R2=BP+1
R3=R2 // QImode move
R1=[R3] // QImode move
CMP R1,0 // QImode test
NSJNZ L42 //QImode NE
.debug
.dw '.stabn 0x44,0,327,',0,0
.dd LM98-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM98:
R1=[_OSRunning] // QImode move
CMP R1,1 // QImode compare
NSJNZ L43 //QImode NE
.debug
.dw '.stabn 0x44,0,328,',0,0
.dd LM99-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM99:
call _OS_Sched // call without return value
L43:
.debug
.dw '.stabn 0x44,0,330,',0,0
.dd LM100-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM100:
pc=L44 // Indirect jump
L42:
.debug
.dw '.stabn 0x44,0,331,',0,0
.dd LM101-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM101:
call _Critical_in // call with return value
.debug
.dw '.stabn 0x44,0,332,',0,0
.dd LM102-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM102:
R1=[bp+2] // QImode move
R1=[bp+2] // QImode move
R2=R1+3
R1=_OSTCBPrioTbl // QImode move
R3=R2 // QImode move
R2=[R3] // QImode move
R1 = R1 + R2 //addqi3
R2=0 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,333,',0,0
.dd LM103-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM103:
call _Critical_out // call with return value
L44:
.debug
.dw '.stabn 0x44,0,335,',0,0
.dd LM104-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM104:
R1=BP // QImode move
R2=BP+1
R1=R2 // QImode move
R3=[R1] // QImode move
R1=R3 // QImode move
pc=L38 // Indirect jump
.debug
.dw '.stabn 0x44,0,336,',0,0
.dd LM105-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM105:
LBE11:
L41:
.debug
.dw '.stabn 0x44,0,337,',0,0
.dd LM106-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM106:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,338,',0,0
.dd LM107-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM107:
R1=40 // QImode move
pc=L38 // Indirect jump
.debug
.dw '.stabn 0x44,0,339,',0,0
.dd LM108-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM108:
LBE9:
.debug
.dw '.stabn 0x44,0,339,',0,0
.dd LM109-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LM109:
L38:
sp+=3
pop bp from [sp]
retf
.endp // end of OSTaskCreateExt
.debug
.dw '.stabs "task:p46",160,0,0,6',0x0d,0x0a
.CODE
.debug
.dw '.stabs "p_arg:p31",160,0,0,7',0x0d,0x0a
.CODE
.debug
.dw '.stabs "ptos:p40",160,0,0,8',0x0d,0x0a
.CODE
.debug
.dw '.stabs "prio:p21",160,0,0,9',0x0d,0x0a
.CODE
.debug
.dw '.stabs "id:p23",160,0,0,10',0x0d,0x0a
.CODE
.debug
.dw '.stabs "pbos:p40",160,0,0,11',0x0d,0x0a
.CODE
.debug
.dw '.stabs "stk_size:p25",160,0,0,12',0x0d,0x0a
.CODE
.debug
.dw '.stabs "pext:p31",160,0,0,14',0x0d,0x0a
.CODE
.debug
.dw '.stabs "opt:p23",160,0,0,15',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB9-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "psp:40",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabs "err:21",128,0,0,1',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB10-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE10-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB11-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE11-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE9-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME3-_OSTaskCreateExt
.dw 0x0d,0x0a
.code
LME3:
.code
.debug
.dw '.stabs "OSTaskDel:F21",36,0,0,',0,0,offset _OSTaskDel,seg _OSTaskDel,0x0d,0x0a
.CODE
.public _OSTaskDel
_OSTaskDel: .proc
.debug
.dw '.stabn 0x44,0,380,',0,0
.dd LM110-_OSTaskDel
.dw 0x0d,0x0a
.code
LM110:
// total=11, vars=11
// frame_pointer_needed: 1
push bp to [sp]
sp-=11
bp=sp+1
R1=BP+14
[bp+3]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,382,',0,0
.dd LM111-_OSTaskDel
.dw 0x0d,0x0a
.code
LM111:
LBB12:
.debug
.dw '.stabn 0x44,0,395,',0,0
.dd LM112-_OSTaskDel
.dw 0x0d,0x0a
.code
LM112:
R1=[_OSIntNesting] // QImode move
CMP R1,0 // QImode test
NSJZ L51 //QImode EQ
.debug
.dw '.stabn 0x44,0,396,',0,0
.dd LM113-_OSTaskDel
.dw 0x0d,0x0a
.code
LM113:
R1=63 // QImode move
pc=L50 // Indirect jump
L51:
.debug
.dw '.stabn 0x44,0,399,',0,0
.dd LM114-_OSTaskDel
.dw 0x0d,0x0a
.code
LM114:
R2=[bp+3] // QImode move
R1=[R2] // QImode move
CMP R1,25 // QImode compare
NSJNZ L52 //QImode NE
.debug
.dw '.stabn 0x44,0,400,',0,0
.dd LM115-_OSTaskDel
.dw 0x0d,0x0a
.code
LM115:
R1=61 // QImode move
pc=L50 // Indirect jump
L52:
.debug
.dw '.stabn 0x44,0,402,',0,0
.dd LM116-_OSTaskDel
.dw 0x0d,0x0a
.code
LM116:
R3=[bp+3] // QImode move
R1=[R3] // QImode move
CMP R1,24 // QImode compare
NSJNA L53 //QImode LEU
.debug
.dw '.stabn 0x44,0,403,',0,0
.dd LM117-_OSTaskDel
.dw 0x0d,0x0a
.code
LM117:
R4=[bp+3] // QImode move
R1=[R4] // QImode move
CMP R1,255 // QImode compare
NSJZ L53 //QImode EQ
.debug
.dw '.stabn 0x44,0,404,',0,0
.dd LM118-_OSTaskDel
.dw 0x0d,0x0a
.code
LM118:
R1=42 // QImode move
pc=L50 // Indirect jump
L54:
L53:
.debug
.dw '.stabn 0x44,0,408,',0,0
.dd LM119-_OSTaskDel
.dw 0x0d,0x0a
.code
LM119:
call _Critical_in // call with return value
.debug
.dw '.stabn 0x44,0,409,',0,0
.dd LM120-_OSTaskDel
.dw 0x0d,0x0a
.code
LM120:
R2=[bp+3] // QImode move
R1=[R2] // QImode move
CMP R1,255 // QImode compare
NSJNZ L55 //QImode NE
.debug
.dw '.stabn 0x44,0,410,',0,0
.dd LM121-_OSTaskDel
.dw 0x0d,0x0a
.code
LM121:
R2=[_OSTCBCur] // QImode move
R1=R2 // QImode move
R2=R2+13
R3=R2 // QImode move
R1=[R3] // QImode move
R4=[bp+3] // QImode move
[R4]=R1 // QImode move
L55:
.debug
.dw '.stabn 0x44,0,412,',0,0
.dd LM122-_OSTaskDel
.dw 0x0d,0x0a
.code
LM122:
R2=BP // QImode move
R1=BP+1
R2=_OSTCBPrioTbl // QImode move
R4=[bp+3] // QImode move
R3=[R4] // QImode move
R2 = R2 + R3 //addqi3
R4=R2 // QImode move
R3=[R4] // QImode move
R2=R1 // QImode move
[R2]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,413,',0,0
.dd LM123-_OSTaskDel
.dw 0x0d,0x0a
.code
LM123:
R1=BP // QImode move
R2=BP+1
R3=R2 // QImode move
R1=[R3] // QImode move
CMP R1,0 // QImode test
NSJNZ L56 //QImode NE
.debug
.dw '.stabn 0x44,0,414,',0,0
.dd LM124-_OSTaskDel
.dw 0x0d,0x0a
.code
LM124:
LBB13:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,415,',0,0
.dd LM125-_OSTaskDel
.dw 0x0d,0x0a
.code
LM125:
R1=60 // QImode move
pc=L50 // Indirect jump
.debug
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -