亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_cpu_a.asm

?? ucos在51單片機上的移植的源代碼以及測試代碼
?? ASM
字號:
;//----------------------------------------------------------------
        $NOMOD51
        NAME	OS_CPU_A
;//----------------------------------------------------------------
P0	DATA	080H
P1	DATA	090H
P2	DATA	0A0H
P3	DATA	0B0H
T0	BIT	0B0H.4
AC	BIT	0D0H.6
T1	BIT	0B0H.5
T2	BIT	090H.0
EA	BIT	0A8H.7
IE	DATA	0A8H
EXF2	BIT	0C8H.6
RD	BIT	0B0H.7
ES	BIT	0A8H.4
IP	DATA	0B8H
RI	BIT	098H.0
INT0	BIT	0B0H.2
CY	BIT	0D0H.7
TI	BIT	098H.1
INT1	BIT	0B0H.3
RCAP2H	DATA	0CBH
PS	BIT	0B8H.4
SP	DATA	081H
T2EX	BIT	090H.1
OV	BIT	0D0H.2
RCAP2L	DATA	0CAH
C_T2	BIT	0C8H.1
WR	BIT	0B0H.6
RCLK	BIT	0C8H.5
TCLK	BIT	0C8H.4
SBUF	DATA	099H
PCON	DATA	087H
SCON	DATA	098H
TMOD	DATA	089H
TCON	DATA	088H
IE0	BIT	088H.1
IE1	BIT	088H.3
B	DATA	0F0H
CP_RL2	BIT	0C8H.0
ACC	DATA	0E0H
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
ET2	BIT	0A8H.5
TF1	BIT	088H.7
TF2	BIT	0C8H.7
RB8	BIT	098H.2
TH0	DATA	08CH
EX0	BIT	0A8H.0
IT0	BIT	088H.0
TH1	DATA	08DH
TB8	BIT	098H.3
EX1	BIT	0A8H.2
IT1	BIT	088H.2
TH2	DATA	0CDH
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
SM1	BIT	098H.6
TL1	DATA	08BH
SM2	BIT	098H.5
TL2	DATA	0CCH
PT0	BIT	0B8H.1
PT1	BIT	0B8H.3
RS0	BIT	0D0H.3
PT2	BIT	0B8H.5
TR0	BIT	088H.4
RS1	BIT	0D0H.4
TR1	BIT	088H.6
TR2	BIT	0C8H.2
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
DPH	DATA	083H
DPL	DATA	082H
EXEN2	BIT	0C8H.3
REN	BIT	098H.4
T2CON	DATA	0C8H
RXD	BIT	0B0H.0
TXD	BIT	0B0H.1
F0	BIT	0D0H.5
PSW	DATA	0D0H

;//----------------------------------------------------------------
?PR?OSStartHighRdy?OS_CPU_A        SEGMENT CODE 
?PR?OSCtxSw?OS_CPU_A               SEGMENT CODE 
?PR?OSIntCtxSw?OS_CPU_A            SEGMENT CODE 
?PR?OSTickISR?OS_CPU_A             SEGMENT CODE 
;//----------------------------------------------------------------
?PR?_EXTERN_0_ISR_?OS_CPU_A        SEGMENT CODE 
?PR?_EXTERN_1_ISR_?OS_CPU_A        SEGMENT CODE 
?PR?_TIME_1_ISR_?OS_CPU_A          SEGMENT CODE 
?PR?_SERY_ISR_?OS_CPU_A            SEGMENT CODE 
;//----------------------------------------------------------------

;//----------------------------------------------------------------        
        ;//--------------------------------------------------------
	EXTRN	DATA (STKStart)
	EXTRN	DATA (OSIntNesting)
	EXTRN	DATA (User_SP)
	EXTRN	DATA (TickTimeInit)
	;//--------------------------------------------------------
	EXTRN	IDATA (OSTCBCur)
	EXTRN	IDATA (OSTCBHighRdy)
	EXTRN	IDATA (OSRunning)
	EXTRN	IDATA (OSPrioCur)
	EXTRN	IDATA (OSPrioHighRdy)
	;//--------------------------------------------------------
	EXTRN	CODE (OSTimeTick)
	EXTRN	CODE (OSTaskSwHook)
	EXTRN	CODE (OSIntExit)
	EXTRN	CODE (OSTCBSWHook)
	EXTRN	CODE (OSIntEnter)
	EXTRN	CODE (TickTime)
	;//--------------------------------------------------------
	EXTRN	CODE (ExternInt0)
	EXTRN	CODE (ExternInt1)
	EXTRN	CODE (Time1Int)
	EXTRN	CODE (SeryInt)
	;//--------------------------------------------------------
	PUBLIC  Extern_0_ISR 
        PUBLIC  Extern_1_ISR
        PUBLIC  Time_1_ISR
        PUBLIC  Sery_ISR
	;//--------------------------------------------------------
	EXTRN	CODE (OSTickISRHook)
        ;//--------------------------------------------------------
	PUBLIC	OSTickISR
	PUBLIC	OSIntCtxSw
	PUBLIC	OSCtxSw
	PUBLIC	OSStartHighRdy
	;//--------------------------------------------------------

;//----------------------------------------------------------------
PushAll MACRO
        USING 0
        PUSH   PSW		
	PUSH   ACC
	PUSH   B
	PUSH   DPL
	PUSH   DPH
	MOV    A,R0
	PUSH   ACC
	MOV    A,R1
	PUSH   ACC
	MOV    A,R2
	PUSH   ACC
	MOV    A,R3
	PUSH   ACC
	MOV    A,R4
	PUSH   ACC
	MOV    A,R5
	PUSH   ACC
	MOV    A,R6
	PUSH   ACC
	MOV    A,R7
	PUSH   ACC
	PUSH   User_SP+1
	PUSH   User_SP
	PUSH   SP
	ENDM
;//----------------------------------------------------------------       
;//----------------------------------------------------------------
PopAll  MACRO
	POP   ACC
	POP   User_SP	;// high byte
	POP   User_SP+1	;// low byte
	POP   ACC
	MOV   R7,A
	POP   ACC
	MOV   R6,A
	POP   ACC
	MOV   R5,A
	POP   ACC
	MOV   R4,A
	POP   ACC
	MOV   R3,A
	POP   ACC
	MOV   R2,A
	POP   ACC
	MOV   R1,A
	POP   ACC
	MOV   R0,A
	POP   DPL
	POP   DPH
	POP   B
	POP   ACC
	POP   PSW
	ENDM 
;//----------------------------------------------------------------
	RSEG  ?PR?OSStartHighRdy?OS_CPU_A
OSStartHighRdy:
	USING	0
	CLR   EA
	LCALL	OSTaskSwHook
	MOV   STKStart,SP
_OSStartHighRdyGet:	
	;//------------------------------------------
	;// load the low byte of address of (name)
	;// and load the TCB of OSTCBHighRdy to DPTR
        MOV   R0,#LOW  (OSTCBCur)
        INC   R0
        MOV   DPH,@R0
        INC   R0
        MOV   DPL,@R0
        
        ;//------------------------------------------
	;// get the STK of OSTCBCur task TCB
	INC   DPTR
        MOVX  A, @DPTR
	MOV   R1,A
	INC   DPTR
	MOVX  A, @DPTR
	MOV   R0,A
	MOV   DPH, R1
	MOV   DPL, R0
	
	;//------------------------------------------
	;// DPTR --> STK of task
	INC   DPTR
	MOVX  A, @DPTR
	MOV   R5,A

	;//------------------------------------------
	;// copy user to system
	MOV   R1, STKStart
	DEC   R1
        MOV   A, R5
        MOV   R4, A
COPY_STK:
	INC   DPTR
	INC   R1
	MOVX  A, @DPTR
	MOV   @R1, A
	DJNZ  R4, COPY_STK
	
	;//------------------------------------------
	;// OSRunning = 1; multitask start
	MOV  R0, #LOW(OSRunning)
	MOV  @R0,#01
	
	;//------------------------------------------
	;// Now R1 is the new task SP	
	MOV  SP, R1
        PopAll
	SETB  EA
	RETI 	


;//----------------------------------------------------------------	

;//----------------------------------------------------------------
	RSEG  ?PR?OSCtxSw?OS_CPU_A
OSCtxSw:
        CLR  EA
        PushAll	
OSCtxSw2:	
	;//------------------------------------------
	;// SP - STKStart ===> R5
	MOV   A, SP
	CLR   C
	SUBB  A, STKStart
	MOV   R5,A
	MOV   R1,STKStart 
	MOV   A, R5
	ADD   A, #01
	MOV   R5,A
	
	;//------------------------------------------
	MOV   DPH, User_SP
	MOV   DPL, User_SP+1
	
	;//------------------------------------------
	;// DPTR - R5
	MOV   A, DPL	; Adjust the xstack pointer
	CLR   C
	SUBB  A, R5
	MOV   DPL,A
	MOV   A,  DPH
	SUBB  A,  #00H
	MOV   DPH,A
        
	;//------------------------------------------
	;// User_SP ===> DPTR
	MOV User_SP,   DPH
	MOV User_SP+1, DPL

        INC   DPTR
	
	;//------------------------------------------
	;// Save the number of bytes saved
	MOV  A, R5	
	MOVX @DPTR,A
	
	;//------------------------------------------
	;// Save to user stk
	MOV A, R5
	MOV R4,A
	DEC R1
SAVE_STK:
	INC   DPTR
	INC   R1
	MOV   A, @R1
	MOVX  @DPTR, A
	DJNZ  R4, SAVE_STK
        
        ;//------------------------------------------
        MOV   R0,#LOW(OSTCBCur)
        INC   R0
        MOV   DPH,@R0
        INC   R0
        MOV   DPL,@R0
	
	INC   DPTR
	MOV   A,User_SP
	MOVX  @DPTR,A
	INC   DPTR
	MOV   A,User_SP+1
	MOVX  @DPTR,A
	
	;//------------------------------------------	
	LCALL OSTaskSwHook
	LCALL OSTCBSWHook
	LJMP _OSStartHighRdyGet
	;//------------------------------------------
	
;//----------------------------------------------------------------

;//----------------------------------------------------------------
        RSEG  ?PR?OSIntCtxSw?OS_CPU_A
OSIntCtxSw:
        ;//------------------------------------------
	;// Adjust the stack pointer to remove call to:
	;//   - call to OSIntExit  (2 bytes)
	;//   - call to OSIntCtxSw (2 bytes)
	;//   - locals		   (0 bytes)
	CLR     EA
	MOV	A, SP
	CLR	C
	SUBB	A, #4
	MOV	SP,A
	LJMP    OSCtxSw2
;//----------------------------------------------------------------

;//----------------------------------------------------------------
CSEG	AT	0000BH
	LJMP	OSTickISR

        RSEG  ?PR?OSTickISR?OS_CPU_A
OSTickISR:
        USING 0
        PushAll
        CLR    EA       
        CLR    TR0
        MOV    TH0,#3CH
        MOV    TL0,#0B0H
        SETB   TR0
        
        DJNZ   TickTimeInit,OSTI_1
        LCALL  TickTime
        LCALL  OSTickISRHook
        LCALL  OSIntEnter
        LCALL  OSTimeTick
        LCALL  OSIntExit
    
OSTI_1:	
        PopAll
	SETB  EA
	RETI 
;//----------------------------------------------------------------
;//---------------------------------------------------------------- 
CSEG	AT	00003H
	LJMP	Extern_0_ISR
        RSEG    ?PR?_EXTERN_0_ISR_?OS_CPU_A 
Extern_0_ISR:
	USING   0
	CLR     EA 
	PushAll
	LCALL   OSIntEnter
	LCALL   ExternInt0
	PopAll
	SETB    EA
	RETI
;//---------------------------------------------------------------- 
;//---------------------------------------------------------------- 
CSEG	AT	00013H
	LJMP	Extern_1_ISR
	RSEG    ?PR?_EXTERN_1_ISR_?OS_CPU_A 
Extern_1_ISR:
	USING   0
	CLR     EA 
	PushAll
	LCALL   OSIntEnter
	LCALL   ExternInt1
	LCALL   OSIntExit
	PopAll
	SETB    EA
	RETI
;//----------------------------------------------------------------
;//---------------------------------------------------------------- 
CSEG	AT	0001BH
	LJMP	Time_1_ISR
	RSEG    ?PR?_TIME_1_ISR_?OS_CPU_A 
Time_1_ISR:
	USING   0
	CLR     EA 
	PushAll
	LCALL   OSIntEnter
	LCALL   Time1Int
	LCALL   OSIntExit
	PopAll
	SETB    EA
	RETI
;//----------------------------------------------------------------
;//---------------------------------------------------------------- 
CSEG	AT	00023H
	LJMP	Sery_ISR
	RSEG    ?PR?_SERY_ISR_?OS_CPU_A 
Sery_ISR:
	USING   0
	CLR     EA 
	PushAll
	LCALL   OSIntEnter
	LCALL   SeryInt
	LCALL   OSIntExit
	PopAll
	SETB    EA
	RETI
;//----------------------------------------------------------------
;//---------------------------------------------------------------- 
        END
        
        

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品成人一区二区三区四区| 色噜噜狠狠成人网p站| 一区二区三区四区中文字幕| 精品欧美一区二区久久| 在线不卡的av| 欧美一区二区三区不卡| 欧美丰满少妇xxxbbb| 欧美视频一二三区| 91麻豆精品国产91久久久资源速度 | 美女脱光内衣内裤视频久久影院| 亚洲综合色自拍一区| 亚洲午夜精品网| 三级久久三级久久| 狠狠色2019综合网| 成人精品视频网站| 欧美性xxxxxxxx| 日韩一区二区免费电影| 久久伊人蜜桃av一区二区| 亚洲国产高清aⅴ视频| 亚洲精选视频免费看| 五月激情综合网| 免费观看在线综合色| 国产精品亚洲第一| 99久精品国产| 欧美福利视频导航| 久久精品人人爽人人爽| 亚洲色图视频网| 日韩精品亚洲一区| 成人黄色网址在线观看| 欧美日韩国产综合一区二区| 精品国产一二三| 亚洲素人一区二区| 毛片av一区二区| 色综合天天综合网国产成人综合天| 日本黄色一区二区| 久久久久久毛片| 一级女性全黄久久生活片免费| 免费观看成人鲁鲁鲁鲁鲁视频| 波多野结衣中文字幕一区| 欧美美女网站色| 日韩美女精品在线| 九一九一国产精品| 欧美影院一区二区三区| 精品播放一区二区| 日韩一区精品字幕| 91免费看视频| 欧美国产1区2区| 日本成人在线看| 91免费版在线| 最新中文字幕一区二区三区 | 欧美另类变人与禽xxxxx| 久久久精品综合| 丝袜美腿亚洲色图| 色婷婷国产精品久久包臀| 久久婷婷久久一区二区三区| 亚洲一级片在线观看| 91网站在线观看视频| 国产亚洲午夜高清国产拍精品| 亚洲成av人片一区二区梦乃| heyzo一本久久综合| 国产午夜精品一区二区三区嫩草 | 日本视频免费一区| 欧美在线视频日韩| 一二三四社区欧美黄| 99久久久国产精品免费蜜臀| 国产日产精品1区| 国产精品一级二级三级| 欧美电影精品一区二区| 婷婷开心激情综合| 在线播放一区二区三区| 午夜精品久久久久久久久| 欧美在线不卡一区| 亚洲在线免费播放| 日本韩国一区二区三区| 亚洲欧美日韩人成在线播放| 99vv1com这只有精品| 又紧又大又爽精品一区二区| 91一区二区三区在线播放| 亚洲精品成人在线| 色婷婷综合视频在线观看| 亚洲黄色性网站| 欧美撒尿777hd撒尿| 日韩在线a电影| 日韩免费性生活视频播放| 麻豆视频一区二区| 久久精品一区二区三区四区| 国产成人三级在线观看| 国产精品理伦片| 91丨九色丨蝌蚪富婆spa| 自拍视频在线观看一区二区| 欧美亚洲免费在线一区| 日韩综合小视频| 精品国产一区久久| 懂色中文一区二区在线播放| 欧美精品一区二区三区视频| 成人动漫一区二区三区| 亚洲影院理伦片| 精品伦理精品一区| av男人天堂一区| 亚洲成a人片在线不卡一二三区| 欧美一区二区视频在线观看| 国产东北露脸精品视频| 亚洲天堂a在线| 精品久久久久久久久久久久久久久久久| 久久99日本精品| 18成人在线视频| 欧美变态tickle挠乳网站| 成人综合在线观看| 日韩精品一二区| 国产精品日日摸夜夜摸av| 欧美久久婷婷综合色| 国产精品99久久久久久似苏梦涵| 亚洲色图色小说| 久久亚洲精品小早川怜子| 色婷婷综合久色| 国产精品一区二区久激情瑜伽| 亚洲欧洲av色图| 亚洲精品一区二区三区四区高清 | 亚洲成人福利片| 国产欧美日韩麻豆91| 欧美系列在线观看| 国产电影一区二区三区| 午夜免费久久看| 国产精品福利电影一区二区三区四区| 欧美女孩性生活视频| 91在线观看美女| 国产一区二区三区观看| 日韩在线一区二区三区| 亚洲精品成人在线| 国产精品第四页| 国产日韩欧美亚洲| 欧美成人aa大片| 欧美乱妇一区二区三区不卡视频| 99久久伊人久久99| 国产精品一区在线观看你懂的| 亚洲va韩国va欧美va精品| 亚洲欧美国产77777| 久久久午夜精品| 2019国产精品| 日韩欧美国产一区在线观看| 欧美美女直播网站| 欧美在线一区二区三区| 99久久精品国产毛片| 国产成+人+日韩+欧美+亚洲| 美女国产一区二区| 免费观看在线色综合| 日本一区中文字幕 | 亚洲精品在线观看视频| 91精品国产色综合久久| 欧美日韩一区二区三区免费看| 色av成人天堂桃色av| 色域天天综合网| 日本高清不卡一区| 欧美性受极品xxxx喷水| 欧美亚洲一区二区三区四区| 欧美在线短视频| 4438x成人网最大色成网站| 制服丝袜亚洲色图| 欧美一区二区三区公司| 欧美本精品男人aⅴ天堂| 久久久91精品国产一区二区三区| 国产亚洲一区二区三区在线观看 | 国产精品水嫩水嫩| 国产精品高清亚洲| 亚洲欧美日韩一区| 亚洲一区二区三区四区在线免费观看| 一区二区三区四区视频精品免费 | 欧美午夜影院一区| 欧美一a一片一级一片| 欧美一级欧美三级| 久久精品在这里| 亚洲免费在线视频| 午夜久久福利影院| 韩国一区二区在线观看| 国产成a人亚洲| 欧美色综合影院| 精品国产一区二区在线观看| 久久精品男人的天堂| 亚洲美女淫视频| 老司机一区二区| 96av麻豆蜜桃一区二区| 337p亚洲精品色噜噜噜| 国产欧美一区二区三区鸳鸯浴| 国产精品萝li| 男女激情视频一区| va亚洲va日韩不卡在线观看| 欧美性猛交xxxx乱大交退制版| 日韩一区二区不卡| 亚洲欧美一区二区三区国产精品 | 亚洲图片激情小说| 日本特黄久久久高潮| 成人app下载| 日韩免费性生活视频播放| 国产精品乱人伦| 蜜桃91丨九色丨蝌蚪91桃色| 波多野结衣91| 精品99一区二区三区| 亚洲综合一区二区三区| 成人午夜激情视频| 日韩视频一区二区三区在线播放 |