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

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

?? os_cpu_a.asm

?? 一步 移植ucosii for c51,ucosii for 51多任務實時操作系統
?? ASM
字號:
;/*
;*********************************************************************************************************
;*                                               uC/OS-II
;*                                               實時內核
;*
;*                        (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
;*                                               版權所有
;*
;*                                            MCU-51 專用代碼
;*                                           KEIL C51大模式編譯
;*
;* 文件名 : OS_CPU_A.ASM
;* 作者   : Jean J. Labrosse
;* 改編   : 高偉能,根據《基于單片機8051的嵌入式系統開發指南》
;*********************************************************************************************************
;*/

;偽指令詳細用法請查A51.PDF文件
;程序結構詳見《uC/OS-II》193-198頁

;不用此語句?。?! $CASE    ;標號和變量名區分大小寫

$NOMOD51
EA	BIT		0A8H.7
SP	DATA	081H
B	DATA	0F0H
ACC	DATA	0E0H
DPH	DATA	083H
DPL	DATA	082H
PSW	DATA	0D0H

        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
       
;聲明引用全局變量和外部子程序
        EXTRN DATA  (?C_XBP)     ;仿真堆棧指針用于重入局部變量保存,為V2.51能被C使用定義在本模塊中

        EXTRN IDATA (OSTCBCur)
        EXTRN IDATA (OSTCBHighRdy)
        EXTRN IDATA (OSRunning)
        EXTRN IDATA (OSPrioCur)
        EXTRN IDATA (OSPrioHighRdy)    

        EXTRN CODE  (_?OSTaskSwHook)
            
;對外聲明不可重入函數
        PUBLIC OSStartHighRdy
        PUBLIC OSCtxSw
        PUBLIC OSIntCtxSw

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

;定義壓棧出棧宏
PUSHALL    MACRO
        PUSH ACC
        PUSH B
        PUSH DPH
        PUSH DPL
        PUSH PSW
        PUSH AR0
        PUSH AR1
        PUSH AR2
        PUSH AR3
        PUSH AR4
        PUSH AR5
        PUSH AR6
        PUSH AR7
        ENDM
    
POPALL    MACRO
        POP  AR7
        POP  AR6
        POP  AR5
        POP  AR4
        POP  AR3
        POP  AR2
        POP  AR1
        POP  AR0
        POP  PSW
        POP  DPL
        POP  DPH
        POP  B
        POP  ACC
        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
    
        ;恢復仿真堆棧指針?C_XBP        
        INC  DPTR
        MOVX A,@DPTR
        MOV  ?C_XBP,A    ;?C_XBP 仿真堆棧指針高8位
        INC  DPTR
        MOVX A,@DPTR
        MOV  ?C_XBP+1,A  ;?C_XBP 仿真堆棧指針低8位
    
        ;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
        
        ;保存仿真堆棧指針?C_XBP
        INC  DPTR
        MOV  A,?C_XBP    ;?C_XBP 仿真堆棧指針高8位
        MOVX @DPTR,A
        INC  DPTR
        MOV  A,?C_XBP+1  ;?C_XBP 仿真堆棧指針低8位
        MOVX @DPTR,A        
    
        ;調用用戶程序
        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
        END
;-------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线麻豆精品观看| 国产在线一区二区| 国产精品色眯眯| 欧美国产日本视频| 国产欧美日韩激情| 国产精品久99| 中文字幕一区三区| 中文字幕日韩一区| 亚洲人123区| 亚洲一二三四久久| 亚洲丰满少妇videoshd| 偷拍日韩校园综合在线| 奇米精品一区二区三区四区 | 亚洲国产三级在线| 肉肉av福利一精品导航| 欧美二区乱c少妇| 色av成人天堂桃色av| 色哦色哦哦色天天综合| 欧美亚洲日本一区| 欧美日韩国产免费| 日韩一区二区精品葵司在线| 久久午夜色播影院免费高清 | 最新高清无码专区| 亚洲一区在线观看网站| 男人的j进女人的j一区| 国产成人免费av在线| 91丨porny丨最新| 欧美日韩不卡视频| 久久人人超碰精品| 亚洲欧美乱综合| 男女激情视频一区| aaa欧美大片| 91精品欧美一区二区三区综合在| www亚洲一区| 日韩理论片网站| 秋霞影院一区二区| 菠萝蜜视频在线观看一区| 欧美三片在线视频观看| 欧美精品在线观看播放| 26uuu久久天堂性欧美| 亚洲男同性恋视频| 精久久久久久久久久久| 一本色道久久综合亚洲91| 91麻豆精品国产91久久久久久 | 亚洲精品一区二区精华| 亚洲蜜臀av乱码久久精品蜜桃| 免费欧美日韩国产三级电影| 波多野结衣一区二区三区| 91精品国产一区二区人妖| 美日韩一区二区| 成人污污视频在线观看| 欧美一区在线视频| 中文字幕一区不卡| 久久99精品一区二区三区三区| 色综合久久综合网97色综合| 精品乱码亚洲一区二区不卡| 亚洲激情在线激情| 国产成人a级片| 欧美一区二区三区四区久久| 中文字幕一区二区三区在线播放| 麻豆精品新av中文字幕| 色吊一区二区三区| 日本一区二区三区四区| 久久国产精品99久久久久久老狼 | 国产精品日日摸夜夜摸av| 视频一区二区三区中文字幕| 99麻豆久久久国产精品免费| 精品国产一区二区亚洲人成毛片| 亚洲欧美国产三级| 处破女av一区二区| 精品久久久久久久久久久久久久久久久 | 亚洲视频一区二区在线观看| 久久 天天综合| 69av一区二区三区| 亚洲综合激情网| www.99精品| 日本一区二区视频在线| 国产一区二区在线电影| 91麻豆精品国产无毒不卡在线观看| 亚洲激情综合网| 99re亚洲国产精品| 91在线国产福利| 欧美午夜不卡在线观看免费| 国产精品热久久久久夜色精品三区| 美女视频一区二区| 欧美日韩二区三区| 亚洲一区二区五区| 91成人国产精品| 亚洲人成人一区二区在线观看 | av亚洲精华国产精华精华| 国产色综合久久| 国产九色sp调教91| 久久亚洲综合av| 久久国内精品视频| 日韩精品一区二区三区在线观看 | 91在线视频18| 国产精品高清亚洲| av网站免费线看精品| 中文字幕亚洲欧美在线不卡| 99这里只有精品| 中文字幕一区二区三区在线不卡| av电影在线观看一区| 亚洲欧美日本在线| 欧美在线|欧美| 天天色 色综合| 亚洲色图制服丝袜| 久久婷婷国产综合国色天香| 日韩福利电影在线| 日韩三级视频中文字幕| 麻豆视频一区二区| xnxx国产精品| 成人性生交大合| 国产欧美日韩另类视频免费观看| 懂色一区二区三区免费观看| 一区精品在线播放| 色婷婷久久综合| 性久久久久久久久久久久| 91精品国产免费| 国产九色sp调教91| 中文字幕亚洲电影| 欧美丝袜丝交足nylons| 免费日本视频一区| 中文字幕精品一区二区精品绿巨人 | 亚洲一区二区精品视频| 91麻豆精品91久久久久同性| 蜜臀va亚洲va欧美va天堂| 久久综合九色欧美综合狠狠| 成人综合婷婷国产精品久久蜜臀| 亚洲视频香蕉人妖| 欧美日韩不卡一区二区| 久久疯狂做爰流白浆xx| 国产精品系列在线| 丝袜美腿一区二区三区| 亚洲图片欧美一区| 欧美日韩成人一区二区| 久草在线在线精品观看| 日韩毛片一二三区| 欧美美女一区二区三区| 国产精品一区二区免费不卡| 亚洲视频在线观看一区| 91精品国产91综合久久蜜臀| 高清视频一区二区| 亚洲国产婷婷综合在线精品| 欧美大片国产精品| 成人影视亚洲图片在线| 亚洲主播在线播放| 久久网站热最新地址| 在线观看日韩av先锋影音电影院| 蜜桃精品视频在线观看| 中文字幕欧美一| 欧美一级黄色片| 99久久精品国产导航| 精一区二区三区| 一区二区三区加勒比av| 久久久久久久网| 欧美日韩电影一区| 成人av先锋影音| 老司机精品视频在线| 亚洲精品国产品国语在线app| 日韩欧美的一区二区| 色综合久久88色综合天天6| 日韩电影一区二区三区四区| 国产精品久久毛片av大全日韩| 欧美精选一区二区| 色婷婷综合久久久中文字幕| 国产毛片一区二区| 天堂在线亚洲视频| 亚洲欧洲中文日韩久久av乱码| 26uuu另类欧美| 欧美精品三级日韩久久| 91在线国产观看| 国产激情视频一区二区在线观看 | 国产三级一区二区三区| 欧美亚洲一区二区在线| 99免费精品视频| 国精品**一区二区三区在线蜜桃| 亚洲一区二区三区在线| 亚洲人午夜精品天堂一二香蕉| 久久久国产午夜精品| 精品久久久久久久久久久久久久久| 欧美日韩一二三区| 91国在线观看| 99久久精品国产导航| 国产成人精品三级麻豆| 美女mm1313爽爽久久久蜜臀| 亚洲1区2区3区视频| 亚洲在线观看免费| 亚洲人成网站在线| 亚洲欧洲日韩av| 国产精品九色蝌蚪自拍| 国产欧美日本一区二区三区| 精品久久一区二区| 欧美肥妇毛茸茸| 欧美日韩高清一区| 91 com成人网| 欧美剧情电影在线观看完整版免费励志电影| 色婷婷亚洲精品| 在线国产电影不卡| 欧美三级蜜桃2在线观看| 欧美日韩国产欧美日美国产精品|