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

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

?? boot.s

?? 沒有開發板也可以學ARM。ucos-ii與ZLG-GUI的GBA移植
?? S
字號:
;/*
;************************************************************************************************************
;**						                        boot.s    		                                           **
;************************************************************************************************************
;*/	
	IMPORT |Image$$RO$$Base|			;// 聲明輸入ROM區中的RO的開始地址
	IMPORT |Image$$RO$$Limit|			;// 聲明輸入ROM區中的RW地址(即:存儲RO代碼最后地址的下一地址)
	IMPORT |Image$$RW$$Base|			;// 聲明輸入RAM區的開始地址
	IMPORT |Image$$RW$$Limit|			;// 聲明輸入零初始化區的開始地址(即:RAM區的最后地址的下一地址)
	IMPORT |Image$$ZI$$Base|			;// 聲明輸入零初始化區的開始地址
	IMPORT |Image$$ZI$$Limit|			;// 聲明輸入零初始化區的末地址的下一地址
    IMPORT  main    					;// 聲明輸入主程序入口地址

EWRAM_START	EQU	0x02000000				;// CPU外部工作RAM
EWRAM_END	EQU	0x02040000-1   			;// (256 Kbytes)
EWRAM_LEN	EQU	EWRAM_END - EWRAM_START+1

IWRAM_START	EQU	0x03000000				;// CPU內部工作RAM(32K)用于儲存程序和數據
IWRAM_END	EQU	0x03008000-1			;// (32 Kbytes)
IWRAM_LEN	EQU	IWRAM_END - IWRAM_START + 1

EWROM_START	EQU	0x08000000              ;// 卡帶記憶體開始地址

ARM_USR_SP	EQU	0x03007F00				;// 用戶堆棧起始地址
ARM_IRQ_SP	EQU	0x03007FA0				;// 普通中斷堆棧起始地址
ARM_SVC_SP	EQU	0x03007FE0				;// 系統調用堆棧起始地址


INTR_VECTOR_ADDR	EQU	0x3008000 - 4   ;// 中斷向量地址 0x3007ffc 

;//模式定義
ARM_USE_MODE	EQU	0X10				
ARM_FIQ_MODE	EQU	0X11
ARM_IRQ_MODE	EQU	0X12    			
ARM_SVC_MODE	EQU	0X13    			
ARM_ABORT_MODE	EQU	0X17
ARM_UNDEF_MODE	EQU	0X1B
ARM_SYS_MODE	EQU	0X1F 
ARM_NOINT		EQU	0XC0
  
;/*
;************************************************************************************************************
;**						                         程序開始		                                           **
;************************************************************************************************************
;*/
    CODE32
	AREA INIT, CODE, READONLY
	ENTRY           ;// 入口
_start				;// 入口
		b	   rom_header_end ;// 跳過程序區域駐留的一些關于游戲的信息
		
Nintendo_Logo
		SPACE 156		;// 任天堂圖標字符數據 (8000004h)

	;// 游戲標題(80000A0h)
		DCB   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
		DCB   0x00,0x00,0x00,0x00

	;// 游戲代碼 (80000ACh) 
	;// 無則全0
		DCB  "MB  "

	;// 制造商代碼 (80000B0h)
		DCB   0x30,0x31
	;// 固定值 (80000B2h)
		DCB   0x96
	;// 主單元代碼:
    ;// 儲存可運行軟件的硬件代碼。  (80000B3h)
		DCB   0x00
	;// 設備類型 (80000B4h)
		DCB   0x00

	;// 未使用(固定)的數據 (7Byte) (80000B5h)

		DCB   0x00,0x00,0x00,0x00,0x00,0x00,0x00

	;// 軟件版本號:
    ;// 儲存ROM版本號 (80000BCh)
		DCB   0x00

	;// 補碼檢查 (80000BDh)
		DCB   0xf0

	;// 校驗和(80000BEh)
		DCB   0x00,0x00

rom_header_end
		b	   start_vector			;// 這個標號在這里是適當的
									;// 作為下面的開始地址
									;// 不要刪除它

;/**********************************************************************
;======================================================================+
;
; The following reserved bytes are used if the code is compiled for
; multiboot mode. It does not hurt anything to leave this header in
; even if the code is not compiled for multiboot. The GBA BIOS will
; auto-patch the first two bytes with 0x03 and 0x01, respectively,
; before running any code if it is executed as multiboot.
;

; The following two bytes are included even for non-multiboot supporting
; builds to guarantee that any generic library code that depends on them
; will still be functional.
;======================================================================+
;***********************************************************************/

	EXPORT	BOOT_METHOD , SLAVE_NUMBER

BOOT_METHOD
		DCB   0	   ;// boot method (0=ROM boot, 3=Multiplay boot)
SLAVE_NUMBER
		DCB   0	   ;// slave # (1=slave#1, 2=slave#2, 3=slave#3)

		DCB   0	   ; reserved
		DCB   0	   ; reserved
		DCD   0	   ; reserved
		DCD   0	   ; reserved
		DCD   0	   ; reserved
		DCD   0	   ; reserved
		DCD   0	   ; reserved
		DCD   0	   ; reserved

;//---------end--------------------------------------------------------+

;/*
;************************************************************************************************************
;**                                          復位                                                          **
;************************************************************************************************************
;*/  
	EXPORT 	 start_vector  ;//輸出復位
	EXTERN   intr_main     ;//聲名輸入intr_main 
	ALIGN
start_vector

;/*
;************************************************************************************************************
;**                                          堆棧初始化                                                    **
;************************************************************************************************************
;*/    
		mov 	r0, #ARM_IRQ_MODE:OR:0x80:OR:0x40 	;// 關中斷
		msr 	CPSR_c, r0							;// 進入IRQ模式
		ldr 	r13, =ARM_IRQ_SP					;// 初始化IRQ模式堆棧指針

		mov 	r0, #ARM_SVC_MODE:OR:0x80:OR:0x40 	;// 關中斷
		msr 	CPSR_c, r0							;// 進入SVC模式
		ldr 	r13, =ARM_SVC_SP					;// 初始化SVC模式堆棧指針

;/*
;************************************************************************************************************
;**                                          初始化應用程序執行環境                                        **
;************************************************************************************************************
;*/
;//確保CPU運行在外部工作RAM
		mov     r0,pc								;// 查詢一下現運行在哪個空間
		cmp		r0,#EWROM_START						;// 是小于 0x08000000 ?
		bls		SkipEWRAMClear  					;// 如果小于, 已運行在外部工作RAM
													;// 如果高于, 運行在 pak ,所以我們需要復制.
;//復制代碼到外部工作RAM
		ldr		r3,=EWRAM_LEN
		ldr		r2,=EWRAM_START
		mov		r6,r2
		ldr		r1,=EWROM_START
		bl		CopyMem			;//調用 CopyMem

;//跳轉到外部工作RAM執行
		bx		r6

SkipEWRAMClear
		ldr 	r0, =|Image$$RO$$Limit| 			;//輸入ROM區中的RW地址(即:存儲RO代碼最后地址的下一地址)
		ldr 	r1, =|Image$$RW$$Base| 				;//RAM區的開始地址
		ldr 	r3, =|Image$$ZI$$Base| 				;//零初始化區的開始地址
		cmp 	r0, r1 								;//比較地址是否相同?
		beq 	%F1
0 		cmp		r1, r3 								;//復制初始化數據
		ldrcc	r2, [r0], #4                        ;//把ROM區中的RW地址中的數據放入寄存器 
		strcc	r2, [r1], #4                        ;//把寄存器中的數據放入RAM區中,放完后,剛好到達ZI區的首地址    
		bcc		%B0
1		ldr 	r1, =|Image$$ZI$$Limit| 			;//零初始化區的末地址的下一地址
		mov 	r2, #0
2 		cmp 	r3, r1 								;//對零初始化區進行零初始化
		strcc 	r2, [r3], #4
		bcc		%B2

        ldr     r1, =INTR_VECTOR_ADDR				;//設置中斷地址
        ldr     r0, =intr_main
        str     r0, [r1]

		mov 	r0, #ARM_SVC_MODE:OR:0x40			;//使能IRQ中斷
		msr 	CPSR_c, r0

        mov 	r0, #ARM_USE_MODE:OR:0x40           ;//使能IRQ中斷
		msr 	CPSR_c, r0							;//進入USE模式
		ldr 	sp, =ARM_USR_SP					    ;//設置USE模式堆棧指針
;/*
;************************************************************************************************************
;**                                              呼叫主應用程序                                            **
;************************************************************************************************************
;*/
		bl		main		;//進入C代碼
;/*
;************************************************************************************************************
;**                                              內存操作                                                  **
;************************************************************************************************************
;*/		
;/**************************************
;--------ClearMem----------------------+
; 內存清零                             |
; r0 = 起始地址     				   |
; r1 = 長度 						   |
;--------------------------------------+
;**************************************/
ClearMem
		mov		r2,#3   		;//確保長度是4的倍數
		add		r1,r1,r2   		 
		bic		r1,r1,r2		

		mov     r2,#0
		cmp		r1,r2
		beq		ClearMX			;//長度為0退出

ClrLoop
		stmia   r0!,{r2}
		sub     r1,r1,#4
		cmp		r1,#0
		bne     ClrLoop
ClearMX
		bx      lr				;// ret
;//---------end of ClearMem------------

;/**************************************
;---------- Copy memory --------------+
; 內存復制                            |
; r1 = 源地址         				  |
; r2 = 目標地址       				  |
; r3 = 長度 						  |
;-------------------------------------+
;**************************************/
CopyMem
		mov     r0,#3 		    ;//確保長度是4的倍數
		add     r3,r3,r0 		
		bic     r3,r3,r0 		
		beq     CIDExit 		;//長度為0退出

CIDLoop
		ldmia   r1!,{r0}
		stmia   r2!,{r0}
		sub     r3,r3,#4
	    cmp		r3,#0
		bne     CIDLoop

CIDExit
		bx      lr			     ;// ret
;//--------- end of CopyMem ------------------

	    END  ;//結束boot.s		  
;/*
;************************************************************************************************************
;** 				                       結束                                                            **
;************************************************************************************************************
*/	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人自拍网| 国产成人精品网址| 狠狠色狠狠色综合系列| 国产一区二区成人久久免费影院 | 精品国产电影一区二区| 国产日韩欧美亚洲| 国产精品国产自产拍高清av王其 | 在线日韩av片| 日韩一级完整毛片| 国产精品二三区| 奇米四色…亚洲| 91亚洲资源网| 精品福利av导航| 亚洲一二三四区| 国产91精品在线观看| 欧美日韩免费高清一区色橹橹 | 国产欧美精品一区二区三区四区 | 国产九色精品成人porny| 欧美写真视频网站| 久久免费电影网| 国产精品久久久久一区二区三区共| 亚洲成人先锋电影| av在线不卡免费看| 久久久99精品免费观看不卡| 日韩综合一区二区| 91老师国产黑色丝袜在线| 2022国产精品视频| 青青草伊人久久| 在线观看国产91| 欧美极品少妇xxxxⅹ高跟鞋| 日本三级亚洲精品| 欧美综合久久久| 自拍偷拍国产精品| 成人h动漫精品一区二区| 久久亚洲精华国产精华液| 美女爽到高潮91| 91精品国产日韩91久久久久久| 中文字幕在线一区| 成人网男人的天堂| 国产日韩欧美不卡| 国产自产2019最新不卡| 在线日韩av片| 亚洲精品视频在线看| www.亚洲激情.com| 欧美高清精品3d| 天天影视网天天综合色在线播放| 在线观看日韩高清av| 亚洲影视资源网| 欧美视频一区二区三区四区| 一区二区三区日韩欧美| 国产一区美女在线| 日本一区二区三区国色天香| 国产成人一级电影| 国产精品美女久久久久av爽李琼| 美脚の诱脚舐め脚责91 | 成人三级在线视频| 久久精品亚洲精品国产欧美kt∨| 另类欧美日韩国产在线| 日韩女优视频免费观看| 国产曰批免费观看久久久| 日本一区二区三区国色天香 | 精品国产免费人成电影在线观看四季| 亚洲成年人影院| 欧美一区二区三级| 狠狠色狠狠色综合日日91app| 久久久久久久久久久黄色| 国产aⅴ综合色| 亚洲欧美偷拍三级| 欧美视频一区二区三区| 免费欧美在线视频| 欧美韩国一区二区| 色呦呦网站一区| 青青草精品视频| 日本一区二区三区久久久久久久久不| av中文字幕不卡| 国产三级精品在线| 欧美综合一区二区| 国产一区二区三区不卡在线观看 | 久久综合色婷婷| 99久久精品国产网站| 香蕉成人啪国产精品视频综合网| 欧美va亚洲va| www.色综合.com| 日本三级韩国三级欧美三级| 久久久综合网站| 欧美中文一区二区三区| 秋霞午夜av一区二区三区| 国产精品丝袜91| 91精品久久久久久蜜臀| 成人免费视频视频| 日韩在线a电影| 欧美激情一区在线观看| 777奇米成人网| 粉嫩绯色av一区二区在线观看| 亚洲品质自拍视频网站| 精品国产自在久精品国产| 91精彩视频在线| 国产福利一区二区三区| 亚洲一区二区三区在线看| 国产人成一区二区三区影院| 欧美裸体bbwbbwbbw| 成人免费福利片| 毛片av中文字幕一区二区| 国产精品久久久久久久久免费丝袜| 欧美一区二区在线视频| 一本久久精品一区二区| 国产91精品在线观看| 麻豆91在线观看| 亚洲国产精品久久不卡毛片| 日韩伦理av电影| 国产欧美日韩麻豆91| 欧美成人性战久久| 欧美三级乱人伦电影| k8久久久一区二区三区| 日韩精品成人一区二区在线| 亚洲乱码国产乱码精品精的特点 | 亚洲欧洲日韩在线| 国产网红主播福利一区二区| 日韩精品一区二区三区四区视频| 欧美亚洲精品一区| 色视频成人在线观看免| 不卡高清视频专区| 国产精品一品二品| 国产美女久久久久| 国产一区 二区 三区一级| 精品伊人久久久久7777人| 石原莉奈在线亚洲三区| 日韩精品亚洲专区| 亚洲国产成人精品视频| 亚洲精品一卡二卡| 亚洲精品视频一区| 亚洲一区二区影院| 亚洲成人一区二区| 日韩国产欧美视频| 美女网站色91| 精品一区二区三区欧美| 麻豆精品蜜桃视频网站| 久久精品国产久精国产爱| 天天操天天综合网| 蜜臀va亚洲va欧美va天堂| 久久精品国产久精国产爱| 国模无码大尺度一区二区三区| 国产精一品亚洲二区在线视频| 国产91精品免费| jvid福利写真一区二区三区| 日本精品视频一区二区三区| 色综合久久中文综合久久97| 成人午夜激情片| 99精品欧美一区二区三区小说 | 99久久er热在这里只有精品66| av色综合久久天堂av综合| 在线中文字幕一区| 欧美精品丝袜中出| 欧美成人精品高清在线播放| 国产日韩高清在线| 亚洲精品免费看| 天天影视涩香欲综合网| 国产乱对白刺激视频不卡| 成人性生交大片免费看视频在线| 99久久免费精品| 欧美精品乱码久久久久久| 久久综合一区二区| 亚洲精选视频在线| 蜜桃av一区二区在线观看| 成人h动漫精品一区二区| 欧美日韩一卡二卡三卡| 2019国产精品| 亚洲国产精品一区二区www| 久久福利资源站| 国产盗摄精品一区二区三区在线| 国产麻豆视频一区| 日韩一区二区在线观看视频播放| 日韩欧美一区二区免费| 日韩一区二区三区电影在线观看| 国产精品乱子久久久久| 午夜久久久久久久久| 丁香婷婷综合激情五月色| 欧美精选一区二区| 国产精品免费视频观看| 美女mm1313爽爽久久久蜜臀| 欧美日韩性生活| 亚洲同性gay激情无套| 国v精品久久久网| 久久久久久一级片| 极品瑜伽女神91| 精品久久久久99| 美国十次了思思久久精品导航| 欧美三级日韩三级| 亚洲第一成人在线| 欧美午夜不卡视频| 亚洲成人精品影院| 欧美日韩一区二区电影| 亚洲成人tv网| 欧美精品一二三| 秋霞电影一区二区| 日韩美女一区二区三区四区| 免费在线观看一区二区三区| 日韩一级片网站| 久久精工是国产品牌吗| 欧美videofree性高清杂交|