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

📄 os_core.asm

📁 此代码是ucos-II在凌阳61单片机上的移植
💻 ASM
📖 第 1 页 / 共 5 页
字号:
.code
LM19:
	R2=[BP]	// QImode move
	R1=R2	// QImode move
	pc=L2	// Indirect jump
.debug
	.dw '.stabn 0x44,0,132,',0,0
	.dd LM20-_OSEventNameGet
	.dw 0x0d,0x0a
.code
LM20:
LBE2:
.debug
	.dw '.stabn 0x44,0,132,',0,0
	.dd LM21-_OSEventNameGet
	.dw 0x0d,0x0a
.code
LM21:
L2:

	sp+=2
	pop bp from [sp]
	retf
	.endp	// end of OSEventNameGet

.debug
	.dw '.stabs "pevent:p42",160,0,0,5',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "pname:p51=*21",160,0,0,6',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "err:p51",160,0,0,7',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB2-_OSEventNameGet
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "len:21",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE2-_OSEventNameGet
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME1-_OSEventNameGet
	.dw 0x0d,0x0a
.code
LME1:
.code
.debug
	.dw '.stabs "OSEventNameSet:F19",36,0,0,',0,0,offset _OSEventNameSet,seg _OSEventNameSet,0x0d,0x0a
.CODE
.public _OSEventNameSet
_OSEventNameSet:	.proc
.debug
	.dw '.stabn 0x44,0,164,',0,0
	.dd LM22-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM22:
	// total=2, vars=2
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=2
	bp=sp+1

	R1=BP+5
	[bp+1]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,165,',0,0
	.dd LM23-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM23:
LBB3:
.debug
	.dw '.stabn 0x44,0,173,',0,0
	.dd LM24-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM24:
	R1=[bp+1]	// QImode move
	R3=[bp+1]	// QImode move
	R2=R3+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,0	// QImode test
	NSJNZ L19	//QImode NE
.debug
	.dw '.stabn 0x44,0,174,',0,0
	.dd LM25-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM25:
	pc=L18	// Indirect jump
L19:
.debug
	.dw '.stabn 0x44,0,176,',0,0
	.dd LM26-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM26:
	R2=[bp+1]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,0	// QImode test
	NSJNZ L20	//QImode NE
.debug
	.dw '.stabn 0x44,0,177,',0,0
	.dd LM27-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM27:
	R1=[bp+1]	// QImode move
	R3=[bp+1]	// QImode move
	R2=R3+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	R2=4	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,178,',0,0
	.dd LM28-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM28:
	pc=L18	// Indirect jump
L20:
.debug
	.dw '.stabn 0x44,0,180,',0,0
	.dd LM29-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM29:
	R1=[bp+1]	// QImode move
	R1=[bp+1]	// QImode move
	R2=R1+1
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,0	// QImode test
	NSJNZ L21	//QImode NE
.debug
	.dw '.stabn 0x44,0,181,',0,0
	.dd LM30-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM30:
	R1=[bp+1]	// QImode move
	R1=[bp+1]	// QImode move
	R2=R1+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	R2=15	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,182,',0,0
	.dd LM31-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM31:
	pc=L18	// Indirect jump
L21:
.debug
	.dw '.stabn 0x44,0,185,',0,0
	.dd LM32-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM32:
	R1=[bp+1]	// QImode move
	R2=[R1]	// QImode move
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,4	// QImode compare
	NSJA L27	//QImode GTU
	CMP R1,1	// QImode compare
	NSJB L27	//QImode LTU
	pc=L26	// Indirect jump
L23:
L24:
L25:
L26:
.debug
	.dw '.stabn 0x44,0,190,',0,0
	.dd LM33-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM33:
	pc=L22	// Indirect jump
L27:
.debug
	.dw '.stabn 0x44,0,193,',0,0
	.dd LM34-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM34:
	R1=[bp+1]	// QImode move
	R1=[bp+1]	// QImode move
	R2=R1+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	R2=1	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,194,',0,0
	.dd LM35-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM35:
	pc=L18	// Indirect jump
L22:
.debug
	.dw '.stabn 0x44,0,196,',0,0
	.dd LM36-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM36:
	call _Critical_in	// call with return value
.debug
	.dw '.stabn 0x44,0,197,',0,0
	.dd LM37-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM37:
	R1=[bp+1]	// QImode move
	R1=[bp+1]	// QImode move
	R2=R1+1
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	call _OS_StrLen	// call with return value
	SP = SP + 1	//SP
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,198,',0,0
	.dd LM38-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM38:
	R1=[BP]	// QImode move
	CMP R1,15	// QImode compare
	NSJNA L29	//QImode LEU
.debug
	.dw '.stabn 0x44,0,199,',0,0
	.dd LM39-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM39:
LBB4:
	call _Critical_out	// call with return value
.debug
	.dw '.stabn 0x44,0,200,',0,0
	.dd LM40-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM40:
	R1=[bp+1]	// QImode move
	R1=[bp+1]	// QImode move
	R2=R1+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	R2=12	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,201,',0,0
	.dd LM41-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM41:
	pc=L18	// Indirect jump
.debug
	.dw '.stabn 0x44,0,202,',0,0
	.dd LM42-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM42:
LBE4:
L29:
.debug
	.dw '.stabn 0x44,0,203,',0,0
	.dd LM43-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM43:
	R1=[bp+1]	// QImode move
	R1=[bp+1]	// QImode move
	R2=R1+1
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	R1=[bp+1]	// QImode move
	R2=[R1]	// QImode move
	R1=R2+8
	[SP--]=R1	// QImode move
	call _OS_StrCopy	// call with return value
	SP = SP + 2	//SP
.debug
	.dw '.stabn 0x44,0,204,',0,0
	.dd LM44-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM44:
	call _Critical_out	// call with return value
.debug
	.dw '.stabn 0x44,0,205,',0,0
	.dd LM45-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM45:
	R1=[bp+1]	// QImode move
	R3=[bp+1]	// QImode move
	R2=R3+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	R2=0	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,206,',0,0
	.dd LM46-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM46:
LBE3:
.debug
	.dw '.stabn 0x44,0,206,',0,0
	.dd LM47-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LM47:
L18:

	sp+=2
	pop bp from [sp]
	retf
	.endp	// end of OSEventNameSet

.debug
	.dw '.stabs "pevent:p42",160,0,0,5',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "pname:p51",160,0,0,6',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "err:p51",160,0,0,7',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB3-_OSEventNameSet
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "len:21",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB4-_OSEventNameSet
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE4-_OSEventNameSet
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE3-_OSEventNameSet
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME2-_OSEventNameSet
	.dw 0x0d,0x0a
.code
LME2:
.code
.debug
	.dw '.stabs "OSInit:F19",36,0,0,',0,0,offset _OSInit,seg _OSInit,0x0d,0x0a
.CODE
.public _OSInit
_OSInit:	.proc
.debug
	.dw '.stabn 0x44,0,224,',0,0
	.dd LM48-_OSInit
	.dw 0x0d,0x0a
.code
LM48:
	// 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,226,',0,0
	.dd LM49-_OSInit
	.dw 0x0d,0x0a
.code
LM49:
	call _OSInitHookBegin	// call without return value
.debug
	.dw '.stabn 0x44,0,229,',0,0
	.dd LM50-_OSInit
	.dw 0x0d,0x0a
.code
LM50:
	call _OS_InitMisc	// call without return value
.debug
	.dw '.stabn 0x44,0,231,',0,0
	.dd LM51-_OSInit
	.dw 0x0d,0x0a
.code
LM51:
	call _OS_InitRdyList	// call without return value
.debug
	.dw '.stabn 0x44,0,233,',0,0
	.dd LM52-_OSInit
	.dw 0x0d,0x0a
.code
LM52:
	call _OS_InitTCBList	// call without return value
.debug
	.dw '.stabn 0x44,0,235,',0,0
	.dd LM53-_OSInit
	.dw 0x0d,0x0a
.code
LM53:
	call _OS_InitEventList	// call without return value
.debug
	.dw '.stabn 0x44,0,249,',0,0
	.dd LM54-_OSInit
	.dw 0x0d,0x0a
.code
LM54:
	call _OS_InitTaskIdle	// call without return value
.debug
	.dw '.stabn 0x44,0,251,',0,0
	.dd LM55-_OSInit
	.dw 0x0d,0x0a
.code
LM55:
	call _OS_InitTaskStat	// call without return value
.debug
	.dw '.stabn 0x44,0,255,',0,0
	.dd LM56-_OSInit
	.dw 0x0d,0x0a
.code
LM56:
	call _OSInitHookEnd	// call without return value
.debug
	.dw '.stabn 0x44,0,261,',0,0
	.dd LM57-_OSInit
	.dw 0x0d,0x0a
.code
LM57:
.debug
	.dw '.stabn 0x44,0,261,',0,0
	.dd LM58-_OSInit
	.dw 0x0d,0x0a
.code
LM58:
L36:

	sp+=1
	pop bp from [sp]
	retf
	.endp	// end of OSInit

.debug
	.dw '.stabf ',0,0
	.dd LME3-_OSInit
	.dw 0x0d,0x0a
.code
LME3:
.code
.debug
	.dw '.stabs "OSIntEnter:F19",36,0,0,',0,0,offset _OSIntEnter,seg _OSIntEnter,0x0d,0x0a
.CODE
.public _OSIntEnter
_OSIntEnter:	.proc
.debug
	.dw '.stabn 0x44,0,289,',0,0
	.dd LM59-_OSIntEnter
	.dw 0x0d,0x0a
.code
LM59:
	// total=0, vars=0
	// frame_pointer_needed: 1
	push bp to [sp]
	bp=sp+1

	R1=BP+3
.debug
	.dw '.stabn 0x44,0,290,',0,0
	.dd LM60-_OSIntEnter
	.dw 0x0d,0x0a
.code
LM60:
	R2=[_OSRunning]	// QImode move
	CMP R2,1	// QImode compare
	NSJNZ L38	//QImode NE
.debug
	.dw '.stabn 0x44,0,291,',0,0
	.dd LM61-_OSIntEnter
	.dw 0x0d,0x0a
.code
LM61:
	R2=[_OSIntNesting]	// QImode move
	CMP R2,254	// QImode compare
	NSJA L38	//QImode GTU
.debug
	.dw '.stabn 0x44,0,292,',0,0
	.dd LM62-_OSIntEnter
	.dw 0x0d,0x0a
.code
LM62:
	R2=[_OSIntNesting]	// QImode move
	R3=1	// QImode move
	[_OSIntNesting]=R2+R3  //addqi3_Qrr
L39:
L38:
.debug
	.dw '.stabn 0x44,0,295,',0,0
	.dd LM63-_OSIntEnter
	.dw 0x0d,0x0a
.code
LM63:
.debug
	.dw '.stabn 0x44,0,295,',0,0
	.dd LM64-_OSIntEnter
	.dw 0x0d,0x0a
.code
LM64:
L37:

	pop bp from [sp]
	retf
	.endp	// end of OSIntEnter

.debug
	.dw '.stabf ',0,0
	.dd LME4-_OSIntEnter
	.dw 0x0d,0x0a
.code
LME4:
.code
.debug
	.dw '.stabs "OSIntExit:F19",36,0,0,',0,0,offset _OSIntExit,seg _OSIntExit,0x0d,0x0a
.CODE
.public _OSIntExit
_OSIntExit:	.proc
.debug
	.dw '.stabn 0x44,0,317,',0,0
	.dd LM65-_OSIntExit
	.dw 0x0d,0x0a
.code
LM65:
	// total=6, vars=6
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=6
	bp=sp+1

	R1=BP+9
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,324,',0,0
	.dd LM66-_OSIntExit
	.dw 0x0d,0x0a
.code
LM66:
LBB5:
	R1=[_OSRunning]	// QImode move
	CMP R1,1	// QImode compare
	NSJNZ L43	//QImode NE
.debug
	.dw '.stabn 0x44,0,325,',0,0
	.dd LM67-_OSIntExit
	.dw 0x0d,0x0a
.code
LM67:
LBB6:
	call _Critical_in	// call with return value
.debug
	.dw '.stabn 0x44,0,326,',0,0
	.dd LM68-_OSIntExit
	.dw 0x0d,0x0a
.code
LM68:
	R1=[_OSIntNesting]	// QImode move
	CMP R1,0	// QImode test
	NSJZ L44	//QImode EQ
.debug
	.dw '.stabn 0x44,0,327,',0,0
	.dd LM69-_OSIntExit
	.dw 0x0d,0x0a
.code
LM69:
	R1=[_OSIntNesting]	// QImode move
	R2=(-1)	// QImode move
	[_OSIntNesting]=R1+R2  //addqi3_Qrr
L44:
.debug
	.dw '.stabn 0x44,0,329,',0,0
	.dd LM70-_OSIntExit
	.dw 0x0d,0x0a
.code
LM70:
	R1=[_OSIntNesting]	// QImode move
	CMP R1,0	// QImode test
	NSJNZ L45	//QImode NE
.debug
	.dw '.stabn 0x44,0,330,',0,0
	.dd LM71-_OSIntExit
	.dw 0x0d,0x0a
.code
LM71:
	R1=[_OSLockNesting]	// QImode move
	CMP R1,0	// QImode test
	NSJNZ L45	//QImode NE
.debug
	.dw '.stabn 0x44,0,331,',0,0
	.dd LM72-_OSIntExit
	.dw 0x0d,0x0a
.code
LM72:
	call _OS_SchedNew	// call without return value
.debug
	.dw '.stabn 0x44,0,332,',0,0
	.dd LM73-_OSIntExit
	.dw 0x0d,0x0a
.code
LM73:
	R1=[_OSPrioHighRdy]	// QImode move
	CMP R1,[_OSPrioCur]	// QImode compare
	NSJZ L45	//QImode EQ
.debug
	.dw '.stabn 0x44,0,333,',0,0
	.dd LM74-_OSIntExit
	.dw 0x0d,0x0a
.code
LM74:
LBB7:
	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,335,',0,0
	.dd LM75-_OSIntExit
	.dw 0x0d,0x0a
.code
LM75:
	R2=[_OSTCBHighRdy]	// QImode move
	R1=R2	// QImode move
	R2=R2+19
	R1=[_OSTCBHighRdy]	// QImode move
	R2=R1	// QImode move
	R1=R1+19
	R3=[_OSTCBHighRdy]	// QImode move
	R2=R3	// QImode move
	R4=R3+19
	[bp+3]=R4	// QImode move
	R4=[bp+3]	// QImode move
	//split R3, [R4]
	R3=[R4++]	// QImode move
	R4=[R4--]	// QImode move
	//split [bp+1], R3
	[bp+1]=R3	// QImode move
	[bp+2]=R4	// QImode move
	//split R3, [bp+1]
	R3=[bp+1]	// QImode move
	R4=[bp+2]	// QImode move
	R3=R3+1	// HImode RD=RS+#IMM16
	R4=R4+0, Carry
	//split [bp+4], R3
	[bp+4]=R3	// QImode move
	[bp+5]=R4	// QImode move
	//split R3, [bp+4]
	R3=[bp+4]	// QImode move
	R4=[bp+5]	// QImode move
	R2=R1	// QImode move
	//split [R2], R3
	[R2++]=R3	// QImode move
	[R2--]=R4	// QImode move

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -