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

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

?? os_cpu_a.asm

?? 該源碼是本人經調試通過的UCOS2操作系統在51單片機上移植好的源代碼
?? ASM
字號:
$NOMOD51
EA BIT 0A8H.7
SP DATA 081H
B DATA 0F0H
ACC DATA 0E0H
DPH DATA 083H
DPL DATA 082H
PSW DATA 0D0H
TR0 BIT 088H.4
TH0 DATA 08CH
TL0 DATA 08AH

NAME OS_CPU_A ;模塊名

;定義重定位段
?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



;聲明引用全局變量和外部子程序
EXTRN IDATA (OSTCBCur)
EXTRN IDATA (OSTCBHighRdy)
EXTRN IDATA (OSRunning)
EXTRN IDATA (OSPrioCur)
EXTRN IDATA (OSPrioHighRdy)

;EXTRN CODE (_?OSTaskSwHook)
;EXTRN CODE (_?serial)
EXTRN CODE (_?OSIntEnter)
EXTRN CODE (_?OSIntExit)
EXTRN CODE (_?OSTimeTick) 

;對外聲明4個不可重入函數
PUBLIC OSStartHighRdy
PUBLIC OSCtxSw
PUBLIC OSIntCtxSw
PUBLIC OSTickISR

;PUBLIC SerialISR 

;分配堆棧空間。只關心大小,堆棧起點由keil決定,通過標號可以獲得keil分配的SP起點。
?STACK SEGMENT IDATA
RSEG ?STACK
OSStack:
DS 40H
OSStkStart IDATA OSStack-1

;定義壓棧出棧宏
PUSHALL MACRO
PUSH PSW
PUSH ACC
PUSH B
PUSH DPL
PUSH DPH
MOV A,R0 ;R0-R7入棧
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 SP ;不必保存SP,任務切換時由相應程序調整
ENDM

POPALL MACRO
;POP ACC ;不必保存SP,任務切換時由相應程序調整
POP ACC ;R0-R7出棧
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 DPH
POP DPL
POP B
POP ACC
POP PSW
ENDM

;子程序
;-------------------------------------------------------------------------
RSEG ?PR?OSStartHighRdy?OS_CPU_A
OSStartHighRdy:
USING 0 ;上電后51自動關中斷,此處不必用CLR EA指令,因為到此處還未開中斷,本程序退出后,開中斷。
;LCALL _?OSTaskSwHook

OSCtxSw_in:

;OSTCBCur ===> DPTR 獲得當前TCB指針,詳見C51.PDF第178頁
MOV R0,#LOW (OSTCBCur) ;獲得OSTCBCur指針低地址,指針占3字節。+0類型+1高8位數據+2低8位數據
INC R0
MOV DPH,@R0 ;全局變量OSTCBCur在IDATA中
INC R0
MOV DPL,@R0

;OSTCBCur->OSTCBStkPtr ===> DPTR 獲得用戶堆棧指針
INC DPTR ;指針占3字節。+0類型+1高8位數據+2低8位數據
MOVX A,@DPTR ;.OSTCBStkPtr是void指針
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPH,R0
MOV DPL,R1

;*UserStkPtr ===> R5 用戶堆棧起始地址內容(即用戶堆棧長度放在此處) 詳見文檔說明 指針用法詳見C51.PDF第178頁 
MOVX A,@DPTR ;用戶堆棧中是unsigned char類型數據
MOV R5,A ;R5=用戶堆棧長度

;恢復現場堆棧內容
MOV R0,#OSStkStart

restore_stack:

INC DPTR
INC R0
MOVX A,@DPTR
MOV @R0,A
DJNZ R5,restore_stack

;恢復堆棧指針SP
MOV SP,R0

;OSRunning=TRUE
MOV R0,#LOW (OSRunning)
MOV @R0,#01

POPALL
SETB EA ;開中斷
RETI
;-------------------------------------------------------------------------
RSEG ?PR?OSCtxSw?OS_CPU_A
OSCtxSw: 
PUSHALL

OSIntCtxSw_in:

;獲得堆棧長度和起址
MOV A,SP
CLR C
SUBB A,#OSStkStart
MOV R5,A ;獲得堆棧長度 

;OSTCBCur ===> DPTR 獲得當前TCB指針,詳見C51.PDF第178頁
MOV R0,#LOW (OSTCBCur) ;獲得OSTCBCur指針低地址,指針占3字節。+0類型+1高8位數據+2低8位數據
INC R0
MOV DPH,@R0 ;全局變量OSTCBCur在IDATA中
INC R0
MOV DPL,@R0

;OSTCBCur->OSTCBStkPtr ===> DPTR 獲得用戶堆棧指針
INC DPTR ;指針占3字節。+0類型+1高8位數據+2低8位數據
MOVX A,@DPTR ;.OSTCBStkPtr是void指針
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPH,R0
MOV DPL,R1

;保存堆棧長度
MOV A,R5
MOVX @DPTR,A

MOV R0,#OSStkStart ;獲得堆棧起址
save_stack:

INC DPTR
INC R0
MOV A,@R0
MOVX @DPTR,A
DJNZ R5,save_stack

;調用用戶程序
;LCALL _?OSTaskSwHook

;OSTCBCur = OSTCBHighRdy
MOV R0,#OSTCBCur
MOV R1,#OSTCBHighRdy
MOV A,@R1
MOV @R0,A
INC R0
INC R1
MOV A,@R1
MOV @R0,A
INC R0
INC R1
MOV A,@R1
MOV @R0,A

;OSPrioCur = OSPrioHighRdy 使用這兩個變量主要目的是為了使指針比較變為字節比較,以便節省時間。
MOV R0,#OSPrioCur
MOV R1,#OSPrioHighRdy
MOV A,@R1
MOV @R0,A

LJMP OSCtxSw_in
;-------------------------------------------------------------------------
RSEG ?PR?OSIntCtxSw?OS_CPU_A

OSIntCtxSw:

;調整SP指針去掉在調用OSIntExit(),OSIntCtxSw()過程中壓入堆棧的多余內容
;SP=SP-4

MOV A,SP
CLR C
SUBB A,#4
MOV SP,A

LJMP OSIntCtxSw_in
;-------------------------------------------------------------------------
CSEG AT 000BH ;OSTickISR
LJMP OSTickISR ;使用定時器0
RSEG ?PR?OSTickISR?OS_CPU_A

OSTickISR: 

USING 0 
PUSHALL

CLR TR0
MOV TH0,#70H ;定義Tick=50次/秒(即0.02秒/次)
MOV TL0,#00H ;OS_CPU_C.C 和 OS_TICKS_PER_SEC
SETB TR0

LCALL _?OSIntEnter
LCALL _?OSTimeTick
LCALL _?OSIntExit
POPALL 

RETI
     end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线不卡| 欧美色精品天天在线观看视频| 国产麻豆精品theporn| 国产精品白丝jk白祙喷水网站 | 日本少妇一区二区| 成人三级在线视频| 精品免费日韩av| 亚洲综合色噜噜狠狠| 国产精品综合网| 欧美日韩久久一区二区| 欧美高清在线一区| 强制捆绑调教一区二区| 93久久精品日日躁夜夜躁欧美| 欧美tickling网站挠脚心| 亚洲一区二区在线播放相泽| 成人丝袜18视频在线观看| 久久精品视频在线看| 免费在线看成人av| 欧美色图12p| 国产精品午夜在线| 国产大片一区二区| 久久影院午夜片一区| 久久91精品久久久久久秒播| 在线播放国产精品二区一二区四区| 国产精品动漫网站| 国产99久久久久| 久久久影视传媒| 国产真实乱偷精品视频免| 日韩精品中文字幕一区二区三区 | 成人蜜臀av电影| 久久久久99精品国产片| 精品无人区卡一卡二卡三乱码免费卡| 欧美另类变人与禽xxxxx| 午夜欧美2019年伦理| 色婷婷av久久久久久久| 亚洲欧美日韩一区| 在线免费精品视频| 亚洲综合色婷婷| 欧美视频在线播放| 亚洲成a天堂v人片| 欧美浪妇xxxx高跟鞋交| 午夜精品久久久久久久99水蜜桃| 欧美在线短视频| 亚洲成人www| 欧美一区永久视频免费观看| 天天操天天色综合| 日韩女优制服丝袜电影| 国产一区三区三区| 国产精品久久毛片av大全日韩| 波多野结衣欧美| 一区二区三区四区不卡在线| 91精品福利在线| 国产成人免费在线观看| 国产精品嫩草影院av蜜臀| 91片黄在线观看| 亚洲国产精品久久久久婷婷884| 欧美日韩国产首页在线观看| 免费成人在线播放| 中文字幕不卡的av| 欧美性欧美巨大黑白大战| 亚洲bdsm女犯bdsm网站| 精品国产网站在线观看| 成人精品免费看| 亚洲一区二区三区自拍| 日韩欧美中文字幕公布| 成人精品国产福利| 午夜欧美电影在线观看| 久久精品欧美日韩| 欧美在线观看禁18| 国产麻豆视频精品| 亚洲一区视频在线观看视频| 日韩无一区二区| av电影天堂一区二区在线观看| 一区二区成人在线| 精品国产污污免费网站入口 | 91黄色激情网站| 日本亚洲一区二区| 日韩激情在线观看| 久久精品视频一区二区三区| 欧美视频在线一区二区三区 | 香蕉久久夜色精品国产使用方法 | 久久成人羞羞网站| 一区二区三区中文在线| www日韩大片| 欧美午夜免费电影| 成人国产精品免费网站| 天天综合色天天综合| 国产精品狼人久久影院观看方式| 欧美三级中文字幕在线观看| 国产电影精品久久禁18| 奇米一区二区三区av| 亚洲欧美日韩在线| 亚洲国产成人在线| 精品免费日韩av| 欧美丰满高潮xxxx喷水动漫| 日本国产一区二区| 成人av在线一区二区三区| 久国产精品韩国三级视频| 一区二区三区四区不卡在线 | 日韩欧美www| 欧美喷潮久久久xxxxx| 91丨九色丨黑人外教| 国产一区不卡视频| 美女网站色91| 五月天一区二区| 亚洲最大成人综合| 自拍偷拍亚洲欧美日韩| 精品国产一区二区精华| 日韩欧美一区二区三区在线| 在线综合亚洲欧美在线视频| 精品视频在线看| 在线视频国产一区| 色一情一乱一乱一91av| 91香蕉国产在线观看软件| 99视频精品在线| 成人动漫视频在线| 成人免费视频一区| 成人av电影免费在线播放| 成人性视频网站| 成人性生交大合| 成人高清免费观看| 91农村精品一区二区在线| 91在线播放网址| 色婷婷综合激情| 欧美日本一道本在线视频| 欧美久久免费观看| 亚洲青青青在线视频| 亚洲欧洲日韩在线| 亚洲日韩欧美一区二区在线| 亚洲男人的天堂在线aⅴ视频| 亚洲人成网站精品片在线观看| 亚洲黄色小说网站| 五月婷婷激情综合网| 裸体健美xxxx欧美裸体表演| 激情六月婷婷综合| 成人av在线观| 在线亚洲人成电影网站色www| 欧美三级电影一区| 精品国产免费人成电影在线观看四季 | 91黄色免费观看| 欧美人与禽zozo性伦| 日韩精品一区二区三区视频| 国产欧美日韩在线| 国产精品国产三级国产aⅴ入口| 夜夜嗨av一区二区三区四季av| 天天综合色天天综合色h| 精品无人区卡一卡二卡三乱码免费卡 | 日本午夜精品一区二区三区电影| 美女www一区二区| 丰满亚洲少妇av| 欧美怡红院视频| 久久综合久久99| 日韩理论在线观看| 青青草国产成人av片免费 | 久久成人免费网站| 99国产精品视频免费观看| 欧美三级日本三级少妇99| 久久色成人在线| 一区二区三区高清在线| 免费看黄色91| 色综合色综合色综合| 日韩美女视频在线| 亚洲香蕉伊在人在线观| 国产高清久久久| 欧美精品一卡二卡| 国产精品久久久久天堂| 美女一区二区视频| 欧洲中文字幕精品| 国产精品欧美一级免费| 免费高清不卡av| 色狠狠桃花综合| 日本一区二区高清| 美女在线视频一区| 欧美体内she精高潮| 国产精品免费观看视频| 免费人成黄页网站在线一区二区 | 亚洲一区二区在线视频| 国产成人精品aa毛片| 日韩视频一区二区| 亚洲电影一级黄| 99re热视频这里只精品| 亚洲精品在线三区| 日本欧美肥老太交大片| 在线精品视频一区二区| 亚洲天堂网中文字| 国产91精品一区二区| 精品久久久久久久久久久久久久久 | 久久精品一区二区三区av| 石原莉奈在线亚洲二区| 欧美性色黄大片| 亚洲精品视频一区| 91亚洲精品乱码久久久久久蜜桃 | 国产99久久久国产精品| 久久久午夜精品| 精品一区二区三区在线视频| 日韩一区和二区| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美女孩性生活视频| 亚洲国产日韩在线一区模特| 日本韩国精品在线|