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

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

?? rtx51tny.a51

?? Keil3軟件下載
?? A51
?? 第 1 頁 / 共 2 頁
字號:
		SETB    C
		SUBB    A,R7
		JC      ?C0020
		INC     SP
		INC     SP
?C0020:
;    while (i > no)  {
		MOV     A,R6
		SETB    C
		SUBB    A,R7
		JC      ?C0021
;      p1 = i == current ? SP : STKP[i+1];
		MOV     A,#?RTX?TASKSP?S
		ADD     A,R6
		MOV     R0,A
		INC	R0
		MOV     A,@R0
		MOV     R1,A
		MOV     A,R6
		CJNE    A,?RTX_CURRENTTASK,?C0022
		MOV	R1,SP
?C0022:
;      STKP[i] += 2;
		DEC	R0
		INC	@R0
		INC	@R0
;      p2 = STKP[i];
		MOV	A,@R0
		MOV	R5,A
?C0024:
;      while (p1 != p2)  {
		MOV     A,R5
		XRL     A,R1
		JZ      ?C0025
;        DBYTE[p1] = DBYTE[p1-2];
		DEC	R1
		DEC	R1
		MOV	A,@R1
		INC	R1
		INC	R1
		MOV	@R1,A
;        p1--;
		DEC	R1
;      }
		SJMP    ?C0024
?C0025:
;      i--;
		DEC	R6
;    }
		SJMP	?C0020

?C0021:
;
;    DWORD[STKP[no]] = ENTRY[no];
		MOV	A,R7
		ADD     A,#?RTX?TASKSP?S
		MOV	R0,A
		MOV	A,@R0
		INC	A
		MOV	R0,A
		MOV	A,R7
		ADD	A,R7
		INC	A
		MOV	DPTR,#?RTX?TASKENT?S
		MOVC	A,@A+DPTR
		MOV	@R0,A
		INC	R0
		MOV	A,R7
		ADD	A,R7
		MOVC	A,@A+DPTR
		MOV	@R0,A
;    return (0);
		MOV	R7,#0
;  }

		RET

;  os_wait (uchar typ, uchar timeout)  {
_os_wait:
_OS_wait1:			; entry point for 1 parameter
_OS_wait2:			; entry point for 2 parameters
;    uchar st = 0;
;---- Variable 'typ' assigned to Register 'R7' ----
;---- Variable 'timeout' assigned to Register 'R5' ----
;---- Variable 'st' assigned to Register 'R6' ----
		MOV	R6,#0FFH
;
;
		MOV	A,?RTX_CURRENTTASK
		RL	A
		ADD	A,#?RTX?TASKSTATE?S+1
		MOV	R0,A
;    if (typ == 0)  goto no_wait;
		MOV     A,R7
		JZ	no_wait
;
;    if (typ & K_IVL)  {
		CLR	ET0
		JNB     ACC.B_INTERVAL,??C0005
		DEC	R0
;      STATE[current].timer += timeout;
		MOV	A,@R0
		JZ	??C0006_
		ADD	A,R5
		MOV	@R0,A
;      if (!CY)  {
		JZ	??C0006a		; zero means no wait
		JC	??C0006
;        st = TMO_EVENT;
??C0006a:	MOV	R6,#TMO_EVENT
;        goto no_wait;
		INC	R0
		SJMP	no_wait;
;      }
??C0006_:
		MOV	A,R5
		MOV	@R0,A
??C0006:
		INC	R0
;      STATE[current].st |= K_TMO;
		CLR	EA
		MOV     A,@R0
		ORL	A,#K_TMO
		MOV     @R0,A
		SETB	EA
;    }  
??C0005:
;    if (typ & K_TMO)  {
		MOV     A,R7
		JNB     ACC.B_WAITTIM,??C0007
;      if (timeout == 0)  {
		MOV     A,R5
		JNZ     ??C0008
;        st = TMO_EVENT;
		MOV	R6,#TMO_EVENT
;        goto no_wait;
		SJMP	no_wait
;      }
??C0008:
		DEC	R0
;      STATE[current].timer = timeout;
		MOV	@R0,A
;      STATE[current].st |= K_TMO;
		INC	R0
		CLR	EA
		MOV	A,@R0
		ORL	A,#K_TMO
		MOV     @R0,A
		SETB	EA
;    }
??C0007:
;    if (typ & K_SIG)  {
		MOV     A,R7
		JNB     ACC.B_WAITSIG,??C0003
;      if (STATE[current].st & SIG_EVENT)  {
		CLR	EA
		MOV	A,@R0
		JNB     ACC.B_SIGNAL,??C0004
		SETB	EA
;        st = SIG_EVENT;
		MOV     R6,#SIG_EVENT
;        goto no_wait;
		SJMP	no_wait
;      }
??C0004:
;      STATE[current].st |= K_SIG;
		ORL	A,#K_SIG
		ANL	A,#NOT K_READY
		MOV	@R0,A
		SETB	EA
		SJMP	??C0003A
;    }
??C0003:
;    switchnow ();            /* Select Another Task */
		CLR	EA
		MOV	A,@R0
		ANL	A,#NOT K_READY
		MOV     @R0,A
		SETB	EA
??C0003A:	SETB	ET0
		JMP	SwitchNow

no_wait:
;    STATE[current].st &= ~ (st | K_SIG | K_TMO);
;    return (st);
		MOV	A,R6
		MOV	R7,A
		ORL	A,#K_SIG + K_TMO
		CPL	A
		CLR	EA
		ANL	A,@R0
		MOV	@R0,A
		SETB	EA
		SETB	ET0
		RET
;  }



_OS_send_signal:
_isr_send_signal:
;  os_send_signal (uchar taskid)  {
;    uchar data *p;
;---- Variable 'taskid' assigned to Register 'R7' ----
;---- Variable 'p' assigned to Register 'R0' ----
;    if (no > MAXTASKN)  return (0xff);
		MOV     A,R7
		SETB    C
		SUBB    A,#?RTX_MAXTASKN
		JC      ??C0010
		MOV     R7,#0FFH
		RET     
??C0010:

;    p = &STATE[taskid].st;
		MOV     A,R7
		RL	A
		ADD	A,#?RTX?TASKSTATE?S+1
		MOV	R0,A
		CLR	EA
		MOV	A,@R0
;
;    if (*p & K_ACTIVE)  {
		JNB     ACC.B_ACTIVE,?C0026
;      if (*p & K_SIG)  *p |= K_READY;
		JNB     ACC.B_WAITSIG,?C0026
		SETB	ACC.B_READY
;    }
?C0026:
;    *p |= SIG_EVENT;
		SETB	ACC.B_SIGNAL
		XCH	A,@R0
		SETB	EA
		JB	ACC.B_SIGNAL,SIG_PENDING
		MOV	R7,#0
		RET

SIG_PENDING:	MOV	R7,#1
		RET
;  }

_OS_clear_signal:
;  os_clear_signal (uchar taskid)  {
;    uchar data *p;
;---- Variable 'taskid' assigned to Register 'R7' ----
;---- Variable 'p' assigned to Register 'R0' ----
;    if (no > MAXTASKN)  return (0xff);
		MOV     A,R7
		SETB    C
		SUBB    A,#?RTX_MAXTASKN
		JC      _??C0010
		MOV     R7,#0FFH
		RET     
_??C0010:

;    p = &STATE[taskid].st;
		MOV     A,R7
		RL	A
		ADD	A,#?RTX?TASKSTATE?S+1
		MOV	R0,A
		CLR	EA
		MOV	A,@R0
;    *p &= SIG_EVENT;
		CLR	ACC.B_SIGNAL
		XCH	A,@R0
		SETB	EA
		JB	ACC.B_SIGNAL,_SIG_PENDING
		MOV	R7,#0
		RET

_SIG_PENDING:	MOV	R7,#1
		RET
;  }

; uchar os_delete (uchar no)  {
;   uchar i;
;   uchar last, first, check;
;
_OS_delete_task:
;---- Variable 'first' assigned to Register 'R1' ----
;---- Variable 'last' assigned to Register 'R5' ----
;---- Variable 'check' assigned to Register 'R4' ----
;---- Variable 'no' assigned to Register 'R7' ----
; if (no > MAXTASKN)  return (0xff);
		MOV     A,R7
		SETB    C
		SUBB    A,#?RTX_MAXTASKN
		JC      ?C0030
?C0032:		MOV     R7,#0FFH
		RET     
?C0030:
; if (!(STATE[no].st & K_ACTIVE))  return (0xff);

		MOV     A,R7
		RL	A
		ADD     A,#?RTX_TASKSTATUS+1
		MOV     R0,A
		MOV     A,@R0
		JNB     ACC.B_ACTIVE,?C0032
; STATE[no].st &= ~(K_ACTIVE | K_READY | K_SIG | K_TMO | K_ROBIN);
		CLR	EA
		MOV	A,@R0
		ANL     A,#NOT (K_ACTIVE+K_READY+K_SIG+K_TMO+K_ROBIN)
		MOV     @R0,A
		SETB	EA
; if (current == no)  {
		MOV     A,?RTX_CURRENTTASK
		CJNE    A,AR7,?C0033
;   SP = STKP[no];
		MOV     A,#?RTX_TASKSP
		ADD     A,R7
		MOV     R0,A
		MOV     A,@R0
		MOV     SP,A
;   switchnow ();
		LJMP	switchnow
; }

?C0033:
; if (current < no)  {
		JNC     ?C0034
;   last  = (no == MAXTASKN) ? STACKTOP : STKP[no+1];
		MOV     A,#?RTX_TASKSP+1
		ADD     A,R7
		MOV     R0,A
		MOV     A,@R0
		CJNE    R7,#?RTX_MAXTASKN,?C0035
		MOV     A,#?RTX_RAMTOP
?C0035:
		MOV     R5,A
;   first = STKP[no];
		DEC	R0
		MOV     A,@R0
		MOV     R1,A
?C0039:
;   do  {
;     check = STKP[no];
		MOV     A,#?RTX_TASKSP
		ADD     A,R7
		MOV     R0,A
		MOV	R3,A		; save @STKP
		MOV     A,@R0
		MOV     R4,A
;     while (first != check)  {
?C0040:
		MOV     A,R1
		XRL     A,R4
		JZ      ?C0037
;       DBYTE[last] = DBYTE[first];
                                         ; SOURCE LINE # 186
		MOV	R0,AR5
		MOV     A,@R1
		MOV     @R0,A
;       last--;
		DEC     R5
;       first--;
		DEC     R1
;     }
		SJMP    ?C0040
?C0037:
;     STKP[no] = last;
		MOV	R0,AR3		; restore @STKP
		MOV     @R0,AR5
;     no--;
		DEC     R7
;   }  while (current != no);
		MOV     A,?RTX_CURRENTTASK
		CJNE    A,AR7,?C0039
;   return (0);
                MOV	R7,#0
		RET     
; }
?C0034:
; if (current > no)  {
;   last  = STKP[no+1];
		MOV     A,#?RTX_TASKSP+1
		ADD     A,R7
		MOV     R0,A
		MOV     A,@R0
		MOV     R5,A
;   first = STKP[no];
		DEC	R0
		MOV	AR1,@R0
?C0045:
;   do  {
;     no++;
		INC     R7
;     STKP[no] = first;
		MOV     A,#?RTX_TASKSP
		ADD     A,R7
		MOV	R0,A
		MOV     @R0,AR1
;     check = (no == current) ? SP : STKP[no+1];
		INC	R0
		MOV	AR4,@R0
		MOV     A,?RTX_CURRENTTASK
		CJNE	A,AR7,?C0046
		MOV	R4,SP
?C0046:
;     while (last != check)  {
		MOV     A,R5
		XRL     A,R4
		JZ      ?C0043
;       last++;
		INC     R5
;       first++;
		INC     R1
;       DBYTE[first] = DBYTE[last];
		MOV     R0,AR5
		MOV     A,@R0
		MOV     @R1,A
;     }
		SJMP    ?C0046
;   }  while (current != no);
?C0043:
		MOV     A,?RTX_CURRENTTASK
		CJNE	A,AR7,?C0045
;   SP = first;
		MOV     SP,R1
;   return (0);
		MOV     R7,#0
; }
;}
?C0031:
		RET     



; Start RTX-51 Tiny Kernal

EXTRN CODE (?C_STARTUP)
PUBLIC	MAIN

MAIN:		MOV	R0,#?RTX?TASKSP?S
		MOV	@R0,SP
		MOV	A,#?RTX_MAXTASKN
		JZ	main2
		MOV	R7,A
main1:		INC	R0
		MOV	@R0,#?RTX_RAMTOP
		DJNZ	R7,main1
main2:		MOV	R7,#?RTX_MAXTASKN+1
		CLR	A
		MOV	R0,#?RTX?TASKSTATE?S
main1x:		MOV	@R0,A
		INC	R0
		MOV	@R0,A
		INC	R0
		DJNZ	R7,main1x
		MOV	R0,#?RTX?TASKSTATE?S+1
		MOV	@R0,#K_ACTIVE+K_READY
		MOV	DPTR,#?RTX?TASKENT?S
		MOV	A,#1
		MOVC	A,@A+DPTR
		PUSH	ACC
		CLR	A
		MOVC	A,@A+DPTR
		PUSH	ACC
		MOV	?RTX_RobinTime,#LOW ?RTX_TIMESHARING
		ORL	TMOD,#01H	; Timer 0 Mode 1
		MOV	TL0,#LOW (?RTX_CLOCK)
		MOV	TH0,#HIGH (?RTX_CLOCK)
		SETB	TR0
		SETB	EA
		SETB	ET0
		RET		; Start Task 0


os_running_task_id:
		MOV	R7,?RTX_CURRENTTASK
		RET


?RTX_TASKIDX:	DB	?RTX_MAXTASKN		; for Debugging

		END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲尤物在线视频观看| 91免费精品国自产拍在线不卡| 欧美影视一区在线| 午夜精品一区二区三区电影天堂 | 国产精品国产三级国产aⅴ中文| 国产成人在线看| 亚洲欧洲一区二区在线播放| 日本道精品一区二区三区| 亚洲福利视频导航| 日韩精品资源二区在线| 国产成人免费视频网站 | 欧美另类变人与禽xxxxx| 美女尤物国产一区| 国产欧美一区视频| 色婷婷狠狠综合| 热久久一区二区| 国产精品视频一二三区 | 国产在线麻豆精品观看| 亚洲国产高清不卡| 欧美在线不卡一区| 国内精品免费在线观看| 亚洲视频1区2区| 日韩免费一区二区| 91网址在线看| 精东粉嫩av免费一区二区三区| 中文字幕在线不卡一区| 欧美一级二级三级蜜桃| 高清不卡在线观看av| 亚洲1区2区3区视频| 久久久久99精品一区| 91蜜桃视频在线| 激情五月播播久久久精品| 亚洲精品久久久蜜桃| 精品免费国产一区二区三区四区| 91性感美女视频| 国产专区综合网| 午夜精品免费在线| 国产精品国产三级国产普通话三级 | 91九色02白丝porn| 国产精品亚洲а∨天堂免在线| 亚洲国产成人高清精品| 亚洲午夜在线电影| 国产精品久久一级| 日韩欧美一区中文| 欧美伊人久久久久久久久影院| 国产精品一区二区久久精品爱涩| 亚洲成av人片一区二区三区| 国产精品国产三级国产aⅴ原创 | 91丨porny丨蝌蚪视频| 久久99精品久久久久久久久久久久| 亚洲日本乱码在线观看| 久久综合av免费| 欧美肥妇毛茸茸| 日本丰满少妇一区二区三区| 成人午夜激情视频| 黄色精品一二区| 蜜臀久久99精品久久久久久9 | 337p亚洲精品色噜噜| 一本色道**综合亚洲精品蜜桃冫 | 成人h动漫精品| 国产精品一区二区黑丝| 美日韩一区二区三区| 日韩精品91亚洲二区在线观看 | 视频一区二区不卡| 亚洲一区二区三区爽爽爽爽爽| 国产精品不卡在线| 中文字幕av在线一区二区三区| 久久亚洲精精品中文字幕早川悠里| 91.com在线观看| 在线不卡a资源高清| 制服丝袜亚洲网站| 欧美日本视频在线| 欧美日韩精品欧美日韩精品| 欧美羞羞免费网站| 欧美亚洲动漫精品| 欧美年轻男男videosbes| 欧美日韩成人综合天天影院| 欧美三区免费完整视频在线观看| 欧美最猛性xxxxx直播| 91高清视频免费看| 欧美日韩不卡一区| 91精品国产综合久久国产大片| 欧美理论电影在线| 欧美一区二区视频在线观看| 日韩欧美中文一区二区| 日韩精品中文字幕在线不卡尤物| 日韩欧美在线综合网| 欧美精品一区二区三区久久久| 久久尤物电影视频在线观看| 久久男人中文字幕资源站| 国产日韩欧美亚洲| 综合中文字幕亚洲| 亚洲国产欧美日韩另类综合| 日本亚洲天堂网| 精品一区二区在线看| 粉嫩在线一区二区三区视频| a级精品国产片在线观看| 91电影在线观看| 欧美高清hd18日本| 精品国产91乱码一区二区三区| 久久九九久久九九| 亚洲精品视频在线观看网站| 午夜精品在线看| 欧美自拍偷拍一区| 538在线一区二区精品国产| 日韩精品一区二区在线观看| 国产欧美视频一区二区| 樱桃视频在线观看一区| 日本中文字幕一区二区有限公司| 国产在线视频一区二区| 99久久婷婷国产综合精品| 91国模大尺度私拍在线视频| 欧美mv和日韩mv国产网站| 国产精品每日更新| 午夜精彩视频在线观看不卡| 国产在线不卡一区| 色婷婷综合五月| 久久久不卡网国产精品二区| 亚洲在线中文字幕| 国产美女视频91| 欧美男男青年gay1069videost| 久久这里只有精品首页| 亚洲国产综合色| 成人免费不卡视频| 337p亚洲精品色噜噜狠狠| 中文字幕一区二区不卡| 老司机精品视频在线| 91福利国产成人精品照片| 久久久www成人免费无遮挡大片| 亚洲国产精品一区二区www| 国产成人免费视频精品含羞草妖精| 欧美亚洲一区二区在线观看| 国产日韩影视精品| 奇米影视7777精品一区二区| 日本高清成人免费播放| 国产农村妇女毛片精品久久麻豆| 蜜臀久久99精品久久久久久9 | 欧美日本乱大交xxxxx| 亚洲欧洲精品一区二区三区 | 午夜精彩视频在线观看不卡| 99国产精品视频免费观看| 精品人在线二区三区| 亚洲成av人片在线| 日本高清视频一区二区| 国产精品天美传媒沈樵| 久久99精品国产麻豆婷婷洗澡| 欧美日韩国产在线观看| 亚洲人成网站精品片在线观看| 国产精品99久久久| 精品黑人一区二区三区久久| 五月综合激情网| 欧美日韩一区二区三区视频| 中文字幕一区二区视频| 处破女av一区二区| 国产香蕉久久精品综合网| 韩国三级电影一区二区| 日韩久久精品一区| 免费在线看成人av| 日韩欧美一级二级三级久久久| 日韩在线观看一区二区| 欧美三级视频在线| 午夜久久久影院| 欧美精选午夜久久久乱码6080| 亚洲一区二区三区四区不卡| 在线这里只有精品| 亚洲国产精品一区二区久久| 欧美亚洲另类激情小说| 亚洲一区二区在线播放相泽| 在线影院国内精品| 亚洲制服丝袜av| 欧美日本韩国一区二区三区视频| 亚洲成人动漫一区| 欧美一区二区美女| 久久99日本精品| 精品国产伦一区二区三区免费| 黄页视频在线91| 视频一区二区三区在线| 欧美tk丨vk视频| 国产精品一区二区x88av| 欧美激情中文不卡| 99久久er热在这里只有精品66| 国产精品久久久久一区二区三区| 波多野结衣在线aⅴ中文字幕不卡| 中文字幕av一区二区三区免费看 | 欧洲激情一区二区| 日韩有码一区二区三区| 欧美草草影院在线视频| 成人理论电影网| 亚洲精品高清在线| 欧美一区二区久久久| 国产精品自拍一区| 亚洲三级在线免费观看| 欧美日韩免费视频| 久久aⅴ国产欧美74aaa| 国产精品人成在线观看免费| 欧美日本在线观看| 国产一区二区伦理片| 亚洲黄色性网站| 精品乱人伦一区二区三区| www.色综合.com|