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

📄 os_core.asm

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