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

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

?? os_cpu_a.s

?? 在M16上動行的Small RTOS
?? S
字號:
#define OS_CPU_A
#include "../CONFIG/Os_cpu.h"

.text
.section .text

OSCtxSw:
 		PUSHRS	
		
		lds	r24,Os_Enter_Sum
		push 	r24

		in	r24, SREG	;
		push	r24

;	SaveSP=SP;
		in	r6, SPL
		in	r7, SPH

#if  EN_SP2>0  
.extern Sp2
		in r0,SREG
		cli
		ldi r25,hi8(Sp2+Sp2Space-1)
		ldi r24,lo8(Sp2+Sp2Space-1)
		out SPH,r25
		out SREG,r0
		out SPL,r24
#endif
	
	;cp1=SaveSP;
      	movw	r8, r6
				
;	temp_p= (uint16)OSTaskStackBottom[OSNextTaskID+1];
		lds	r24, OSNextTaskID
     	mov	r18, r24
      	eor	r19, r19
       	movw	r24, r18
      	add	r24, r18
      	adc	r25, r19
      	movw	r30, r24
      	subi	r30, lo8(-(OSTaskStackBottom+2))	
      	sbci	r31, hi8(-(OSTaskStackBottom+2))
       	ld	r12, Z
      	ldd	r13, Z+1	
				
	;cp2=(uint16)(OSTaskStackBottom[OSTaskID+1]);
 		lds	r24, OSTaskID
      	mov	r18, r24
       	eor	r19, r19
       	movw	r24, r18
      	add	r24, r18
      	adc	r25, r19
      	movw	r30, r24
       	subi	r30, lo8(-(OSTaskStackBottom+2))
       	sbci	r31, hi8(-(OSTaskStackBottom+2))
      	ld	r10, Z
       	ldd	r11, Z+1	


;	temp16=cp1-cp2;
      	movw	r4, r8
      	sub	r4, r10
      	sbc	r5, r11
	
	;if(OSTaskID<OSNextTaskID)
		lds	r24, OSTaskID
		lds	r25, OSNextTaskID
      	cp	r24, r25
      	brcs	.+2      
      	rjmp	OSCtxSw_5    
		
		;{while(cp2!=temp_p)
OSCtxSw_1:
      	cp	r10, r12
       	cpc	r11, r13
     	breq	OSCtxSw_2    
	
		;{*(uint8 *)cp1=*(uint8 *)cp2;
       	movw	r30, r8
      	movw	r26, r10
      	ld	r24, X
     	st	Z, r24
		
		;	cp1--;cp2--;}
       	sec
     	sbc	r8, r1
      	sbc	r9, r1
      	sec
      	sbc	r10, r1
     	sbc	r11, r1
      	rjmp	OSCtxSw_1    			
	;	
OSCtxSw_2:
	
	;	temp16=cp1-cp2;
      	movw	r4, r8
      	sub	r4, r10
      	sbc	r5, r11
		
;		for(i8=OSTaskID+1;i8<OSNextTaskID+1;i8++)
		lds	r24,OSTaskID
      	mov	r2, r24
      	inc	r2

OSCtxSw_3:        
	  	mov	r18, r2
     	eor	r19, r19
 		lds	r24, OSNextTaskID
      	eor	r25, r25
       	adiw	r24, 0x01	; 1
      	cp	r18, r24
      	cpc	r19, r25
      	brge	OSCtxSw_4    
		
		;	{	OSTaskStackBottom[i8]+=temp16;	}
     	mov	r18, r2
      	eor	r19, r19
    	movw	r24, r18
      	add	r24, r18
      	adc	r25, r19
     	movw	r26, r24
      	subi	r26, lo8(-(OSTaskStackBottom))	
      	sbci	r27, hi8(-(OSTaskStackBottom))	
      	
		movw r30,r26
       	ld	r24, Z
      	ldd	r25, Z+1
      	add	r24, r4
       	adc	r25, r5
       	adiw	r26, 0x01	; 1
      	st	X, r25
      	st	-X, r24
       	inc	r2
       	rjmp	 OSCtxSw_3    
	
	;	OSTaskID=OSNextTaskID;
OSCtxSw_4:
	lds	r24, OSNextTaskID
 	sts	OSTaskID, r24

		;SP=cp1;
		in R0,SREG
		cli
 		out	SPH, r9
		out SREG,R0
 		out	SPL, r8
	
;		goto loadctx;
       	rjmp	OSCtxSw_11  	


;	else if(OSNextTaskID<OSTaskID)
OSCtxSw_5:
		lds	r25, OSNextTaskID
 		lds	r24, OSTaskID
      	cp	r25, r24
      	brcs	.+2      	
      	rjmp	OSCtxSw_10    	
		
		
		;{	while(cp1!=temp_p)
OSCtxSw_6:
    	cp	r8, r12
     	cpc	r9, r13
     	breq	OSCtxSw_7     
			
			;{		*(uint8 *)(++cp2)=*(uint8 *)(++cp1);}
     	sec
     	adc	r10, r1
     	adc	r11, r1
       	movw	r30, r10
      	sec
      	adc	r8, r1
      	adc	r9, r1
      	movw	r26, r8
      	ld	r24, X
      	st	Z, r24
      	rjmp	OSCtxSw_6    

	;
OSCtxSw_7:

	;	temp16=cp1-cp2;
      	movw	r4, r8
     	sub	r4, r10
     	sbc	r5, r11

		;for(i8=OSNextTaskID+1;i8<OSTaskID+1;i8++)
		lds	r24, OSNextTaskID
      	mov	r2, r24
      	inc	r2
OSCtxSw_8:     
	 	mov	r18, r2
      	eor	r19, r19
		lds	r24,OSTaskID
     	eor	r25, r25
      	adiw	r24, 0x01	
      	cp	 r18,r24
      	cpc	 r19,r25
     	brge	OSCtxSw_9   
	
;		{		OSTaskStackBottom[i8]-=temp16;}
     	mov	r18, r2
      	eor	r19, r19
      	movw	r24, r18
      	add	r24, r18
      	adc	r25, r19
      	movw	r26, r24
      	subi	r26, lo8(-(OSTaskStackBottom))	
       	sbci	r27, hi8(-(OSTaskStackBottom))	
      	
		movw r30,r26
  		ld	r24, Z
      	ldd	r25, Z+1
      	sub	r24, r4
       	sbc	r25, r5
     	adiw	r26, 0x01	; 1
      	st	X, r25
      	st	-X, r24
      	inc	r2
        	rjmp	OSCtxSw_8     

	;	OSTaskID=OSNextTaskID;
OSCtxSw_9:
 		lds	r24, OSNextTaskID
		sts	OSTaskID, r24

	;SP=cp1
		in R0,SREG
		cli
 		out	SPH, r9
		out SREG,R0
 		out	SPL, r8

	;	goto loadctx;
   		rjmp	OSCtxSw_11     	
OSCtxSw_10:
 ;      else SP=SaveSP;
	   	in r0,SREG
	   	cli
		out	SPH, r7
		sts 0x5f,r0
		sts	0x005D, r6
	;	goto loadctx;

OSCtxSw_11:	


		#if EN_OSStkChk
		.extern OS_Stk_Null
		.extern OS_Stk_Min_Null
		sts OS_Stk_Null+1,r5
		sts OS_Stk_Null,r4
		lds r25,OS_Stk_Min_Null+1
		lds r24,OS_Stk_Min_Null
		cp r24,r4
		cpc r25,r5
		brcc 	.+2
		Rjmp OSCtxSw_11_1
		sts OS_Stk_Min_Null+1,R5
		sts OS_Stk_Min_Null,R4
#endif


OSCtxSw_11_1:	
;loadctx:

		pop r0		//SREG暫存
		pop r24		//Os_Enter_Sum
		sts Os_Enter_Sum,r24	
		and r24,r24
		brne	OSCtxSw_12		
		OS_SET_INT

OSCtxSw_12:	
		out SREG,r0	
		POPRS	
		ret
  
















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情欧美激情| 激情欧美日韩一区二区| 美女网站在线免费欧美精品| 国产精品一区在线观看乱码| 在线一区二区视频| 久久这里只有精品视频网| 亚洲人快播电影网| 国产一区二区三区观看| 欧美日韩一区二区电影| 国产欧美日韩不卡| 美腿丝袜亚洲色图| 欧美日韩在线一区二区| 国产精品毛片高清在线完整版| 日本视频中文字幕一区二区三区| 暴力调教一区二区三区| 日韩欧美在线观看一区二区三区| 中文字幕欧美一| 国产精品一区二区在线观看不卡 | 91麻豆高清视频| 26uuu色噜噜精品一区| 亚洲电影在线免费观看| 97精品超碰一区二区三区| 久久精品日韩一区二区三区| 日本vs亚洲vs韩国一区三区二区| 日本高清不卡在线观看| 国产精品乱码人人做人人爱 | 中文字幕乱码亚洲精品一区| 男男成人高潮片免费网站| 欧美中文字幕一二三区视频| 中文字幕一区在线| av中文字幕不卡| 国产精品美女一区二区在线观看| 国产美女在线观看一区| 欧美不卡在线视频| 久草这里只有精品视频| 日韩欧美一级片| 麻豆精品在线看| 精品久久人人做人人爰| 奇米影视7777精品一区二区| 91精品国产91久久久久久一区二区| 亚洲444eee在线观看| 3d成人h动漫网站入口| 日韩精品电影在线| 日韩欧美一卡二卡| 韩国成人在线视频| 国产欧美日韩在线| 91色porny| 亚洲6080在线| 精品日韩欧美在线| 国产成人午夜精品影院观看视频| 久久精品视频一区| bt7086福利一区国产| 一片黄亚洲嫩模| 91精品国产福利| 国产一区美女在线| 国产精品久久久久影院| 一本大道综合伊人精品热热| 亚洲线精品一区二区三区八戒| 欧美日韩精品综合在线| 另类成人小视频在线| 久久久精品蜜桃| 91丨九色丨蝌蚪丨老版| 亚洲国产wwwccc36天堂| 精品理论电影在线观看| 99亚偷拍自图区亚洲| 午夜电影久久久| 久久久综合九色合综国产精品| 成人在线视频一区二区| 亚洲综合色网站| 精品精品国产高清a毛片牛牛| 成人97人人超碰人人99| 亚洲h动漫在线| 日本一区二区视频在线| 欧美羞羞免费网站| 国产精品99久| 天天综合天天做天天综合| 国产视频911| 777奇米四色成人影色区| 国产激情视频一区二区三区欧美 | 国产精品免费久久| 91精品国产一区二区三区蜜臀| 国产91精品在线观看| 亚洲国产成人av好男人在线观看| 久久久精品黄色| 欧美理论在线播放| 波多野结衣中文一区| 免费成人美女在线观看.| 亚洲欧美偷拍三级| 久久精品亚洲麻豆av一区二区 | 51精品久久久久久久蜜臀| 国产69精品久久777的优势| 视频在线在亚洲| 国产精品美日韩| 久久久久99精品一区| 91精品免费在线| 91日韩在线专区| 国产成人av一区二区三区在线 | 紧缚奴在线一区二区三区| 亚洲激情自拍视频| 国产精品二区一区二区aⅴ污介绍| 日韩欧美成人激情| 欧美顶级少妇做爰| 91久久精品国产91性色tv| 成人国产精品免费观看视频| 狠狠色狠狠色综合系列| 日本一不卡视频| 亚洲123区在线观看| 亚洲一级电影视频| 一区二区三区精品| 亚洲日本va午夜在线影院| 中文字幕国产一区| 中国av一区二区三区| 久久久久久久久久久99999| 欧美变态tickling挠脚心| 欧美另类z0zxhd电影| 4438成人网| 欧美一二三四区在线| 91精品中文字幕一区二区三区| 欧美日韩在线精品一区二区三区激情| av综合在线播放| 99国产欧美另类久久久精品| 国产寡妇亲子伦一区二区| 国产综合色产在线精品| 国模少妇一区二区三区| 国产在线不卡一区| 国产精品综合一区二区| 国产精品99久久久| 成人国产精品免费观看视频| av男人天堂一区| 一本大道综合伊人精品热热 | 成人免费在线观看入口| 最新成人av在线| 亚洲综合成人在线| 亚洲国产精品久久久久秋霞影院| 午夜精品在线视频一区| 日韩va欧美va亚洲va久久| 老司机精品视频导航| 韩国欧美国产1区| 成人自拍视频在线| 色哟哟一区二区| 欧美日韩国产高清一区| 日韩欧美自拍偷拍| 国产精品美女久久久久久2018| 亚洲欧美日韩在线播放| 五月天婷婷综合| 经典三级视频一区| 99久久久国产精品免费蜜臀| 在线观看av一区| 欧美成人欧美edvon| 欧美激情综合在线| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲成人一区在线| 国产麻豆视频一区| 色先锋久久av资源部| 欧美一区二区三区视频在线观看| 久久久久久夜精品精品免费| 亚洲欧美日韩国产成人精品影院| 偷拍一区二区三区| 成人性生交大合| 欧美日韩国产区一| 欧美高清在线一区| 日韩在线一二三区| 99久久精品情趣| 日韩精品资源二区在线| 综合电影一区二区三区| 免费高清成人在线| 欧美亚洲综合网| 久久精品一区二区三区四区| 亚洲成人av电影在线| 成人一级片网址| 日韩一卡二卡三卡| 一区二区三区四区在线| 国产乱人伦精品一区二区在线观看| 日本高清不卡视频| 国产欧美综合在线观看第十页| 亚洲国产精品久久久久婷婷884| 国产成人一级电影| 日韩欧美一级精品久久| 一区二区三区不卡视频| 国产成人精品一区二区三区四区| 91精品国产一区二区三区蜜臀| 日韩一区在线看| 国产美女精品在线| 欧美成人高清电影在线| 亚洲电影一区二区| 色综合久久精品| 中文字幕第一区第二区| 国产精品资源网| 欧美不卡一区二区三区四区| 天天射综合影视| 在线欧美小视频| 亚洲色图色小说| 丁香激情综合五月| 国产亚洲精品久| 久久99精品一区二区三区| 欧美日韩国产色站一区二区三区| 亚洲伦理在线免费看| 97国产精品videossex| 国产精品无遮挡| 大尺度一区二区|