⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_core.asm

📁 此代码是ucos-II在凌阳61单片机上的移植
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.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 + -