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

📄 os_sem.asm

📁 此代码是ucos-II在凌阳61单片机上的移植
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	R1=BP+4
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,279,',0,0
	.dd LM94-_OSSemPend
	.dw 0x0d,0x0a
.code
LM94:
LBB8:
	R1=[BP]	// QImode move
	R3=[BP]	// QImode move
	R2=R3+2
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	CMP R1,0	// QImode test
	NSJNZ L45	//QImode NE
.debug
	.dw '.stabn 0x44,0,280,',0,0
	.dd LM95-_OSSemPend
	.dw 0x0d,0x0a
.code
LM95:
	pc=L44	// Indirect jump
L45:
.debug
	.dw '.stabn 0x44,0,282,',0,0
	.dd LM96-_OSSemPend
	.dw 0x0d,0x0a
.code
LM96:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,0	// QImode test
	NSJNZ L46	//QImode NE
.debug
	.dw '.stabn 0x44,0,283,',0,0
	.dd LM97-_OSSemPend
	.dw 0x0d,0x0a
.code
LM97:
	R1=[BP]	// QImode move
	R3=[BP]	// QImode move
	R2=R3+2
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	R2=4	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,284,',0,0
	.dd LM98-_OSSemPend
	.dw 0x0d,0x0a
.code
LM98:
	pc=L44	// Indirect jump
L46:
.debug
	.dw '.stabn 0x44,0,287,',0,0
	.dd LM99-_OSSemPend
	.dw 0x0d,0x0a
.code
LM99:
	R4=[BP]	// QImode move
	R1=[R4]	// QImode move
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	CMP R2,3	// QImode compare
	NSJZ L47	//QImode EQ
.debug
	.dw '.stabn 0x44,0,288,',0,0
	.dd LM100-_OSSemPend
	.dw 0x0d,0x0a
.code
LM100:
	R1=[BP]	// QImode move
	R4=[BP]	// QImode move
	R2=R4+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	R2=1	// QImode move
	R4=R1	// QImode move
	[R4]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,289,',0,0
	.dd LM101-_OSSemPend
	.dw 0x0d,0x0a
.code
LM101:
	pc=L44	// Indirect jump
L47:
.debug
	.dw '.stabn 0x44,0,291,',0,0
	.dd LM102-_OSSemPend
	.dw 0x0d,0x0a
.code
LM102:
	R1=[_OSIntNesting]	// QImode move
	CMP R1,0	// QImode test
	NSJZ L48	//QImode EQ
.debug
	.dw '.stabn 0x44,0,292,',0,0
	.dd LM103-_OSSemPend
	.dw 0x0d,0x0a
.code
LM103:
	R1=[BP]	// QImode move
	R1=[BP]	// QImode move
	R2=R1+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	R2=2	// QImode move
	R4=R1	// QImode move
	[R4]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,293,',0,0
	.dd LM104-_OSSemPend
	.dw 0x0d,0x0a
.code
LM104:
	pc=L44	// Indirect jump
L48:
.debug
	.dw '.stabn 0x44,0,295,',0,0
	.dd LM105-_OSSemPend
	.dw 0x0d,0x0a
.code
LM105:
	call _Critical_in	// call with return value
.debug
	.dw '.stabn 0x44,0,296,',0,0
	.dd LM106-_OSSemPend
	.dw 0x0d,0x0a
.code
LM106:
	R1=[BP]	// QImode move
	R2=[R1]	// QImode move
	R1=R2	// QImode move
	R2=R2+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,0	// QImode test
	NSJZ L49	//QImode EQ
.debug
	.dw '.stabn 0x44,0,297,',0,0
	.dd LM107-_OSSemPend
	.dw 0x0d,0x0a
.code
LM107:
LBB9:
	R4=[BP]	// QImode move
	R2=[R4]	// QImode move
	R1=R2	// QImode move
	R2=R2+2
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	R2=R1	// QImode move
	R1=R1+2
	R4=[BP]	// QImode move
	R3=[R4]	// QImode move
	R2=R3	// QImode move
	R3=R3+2
	R4=R3	// QImode move
	R2=[R4]	// QImode move
	R3=R2+(-1)
	R2=R1	// QImode move
	[R2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,298,',0,0
	.dd LM108-_OSSemPend
	.dw 0x0d,0x0a
.code
LM108:
	call _Critical_out	// call with return value
.debug
	.dw '.stabn 0x44,0,299,',0,0
	.dd LM109-_OSSemPend
	.dw 0x0d,0x0a
.code
LM109:
	R1=[BP]	// QImode move
	R3=[BP]	// QImode move
	R2=R3+2
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	R2=0	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,300,',0,0
	.dd LM110-_OSSemPend
	.dw 0x0d,0x0a
.code
LM110:
	pc=L44	// Indirect jump
.debug
	.dw '.stabn 0x44,0,301,',0,0
	.dd LM111-_OSSemPend
	.dw 0x0d,0x0a
.code
LM111:
LBE9:
L49:
.debug
	.dw '.stabn 0x44,0,303,',0,0
	.dd LM112-_OSSemPend
	.dw 0x0d,0x0a
.code
LM112:
	R1=[_OSTCBCur]	// QImode move
	R2=R1	// QImode move
	R1=R1+11
	R3=[_OSTCBCur]	// QImode move
	R2=R3	// QImode move
	R3=R3+11
	R4=R3	// QImode move
	R4=[R4]	// QImode move
	R2=R4|1
	R4=R1	// QImode move
	[R4]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,304,',0,0
	.dd LM113-_OSSemPend
	.dw 0x0d,0x0a
.code
LM113:
	R2=[_OSTCBCur]	// QImode move
	R1=R2	// QImode move
	R2=R2+12
	R1=0	// QImode move
	R3=R2	// QImode move
	[R3]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,305,',0,0
	.dd LM114-_OSSemPend
	.dw 0x0d,0x0a
.code
LM114:
	R1=[_OSTCBCur]	// QImode move
	R2=R1	// QImode move
	R1=R1+10
	R2=[BP]	// QImode move
	R4=[BP]	// QImode move
	R3=R4+1
	R4=R3	// QImode move
	R2=[R4]	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,306,',0,0
	.dd LM115-_OSSemPend
	.dw 0x0d,0x0a
.code
LM115:
	R4=[BP]	// QImode move
	R1=[R4]	// QImode move
	[SP--]=R1	// QImode move
	call _OS_EventTaskWait	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,307,',0,0
	.dd LM116-_OSSemPend
	.dw 0x0d,0x0a
.code
LM116:
	call _Critical_out	// call with return value
.debug
	.dw '.stabn 0x44,0,308,',0,0
	.dd LM117-_OSSemPend
	.dw 0x0d,0x0a
.code
LM117:
	call _OS_Sched	// call without return value
.debug
	.dw '.stabn 0x44,0,309,',0,0
	.dd LM118-_OSSemPend
	.dw 0x0d,0x0a
.code
LM118:
	call _Critical_in	// call with return value
.debug
	.dw '.stabn 0x44,0,310,',0,0
	.dd LM119-_OSSemPend
	.dw 0x0d,0x0a
.code
LM119:
	R2=[_OSTCBCur]	// QImode move
	R1=R2	// QImode move
	R2=R2+12
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,1	// QImode compare
	NSJNZ L50	//QImode NE
.debug
	.dw '.stabn 0x44,0,311,',0,0
	.dd LM120-_OSSemPend
	.dw 0x0d,0x0a
.code
LM120:
	R4=[BP]	// QImode move
	R1=[R4]	// QImode move
	[SP--]=R1	// QImode move
	call _OS_EventTO	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,312,',0,0
	.dd LM121-_OSSemPend
	.dw 0x0d,0x0a
.code
LM121:
	call _Critical_out	// call with return value
.debug
	.dw '.stabn 0x44,0,313,',0,0
	.dd LM122-_OSSemPend
	.dw 0x0d,0x0a
.code
LM122:
	R1=[BP]	// QImode move
	R1=[BP]	// QImode move
	R2=R1+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	R2=10	// QImode move
	R4=R1	// QImode move
	[R4]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,314,',0,0
	.dd LM123-_OSSemPend
	.dw 0x0d,0x0a
.code
LM123:
	pc=L44	// Indirect jump
L50:
.debug
	.dw '.stabn 0x44,0,316,',0,0
	.dd LM124-_OSSemPend
	.dw 0x0d,0x0a
.code
LM124:
	R2=[_OSTCBCur]	// QImode move
	R1=R2	// QImode move
	R2=R2+9
	R1=0	// QImode move
	R3=R2	// QImode move
	[R3]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,317,',0,0
	.dd LM125-_OSSemPend
	.dw 0x0d,0x0a
.code
LM125:
	call _Critical_out	// call with return value
.debug
	.dw '.stabn 0x44,0,318,',0,0
	.dd LM126-_OSSemPend
	.dw 0x0d,0x0a
.code
LM126:
	R1=[BP]	// QImode move
	R4=[BP]	// QImode move
	R2=R4+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	R2=0	// QImode move
	R4=R1	// QImode move
	[R4]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,319,',0,0
	.dd LM127-_OSSemPend
	.dw 0x0d,0x0a
.code
LM127:
LBE8:
.debug
	.dw '.stabn 0x44,0,319,',0,0
	.dd LM128-_OSSemPend
	.dw 0x0d,0x0a
.code
LM128:
L44:

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

.debug
	.dw '.stabs "pevent:p42",160,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "timeout:p23",160,0,0,5',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "err:p45",160,0,0,6',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB8-_OSSemPend
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB9-_OSSemPend
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE9-_OSSemPend
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE8-_OSSemPend
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME4-_OSSemPend
	.dw 0x0d,0x0a
.code
LME4:
.code
.debug
	.dw '.stabs "OSSemPost:F21",36,0,0,',0,0,offset _OSSemPost,seg _OSSemPost,0x0d,0x0a
.CODE
.public _OSSemPost
_OSSemPost:	.proc
.debug
	.dw '.stabn 0x44,0,340,',0,0
	.dd LM129-_OSSemPost
	.dw 0x0d,0x0a
.code
LM129:
	// 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,348,',0,0
	.dd LM130-_OSSemPost
	.dw 0x0d,0x0a
.code
LM130:
LBB10:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,0	// QImode test
	NSJNZ L58	//QImode NE
.debug
	.dw '.stabn 0x44,0,349,',0,0
	.dd LM131-_OSSemPost
	.dw 0x0d,0x0a
.code
LM131:
	R1=4	// QImode move
	pc=L57	// Indirect jump
L58:
.debug
	.dw '.stabn 0x44,0,352,',0,0
	.dd LM132-_OSSemPost
	.dw 0x0d,0x0a
.code
LM132:
	R3=[BP]	// QImode move
	R1=[R3]	// QImode move
	R4=R1	// QImode move
	R2=[R4]	// QImode move
	CMP R2,3	// QImode compare
	NSJZ L59	//QImode EQ
.debug
	.dw '.stabn 0x44,0,353,',0,0
	.dd LM133-_OSSemPost
	.dw 0x0d,0x0a
.code
LM133:
	R1=1	// QImode move
	pc=L57	// Indirect jump
L59:
.debug
	.dw '.stabn 0x44,0,355,',0,0
	.dd LM134-_OSSemPost
	.dw 0x0d,0x0a
.code
LM134:
	call _Critical_in	// call with return value
.debug
	.dw '.stabn 0x44,0,356,',0,0
	.dd LM135-_OSSemPost
	.dw 0x0d,0x0a
.code
LM135:
	R1=[BP]	// QImode move
	R2=[R1]	// QImode move
	R1=R2	// QImode move
	R2=R2+3
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,0	// QImode test
	NSJZ L60	//QImode EQ
.debug
	.dw '.stabn 0x44,0,357,',0,0
	.dd LM136-_OSSemPost
	.dw 0x0d,0x0a
.code
LM136:
LBB11:
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	R4=[BP]	// QImode move
	R1=[R4]	// QImode move
	[SP--]=R1	// QImode move
	call _OS_EventTaskRdy	// call with return value
	SP = SP + 3	//SP
.debug
	.dw '.stabn 0x44,0,358,',0,0
	.dd LM137-_OSSemPost
	.dw 0x0d,0x0a
.code
LM137:
	call _Critical_out	// call with return value
.debug
	.dw '.stabn 0x44,0,359,',0,0
	.dd LM138-_OSSemPost
	.dw 0x0d,0x0a
.code
LM138:
	call _OS_Sched	// call without return value
.debug
	.dw '.stabn 0x44,0,360,',0,0
	.dd LM139-_OSSemPost
	.dw 0x0d,0x0a
.code
LM139:
	R1=0	// QImode move
	pc=L57	// Indirect jump
.debug
	.dw '.stabn 0x44,0,361,',0,0
	.dd LM140-_OSSemPost
	.dw 0x0d,0x0a
.code
LM140:
LBE11:
L60:
.debug
	.dw '.stabn 0x44,0,362,',0,0
	.dd LM141-_OSSemPost
	.dw 0x0d,0x0a
.code
LM141:
	R1=[BP]	// QImode move
	R2=[R1]	// QImode move
	R1=R2	// QImode move
	R2=R2+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,(-2)	// QImode compare
	NSJA L61	//QImode GTU
.debug
	.dw '.stabn 0x44,0,363,',0,0
	.dd LM142-_OSSemPost
	.dw 0x0d,0x0a
.code
LM142:
LBB12:
	R4=[BP]	// QImode move
	R2=[R4]	// QImode move
	R1=R2	// QImode move
	R2=R2+2
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	R2=R1	// QImode move
	R1=R1+2
	R4=[BP]	// QImode move
	R3=[R4]	// QImode move
	R2=R3	// QImode move
	R3=R3+2
	R4=R3	// QImode move
	R2=[R4]	// QImode move
	R3=R2+1
	R2=R1	// QImode move
	[R2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,364,',0,0
	.dd LM143-_OSSemPost
	.dw 0x0d,0x0a
.code
LM143:
	call _Critical_out	// call with return value
.debug
	.dw '.stabn 0x44,0,365,',0,0
	.dd LM144-_OSSemPost
	.dw 0x0d,0x0a
.code
LM144:
	R1=0	// QImode move
	pc=L57	// Indirect jump
.debug
	.dw '.stabn 0x44,0,366,',0,0
	.dd LM145-_OSSemPost
	.dw 0x0d,0x0a
.code
LM145:
LBE12:
L61:
.debug
	.dw '.stabn 0x44,0,367,',0,0
	.dd LM146-_OSSemPost
	.dw 0x0d,0x0a
.code
LM146:
	call _Critical_out	// call with return value
.debug
	.dw '.stabn 0x44,0,368,',0,0
	.dd LM147-_OSSemPost
	.dw 0x0d,0x0a
.code
LM147:
	R1=50	// QImode move
	pc=L57	// Indirect jump
.debug
	.dw '.stabn 0x44,0,369,',0,0
	.dd LM148-_OSSemPost
	.dw 0x0d,0x0a
.code
LM148:
LBE10:

⌨️ 快捷键说明

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