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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 4096.asm

?? 電壓控制程序,符合各種設(shè)備需要,核心程序,IBm專屬
?? ASM
字號(hào):
//======================================================
// 文件名稱:	4096.asm
// 功能描述:   SPR4096的讀寫(xiě)、擦除 
// 完成日期:   2005-10-25
//======================================================
.DEFINE		P_IOB_Data				0x7005
.DEFINE		P_IOB_Buffer			0x7006
.DEFINE		P_IOB_Dir				0x7007
.DEFINE		P_IOB_Attrib			0x7008
.DEFINE		P_SystemClock			0x7013
//	Serial	functions control registers
.DEFINE		P_SIO_Data				0x701A
.DEFINE		P_SIO_Addr_Low			0x701B
.DEFINE		P_SIO_Addr_Mid			0x701C
.DEFINE		P_SIO_Addr_High			0x701D
.DEFINE		P_SIO_Ctrl				0x701E
.DEFINE		P_SIO_Start				0x701F
.DEFINE		P_SIO_Stop				0x7020

.DEFINE 	C_SIOCLOCK           		0x0010     	// CPUCLOCK/8
.DEFINE		B_Busy						0x80

.CONST 		C_Program_Time			 	= 60		//60us
.CONST 		C_SectorErase_Time		 	= 400		//60us*400 = 24ms
.CONST 		C_MassErase_Time			= 1166		//60us*1166 = 70ms

.CODE
//======================================================
// 函數(shù)名稱:	_SP_SIOInitial
// 實(shí)現(xiàn)功能:    SIO初始化
// 入口參數(shù):   無(wú)
// 出口參數(shù):   無(wú)
// 破壞寄存器:  r1
//======================================================
.PUBLIC		_SP_SIOInitial;
_SP_SIOInitial:	.PROC
		 	r1  =  0x0098;    		 			//系統(tǒng)時(shí)鐘設(shè)定,Fosc = 49MHz 
		 	[P_SystemClock]  =  r1;
			r1  =  0x803;						//IOB0:SCK,IOB1:SDA,IOB11:CF7
			[P_IOB_Dir]  =  r1;
			[P_IOB_Attrib]  =  r1;			
			[P_IOB_Buffer]  =  r1;			
		 	retf
.ENDP

//======================================================
// 函數(shù)名稱:	_SP_SIOSendAByte
// 實(shí)現(xiàn)功能:    往SPR4096寫(xiě)入一個(gè)Byte的數(shù)據(jù)
// 入口參數(shù):   ulAddr為寫(xiě)入的地址,uiData為寫(xiě)入的數(shù)據(jù)
// 出口參數(shù):   無(wú)
// 破壞寄存器:  r1
//======================================================
.PUBLIC _SP_SIOSendAByte;
_SP_SIOSendAByte: .PROC
F_SIOSendAByte:
		    push bp,bp to [SP];
		    bp  =  SP + 1;
			r1  =  [bp+3];
		    [P_SIO_Addr_Low] = r1;        		// FLASH低地址
		    r1 = r1 lsr 4;         		
		    r1 = r1 lsr 4;
		    [P_SIO_Addr_Mid] = r1; 				// FLASH中地址
		    r1  =  [bp+4];                
		    r1 = r1&0x0007;  					// FLASH高地址
		    [P_SIO_Addr_High] = r1;
	        r1 = 0x00C3+C_SIOCLOCK;
	        [P_SIO_Ctrl] = r1;        			// clk = CPUclk/8, 24位地址 
	        [P_SIO_Start] = r1;       			// 寫(xiě)模式使能
	        r1  =  [bp+5];
	        [P_SIO_Data] = r1;        			// 傳輸數(shù)據(jù)
L_WaitSIOSendReady:
	        r1 = [P_SIO_Start];
	        test    r1,B_Busy
	        jnz     L_WaitSIOSendReady
	        [P_SIO_Stop] = r1;            		// 禁止寫(xiě)模式
	        call  F_Delay_Program_Time
	        pop bp,bp from [SP];
	        retf;
.ENDP;


//======================================================
// 函數(shù)名稱:	_SP_SIOReadAByte
// 實(shí)現(xiàn)功能:    從SPR4096讀出一個(gè)Byte的數(shù)據(jù)
// 入口參數(shù):   ulAddr為讀出的地址
// 出口參數(shù):   讀出的數(shù)據(jù)
// 破壞寄存器:  r1,r2,r3
//======================================================
.PUBLIC _SP_SIOReadAByte;
_SP_SIOReadAByte: .PROC
F_SIOReadAByte:
	        push bp,bp to [SP];
	        bp  =  SP + 1;
	        r1  =  [bp+3];
	        [P_SIO_Addr_Low] = r1; 				// FLASH低地址
	        r1 = r1 lsr 4;
	        r1 = r1 lsr 4;
	        [P_SIO_Addr_Mid] = r1; 				// FLASH中地址
	        r1  =  [bp+4];                
	        r1 = r1&0x0007;  					// FLASH高地址
	        [P_SIO_Addr_High] = r1;
	        r1 = 0x0083;
	        [P_SIO_Ctrl] = r1;            		// clk = CPUclk/16, 24位地址
	        [P_SIO_Start] = r1;           		// 讀模式使能
	        r2 = [P_SIO_Data];            		// 清buffer
L_WaitSIOReadReady1:
	        r1 = [P_SIO_Start];
	        test    r1,B_Busy
	        jnz     L_WaitSIOReadReady1
	        r1 = [P_SIO_Data];          		// 讀數(shù)據(jù)
L_WaitSIOReadReady2:               
	        r2 = [P_SIO_Start];
	        test    r2,B_Busy
	        jnz     L_WaitSIOReadReady2
	        [P_SIO_Stop] = r2;            		// 禁止讀模式
	        pop bp,bp from [SP];
	        retf;
.ENDP;

//======================================================
// 函數(shù)名稱:	_SP_SIOSendAWord
// 實(shí)現(xiàn)功能:    往SPR4096寫(xiě)入一個(gè)Word的數(shù)據(jù)
// 入口參數(shù):   ulAddr為寫(xiě)入的地址,uiData為寫(xiě)入的數(shù)據(jù)
// 出口參數(shù):   無(wú)
// 破壞寄存器:  r1,r2,r3
//======================================================
.PUBLIC _SP_SIOSendAWord;
_SP_SIOSendAWord: .PROC
F_SIOSendAWord:
	        push bp,bp to [SP];
	        bp  =  SP + 1;
	        r1 = 0x00C3+C_SIOCLOCK;
	        [P_SIO_Ctrl] = r1;            		// clk = CPUclk/8, 24位地址
	        r1  =  [bp+3];
	        [P_SIO_Addr_Low] = r1; 				// FLASH低地址
	        r1 = r1 lsr 4;
	        r1 = r1 lsr 4;
	        [P_SIO_Addr_Mid] = r1; 				// FLASH中地址
	        r1  =  [bp+4];                
	        r1 = r1&0x0007;  					// FLASH高地址
	        [P_SIO_Addr_High] = r1;
        
	        [P_SIO_Start] = r1;           		// 寫(xiě)模式使能
	        r1  =  [bp+5];
	        [P_SIO_Data] = r1;            		// 傳輸數(shù)據(jù),低字節(jié)
L_WaitSIOSendReadyLB:
	        r1 = [P_SIO_Start];
	        test    r1,B_Busy
	        jnz     L_WaitSIOSendReadyLB
	      
	        [P_SIO_Stop] = r1;            		// 禁止寫(xiě)模式
	        call  F_Delay_Program_Time 
	
	         r1  =  [bp+3];
	         r1+ = 1;
	        [P_SIO_Addr_Low] = r1; 				// FLASH低地址
	             
	        [P_SIO_Start] = r1;          	 	// 寫(xiě)模式使能
	        r1 = [bp+5]; 
	        r1 = r1 lsr 4;         		
	        r1 = r1 lsr 4;
	        [P_SIO_Data] = r1;            		// 傳輸數(shù)據(jù),高字節(jié)
L_WaitSIOSendReadyHB:
        r1 = [P_SIO_Start];
        test    r1,B_Busy
        jnz     L_WaitSIOSendReadyHB
        [P_SIO_Stop] = r1;            			// 禁止寫(xiě)模式
		call  F_Delay_Program_Time 
		pop bp,bp from [SP];
        retf;
.ENDP;


//======================================================
// 函數(shù)名稱:	_SP_SIOReadAWord
// 實(shí)現(xiàn)功能:    從SPR4096讀出一個(gè)Word的數(shù)據(jù)
// 入口參數(shù):   ulAddr為讀出的地址
// 出口參數(shù):   讀出的數(shù)據(jù)
// 破壞寄存器:  r1,r2,r3,r4
//======================================================
.PUBLIC _SP_SIOReadAWord;
_SP_SIOReadAWord: .PROC
F_SIOReadAWord:
	        push bp,bp to [SP];
	        bp  =  SP + 1;
	        r4 = 0x00FF;
	        r1  =  [bp+3];
	        [P_SIO_Addr_Low] = r1; 				// FLASH低地址
	        r1 = r1 lsr 4;
	        r1 = r1 lsr 4;
	        [P_SIO_Addr_Mid] = r1; 				// FLASH中地址
	        r1  =  [bp+4];                
	        r1 = r1&0x0007;  					// FLASH高地址
	        [P_SIO_Addr_High] = r1;

	        r1 = 0x0083;  							
	        [P_SIO_Ctrl] = r1;           		// clk = CPUclk/16, 24 位地址
	        [P_SIO_Start] = r1;       			// 讀模式使能
	        r2 = [P_SIO_Data];          		// 清buffer
L_WaitSIOReadReady1LB:
	        r1 = [P_SIO_Start];
	        test    r1,B_Busy
	        jnz     L_WaitSIOReadReady1LB
	        
	        r2 = r4&[P_SIO_Data];          		// 讀數(shù)據(jù),低字節(jié)
L_WaitSIOReadReady2LB:               
	        r1 = [P_SIO_Start];
	        test    r1,0x0080
	        jnz     L_WaitSIOReadReady2LB
	        
	        r3 = r4&[P_SIO_Data];          		// 讀數(shù)據(jù),高字節(jié)

L_WaitSIOReadReady2HB:               
	        r1 = [P_SIO_Start];
	        test    r1,B_Busy
	        jnz     L_WaitSIOReadReady2HB
	       
	        [P_SIO_Stop] = r1;             		// 禁止讀模式
	 
	        r3 = r3 lsl 4;     			 
	        r1 = r3 lsl 4;
	        r1| = r2;         			 		// r1 存放的是讀出的數(shù)據(jù)
	        pop bp,bp from [SP];
	        retf;
.ENDP;


//======================================================
// 函數(shù)名稱:	_SP_SIOMassErase
// 實(shí)現(xiàn)功能:    擦除SPR4096的所有扇區(qū)
// 入口參數(shù):   無(wú)
// 出口參數(shù):   無(wú)
// 破壞寄存器:  r1
//======================================================
.PUBLIC _SP_SIOMassErase;
_SP_SIOMassErase: .PROC
F_SIOMassErase:
	        push r1,r2 to [sp];
	        r1 = 0x00C0+C_SIOCLOCK;
	        [P_SIO_Ctrl] = r1;            	// clk = CPUclk/8, 16位地址
	        r2 = 0x0000;
	        [P_SIO_Addr_Low] = r2; 			// FLASH低地址
	        r2 = 0x00C0;
	        [P_SIO_Addr_Mid] = r2; 			// FLASH中地址
	        r2 = 0x00C0;
	       	[P_SIO_Addr_High] = r2; 
	        [P_SIO_Start] = r1;           	// 寫(xiě)模式使能
	        r1 = 0;                       	// A7~A0  =  0
	        [P_SIO_Data] = r1;            	// 傳輸數(shù)據(jù)

L_WaitSIOSendReadyMass:
	        r1 = [P_SIO_Start];
	        test    r1,B_Busy
	        jnz     L_WaitSIOSendReadyMass
			[P_SIO_Stop] = r1;
	        call    F_Delay_MassErase_Time
	        pop r1,r2 from [sp];
	        retf;
.ENDP;

//======================================================
// 函數(shù)名稱:	_SP_SIOSectorErase
// 實(shí)現(xiàn)功能:    擦除SPR4096的一個(gè)扇區(qū)
// 入口參數(shù):   uiSector,為扇區(qū)的編號(hào),0~255可選
// 出口參數(shù):   無(wú)
// 破壞寄存器:  r1,r2
//======================================================
.PUBLIC _SP_SIOSectorErase;
_SP_SIOSectorErase: .PROC
SP_SIOSectorErase:
	        push bp,bp to [SP];
	        bp  =  SP + 1;
	 
	        r1  =  [bp+3];
	        r1 = r1&0x00ff;
	        r1 = r1 lsl 3;
	        r1 = r1|0x8000;
	        [P_SIO_Addr_Low] = r1; 			// FLASH低地址 ;給 A15 and A10
	        r1 = r1 lsr 4;
	        r1 = r1 lsr 4;
	        [P_SIO_Addr_Mid] = r1; 			// FLASH中地址 ;給 A16
	        r1 = 0x00C0+C_SIOCLOCK;
	        [P_SIO_Ctrl] = r1;        		// clk = CPUclk/8, 16位地址
	        [P_SIO_Start] = r1;       		// 寫(xiě)模式使能
	        r1 = 0;                   		// A7~A0  =  0
	        [P_SIO_Data] = r1;        		// 傳輸數(shù)據(jù)

L_WaitSIOSendReadyPage1:
	        r1 = [P_SIO_Start];
	        test    r1,B_Busy
	        jnz     L_WaitSIOSendReadyPage1
	        [P_SIO_Stop] = r1;        
	        call    F_Delay_SectorErase_Time
	        pop bp,bp from [SP];
	        retf;
.ENDP;



//======================================================
// 函數(shù)名稱:	F_Delay_MassErase_Time
// 實(shí)現(xiàn)功能:    擦除全部扇區(qū)的延時(shí)
// 入口參數(shù):   無(wú)
// 出口參數(shù):   無(wú)
// 破壞寄存器:  r2
//======================================================
.PUBLIC F_Delay_MassErase_Time;
F_Delay_MassErase_Time:	.PROC
			r2 = C_MassErase_Time;		
?L_Wait_MassErase_Time_Over:							       
			call	F_Delay_Program_Time;
			r2- = 1;						
			jnz ?L_Wait_MassErase_Time_Over;		
			retf;						
.ENDP

//======================================================
// 函數(shù)名稱:	F_Delay_SectorErase_Time
// 實(shí)現(xiàn)功能:    擦除一個(gè)扇區(qū)的延時(shí)
// 入口參數(shù):   無(wú)
// 出口參數(shù):   無(wú)
// 破壞寄存器:  r2
//======================================================
.PUBLIC F_Delay_SectorErase_Time;
F_Delay_SectorErase_Time: .PROC
			r2 = C_SectorErase_Time;				//6	
?L_Wait_SectorErase_Time_Over:							       
			call	F_Delay_Program_Time;
			r2- = 1;								//3					
			jnz ?L_Wait_SectorErase_Time_Over;		//5	
			retf;						
.ENDP

//======================================================
// 函數(shù)名稱:	F_Delay_Program_Time
// 實(shí)現(xiàn)功能:    寫(xiě)入一個(gè)Byte的延時(shí)
// 入口參數(shù):   無(wú)
// 出口參數(shù):   無(wú)
// 破壞寄存器:  r1
//======================================================
.PUBLIC F_Delay_Program_Time;
F_Delay_Program_Time: .PROC
			r1 = C_Program_Time;					//6
?L_Wait_Program_Time_Over:							//52cycle,1us @ 49Mhz       
			nop;									//4
			nop;									//4
			nop;									//4
			nop;									//4
			nop;									//4
			nop;									//4
			nop;									//4
			nop;									//4
			nop;									//4
			nop;									//4
			nop;									//4
			nop;									//4
			nop;									//4
			r1- = 1;								//3
			jnz ?L_Wait_Program_Time_Over;			//5
			retf;									//12
.ENDP

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡不码高清免费观看| 午夜精品爽啪视频| 麻豆国产欧美日韩综合精品二区 | 国产精品每日更新| 国产乱人伦精品一区二区在线观看| 精品国产伦一区二区三区免费| 午夜欧美2019年伦理| 亚洲午夜视频在线| 精品对白一区国产伦| 日韩欧美国产一区在线观看| 激情小说欧美图片| 欧美国产一区二区| 欧美精品日韩精品| 国产在线日韩欧美| 国产精品性做久久久久久| 福利一区福利二区| 爽好多水快深点欧美视频| 国产农村妇女精品| 欧美日韩亚洲综合在线| 欧美精品视频www在线观看| 国产亚洲一区二区三区四区| 国产一区二区三区四区五区入口| 亚洲人被黑人高潮完整版| 欧美日韩久久久久久| 国产传媒欧美日韩成人| 亚洲观看高清完整版在线观看| 亚洲一区二区综合| 亚洲欧洲av另类| 精品久久久久99| 91精品婷婷国产综合久久性色 | 日韩理论片中文av| 欧美成人性战久久| 国产精品久久久久影院| 欧美电视剧在线看免费| 久久精品一二三| 一区二区三区四区亚洲| 中文字幕乱码亚洲精品一区| 亚洲视频一区在线| 美女一区二区在线观看| 波多野结衣欧美| 奇米888四色在线精品| 国产成人精品一区二区三区网站观看| 99免费精品在线观看| 69堂精品视频| 国产精品高潮呻吟久久| 人人超碰91尤物精品国产| 99久久伊人网影院| 美女精品自拍一二三四| 91麻豆国产精品久久| 国产精品综合久久| 色婷婷av久久久久久久| 成人avav影音| 91在线观看污| 亚洲男人天堂av| 国产精品一区在线观看你懂的| 91美女片黄在线观看91美女| 久久久久久久综合日本| 久久精品亚洲乱码伦伦中文| 亚洲国产aⅴ成人精品无吗| 99精品久久久久久| 91无套直看片红桃| 欧美精品一区二区三区在线| 日本午夜一本久久久综合| 精品一区二区三区视频在线观看| 国产永久精品大片wwwapp| 欧美男生操女生| 亚洲综合激情另类小说区| 成人av电影在线观看| 中文字幕的久久| 韩国理伦片一区二区三区在线播放 | 精品亚洲免费视频| 日韩一区二区三区三四区视频在线观看 | 91美女片黄在线观看91美女| 国产精品网站在线观看| 国产白丝精品91爽爽久久| 精品日韩在线观看| 美女被吸乳得到大胸91| 欧美一区二区免费观在线| 久久精品夜色噜噜亚洲aⅴ| 精品中文字幕一区二区小辣椒| 欧美综合在线视频| 欧美电视剧在线看免费| 国产一区欧美二区| 国产欧美一区二区在线| 欧美在线免费视屏| 亚洲第一av色| 国产一区二区三区黄视频 | 日韩精品欧美精品| 91精品国产一区二区人妖| 日韩中文字幕麻豆| 91精品国产一区二区| 国内精品免费在线观看| 欧美激情一区三区| 色综合天天做天天爱| 精品污污网站免费看| 日韩精品电影在线观看| 精品处破学生在线二十三| 国产一区91精品张津瑜| 最新高清无码专区| 欧美性受xxxx| 日本一区二区视频在线| 成人app网站| 性做久久久久久| 国产欧美日韩麻豆91| 亚洲一区二区四区蜜桃| 日韩亚洲欧美一区| 国产精品小仙女| 亚洲高清免费在线| 综合久久久久综合| 欧美一区二区在线不卡| 国产91丝袜在线播放| 亚洲综合色成人| 久久亚洲捆绑美女| 亚洲午夜一区二区三区| 欧美人与性动xxxx| 国产aⅴ综合色| 午夜精品一区二区三区电影天堂| 久久久久久夜精品精品免费| 色综合久久久久综合体桃花网| 日韩在线一区二区三区| 国产精品热久久久久夜色精品三区| 欧洲国产伦久久久久久久| 激情五月播播久久久精品| 一区二区三区自拍| 久久久精品欧美丰满| 日本电影欧美片| 亚洲男人都懂的| 久久久久久麻豆| 欧美高清精品3d| 色婷婷综合在线| 成人一区在线看| 亚洲欧美一区二区三区国产精品| 欧美日韩中文一区| 91福利精品视频| 成人理论电影网| 国产一区久久久| 蜜芽一区二区三区| 性久久久久久久久久久久 | 国产精品全国免费观看高清| 91社区在线播放| 亚洲成人动漫精品| 欧美精品一区视频| 粉嫩欧美一区二区三区高清影视| 国产女人18水真多18精品一级做| 91在线码无精品| 视频一区在线视频| 国产欧美日韩在线看| 色综合天天综合| 日本麻豆一区二区三区视频| 久久先锋影音av| 欧美一区二区视频在线观看2022 | 成人爽a毛片一区二区免费| 午夜不卡在线视频| 亚洲综合色自拍一区| 综合av第一页| 亚洲精品国产第一综合99久久| 国产精品一区2区| 韩国精品主播一区二区在线观看 | 日韩精品一区二| 日韩一区二区在线播放| 欧美一级二级三级乱码| 日韩欧美的一区| 欧美成人猛片aaaaaaa| 日韩精品一区二区三区老鸭窝 | 欧美日韩国产精品自在自线| 色伊人久久综合中文字幕| 成人黄页在线观看| 波多野结衣中文字幕一区| 91精品福利在线一区二区三区 | 国产日韩精品一区二区三区 | 亚洲成人动漫一区| 久久国产精品第一页| 久久久电影一区二区三区| 久久久久久久电影| 中文字幕一区二区不卡| 一级做a爱片久久| 美女一区二区久久| 国产成人精品网址| 欧美综合视频在线观看| 日韩免费高清视频| 国产精品高潮呻吟| 日韩av不卡在线观看| 成人v精品蜜桃久久一区| 欧美三日本三级三级在线播放| 欧美成人猛片aaaaaaa| 1024精品合集| 欧美aaaaaa午夜精品| 99re这里都是精品| 日韩亚洲欧美高清| 亚洲欧美经典视频| 国产精品77777竹菊影视小说| 麻豆91精品视频| 成人激情文学综合网| 欧美日韩久久久一区| 久久久国产综合精品女国产盗摄| 国产精品福利电影一区二区三区四区| 亚洲日穴在线视频| 国产尤物一区二区| 欧美乱妇20p| 中文字幕一区二区三中文字幕|