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

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

?? init.c

?? 《虛擬機的設計與實現c/cpp》(win32平臺)源碼 好東西大家熟知不多說
?? C
字號:
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+                                                                   +
+ init.c - loads bytecode off of disk and into physical memory    +
+                                                                   +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ macros                                                            + 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

#define	APPLICATION		0xDEED	/* identifies an executable file (magic number) */

/*#define DBG_INIT		1*/

#ifdef DBG_INIT
#define DBG_INIT0(str);				printf("initHEC(): "); printf(str);
#define DBG_INIT1(str,arg1);		printf("initHEC(): "); printf(str,arg1);
#define DBG_INIT2(str,arg1,arg2);	printf("initHEC(): "); printf(str,arg1,arg2);
#define PRINT_SYM_TBL();			printDebugData(&debugData);	
#else
#define DBG_INIT0(str);
#define DBG_INIT1(str,arg1);
#define DBG_INIT2(str,arg1,arg2); 
#define PRINT_SYM_TBL();	
#endif	

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
+ public prototypes                                                 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

U1 initHEC(struct CmdLine cl);

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
+ function definitions                                              +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

/*
	init execution environment ( same way BIOS would boot a PC )
	1) open executable and read header and debug data
	2) validate header data
	3) user header data to allocate RAM and init registers ( 4GB limit imposed here )
	4) load bytecode into RAM[]
*/

U1 initHEC(struct CmdLine cl)
{
	U8 fileSize;			/* size of bytecode file in bytes */
	FILE *fptr;				/* pointer to open file */

	struct HeaderRec hr;	/*header read from file*/

	U8 bytecodeStart;		/*byte offsets into executable file*/
	U8 bytecodeEnd;

	U8 exec_bytes;			/* bytes in bytecode section of RAM[] */
	U8 total_bytes;			/* total bytes allocated for RAM[] */
	U8 free_bytes;			/* available physical RAM */

	U8 index;				/*index into file*/
	U8 i;					/*index into RAM[]*/
	int read_byte;		

	/*1) open executable and read header and debug data */

	fileSize = getFileSize(cl.binaryFile);

	if(fileSize == 0)
	{
		ERROR0_LVL2("initHEC(): executable has zero size");
		return(FALSE);	
	}

	if((fptr=fopen(cl.binaryFile,"rb"))== NULL)
	{
		ERROR1_LVL2("initHEC(): cannot open %s",cl.binaryFile);
		return(FALSE);
	}

	DBG_INIT0("populate symbol table---------------------\n");
	populateDebugData(&hr,&debugData,fptr);
	PRINT_SYM_TBL();
	DBG_INIT0("end symbol table population---------------\n");

	DBG_INIT0("finished reading header and symbol table\n");
	DBG_INIT1("magic number=%X\n",hr.magic);
	DBG_INIT1("symbol table size=%lu\n",hr.szSymTbl);
	DBG_INIT1("string table size=%lu\n",hr.szStrTbl);
	DBG_INIT1("bytecode table size=%lu\n",hr.szByteCode);

	/*2) validate header data */

	if(hr.magic!=(U2)APPLICATION)
	{
		ERROR0_LVL2("initHEC(): file not HEC executable");
		FCLOSE(fptr);
		return(FALSE);
	}

	if(hr.szByteCode==0)
	{
		ERROR1_LVL2("initHEC(): no bytecode in %s",cl.binaryFile);
		FCLOSE(fptr);
		return(FALSE);
	}

	/*3) user header data to allocate RAM and init registers*/
	
	bytecodeStart = SIZE_HEADER + hr.szSymTbl + hr.szStrTbl;
	bytecodeEnd = (bytecodeStart+hr.szByteCode)-1;

	DBG_INIT1("bytecodeStart in file=%lu\n",bytecodeStart);
	DBG_INIT1("bytecodeEnd in file=%lu\n",bytecodeEnd);

	exec_bytes = ( bytecodeEnd - bytecodeStart ) + 1;

	total_bytes = exec_bytes+
		         (cl.heapRequest*1024)+
				 (cl.stackRequest*1024);

	free_bytes = getAvailableMemory();

	if(total_bytes > free_bytes)
	{
		ERROR0_LVL2("initHEC(): not enough memory to init runtime");
		FCLOSE(fptr);
		return(FALSE);
	}

	DBG_INIT1("available physical RAM= %lu\n", free_bytes );
    DBG_INIT1("file size= %lu\n", fileSize );
	DBG_INIT1("size of bytecode in file= %lu\n", exec_bytes );
	DBG_INIT1("heap bytes= %lu\n", cl.heapRequest*1024 );
	DBG_INIT1("stack bytes= %lu\n", cl.stackRequest*1024 );
	DBG_INIT1("total required bytes= %lu\n", total_bytes );

	/* we're legal, so can allocate RAM  */

	printf("allocating %lu bytes\n",total_bytes); 

	/* U4 size limit is imposed here!!!! */

	RAM = ( U1* )malloc((U4)total_bytes); 

	/*
		now set up registers
		
		memory layout:  [0 -> $BE] [$HS -> $HE] [$SS -> $TOP]
	*/

	DBG_INIT0("setting up registers\n");

	R[$IP]=0;
	R[$SP]=total_bytes-1;
	R[$FP]=0;
	R[$BE]=exec_bytes-1;

	R[$HS]=exec_bytes;
	R[$HE]=exec_bytes+(cl.heapRequest*1024)-1;

	R[$SS]=exec_bytes+(cl.heapRequest*1024);
	R[$TOP]=total_bytes-1; 

	appMetaData.fileSize = fileSize;
	appMetaData.szSymTbl=hr.szSymTbl;
	appMetaData.szStrTbl=hr.szStrTbl;
	appMetaData.szByteCode=hr.szByteCode;
	appMetaData.bCodeFileStart=bytecodeStart;
	appMetaData.bCodeFileEnd=bytecodeEnd;
	appMetaData.heapSize = cl.heapRequest*1024;
	appMetaData.stackSize= cl.stackRequest*1024;
	appMetaData.ram = total_bytes;

	/*4) load bytecode into RAM[] */

	/*load bytecode into RAM*/

	rewind(fptr);	/* rewind to start of file */

	/* 
	note: fseek starts index at zero, so our scheme is correct
	note: (U4) cast, limits us to 4GB file
	*/

	if(fseek(fptr,(U4)bytecodeStart,SEEK_SET))
	{
		ERROR0_LVL2("initHEC(): could not find bytecode start");
		return(FALSE);
	}

	i=0;
	for(index=bytecodeStart;index<=bytecodeEnd;index++)
	{
		read_byte = fgetc(fptr);
		if(read_byte==EOF)
		{
			ERROR0_LVL2("initHEC(): error reading bytecode file");
			FCLOSE(fptr);
			return(FALSE);
		}
		RAM[i]=(U1)read_byte;
		i++;
	}

	FCLOSE(fptr);
	return(TRUE);

}/*end initHEC*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产经典欧美精品| 日韩欧美国产麻豆| 国产精品传媒在线| 国产成人啪午夜精品网站男同| 欧美在线观看18| 国产精品不卡一区| 不卡的电影网站| 亚洲视频一区在线| 99久久99久久精品免费观看 | 国产成a人亚洲精品| xnxx国产精品| 国产精品一区二区视频| 国产日韩成人精品| 国产aⅴ综合色| 亚洲女同一区二区| 欧美亚一区二区| 婷婷成人激情在线网| 4438x亚洲最大成人网| 美腿丝袜亚洲一区| 国产亚洲精品bt天堂精选| 国产成+人+日韩+欧美+亚洲| 亚洲欧美综合另类在线卡通| 色哟哟精品一区| 亚洲电影视频在线| 欧美一区二区三区四区久久| 麻豆精品久久久| 1024亚洲合集| 91精品国产全国免费观看| 国产精品99久久久久久宅男| 亚洲欧美怡红院| 精品日韩99亚洲| 不卡的电视剧免费网站有什么| 亚洲激情综合网| 国产片一区二区| 91精品国产高清一区二区三区| 国产成人免费av在线| 亚洲一级二级在线| 国产精品午夜在线| 欧美日韩亚洲高清一区二区| 国产一区二区免费视频| 亚洲v中文字幕| 国产精品国产三级国产专播品爱网 | 精品国产区一区| 欧美视频一区二区三区| 99re这里只有精品首页| 美腿丝袜亚洲色图| 亚洲成人综合网站| 亚洲精品免费在线| 自拍偷拍国产亚洲| 日韩一区和二区| 欧美久久一二三四区| 欧美性大战久久久久久久 | 91啪九色porn原创视频在线观看| 久久99国产精品免费| 日韩不卡一区二区| 青青青爽久久午夜综合久久午夜 | 中文字幕一区二区三| 久久精品人人做人人爽97| 久久一区二区三区四区| 日韩精品一区二区三区视频在线观看| 7777精品伊人久久久大香线蕉完整版| 高清av一区二区| 国产成人免费xxxxxxxx| 成人免费的视频| 成人晚上爱看视频| 色天使色偷偷av一区二区| 色狠狠色狠狠综合| 欧美午夜一区二区三区| 日韩视频免费观看高清完整版 | 午夜久久久久久电影| 日韩中文欧美在线| 国产成人免费视频精品含羞草妖精| 国产a级毛片一区| 欧美人妖巨大在线| 日韩一级大片在线观看| 日本一区二区三区国色天香| 国产精品大尺度| 美国精品在线观看| 国产黄色精品网站| 欧美狂野另类xxxxoooo| 久久综合色8888| 亚洲摸摸操操av| 国产自产v一区二区三区c| 色呦呦国产精品| 国产亚洲欧美中文| 午夜精品久久久久久久| 国产成人在线免费| 91精品国产综合久久小美女 | 日韩一级完整毛片| 中文字幕在线一区| 首页综合国产亚洲丝袜| 99久久精品国产精品久久| 日韩精品一区二区三区在线播放 | 中文字幕一区二区三区精华液 | 丝袜美腿高跟呻吟高潮一区| 国产精品亚洲成人| 日韩一区二区在线免费观看| 亚洲精品国产成人久久av盗摄| 国产成人精品影院| 国产亚洲综合av| 久久精品国产一区二区三区免费看 | 久久97超碰国产精品超碰| 欧美色图天堂网| 亚洲观看高清完整版在线观看| 一本大道久久a久久综合| 亚洲国产精品精华液ab| 国产美女精品在线| 久久久久久99久久久精品网站| 麻豆91免费观看| 精品女同一区二区| 国产成人综合网| 国产精品免费丝袜| 欧美性生活久久| 日韩精品国产精品| 久久久久久久综合色一本| 日日夜夜精品免费视频| 欧美精品黑人性xxxx| 精东粉嫩av免费一区二区三区| 2023国产精华国产精品| 成人的网站免费观看| 欧美精品久久久久久久久老牛影院| 日韩av电影免费观看高清完整版| 91精品欧美久久久久久动漫| 国产高清在线观看免费不卡| 韩国精品一区二区| 日韩一区在线免费观看| 在线免费观看日本欧美| 麻豆91在线播放| 亚洲男人的天堂在线观看| 日韩一区二区三区四区 | 午夜激情久久久| 国产清纯美女被跳蛋高潮一区二区久久w | 色久优优欧美色久优优| 精品一区二区三区在线播放视频 | 97成人超碰视| 精品影视av免费| 亚洲综合色丁香婷婷六月图片| 久久久久久久综合狠狠综合| 欧美无人高清视频在线观看| 国产精品正在播放| 日本在线不卡一区| 亚洲国产成人av| 亚洲免费av在线| 久久久精品蜜桃| 91精品国产一区二区三区香蕉| 色域天天综合网| 91麻豆自制传媒国产之光| 国产成人av一区二区三区在线| 日本不卡一区二区| 日本三级韩国三级欧美三级| 亚洲精品ww久久久久久p站| 国产精品的网站| 亚洲三级理论片| 亚洲少妇30p| 亚洲国产裸拍裸体视频在线观看乱了| 欧美精彩视频一区二区三区| 久久精品视频在线看| 国产日韩欧美制服另类| 国产亚洲精品aa午夜观看| 欧美激情在线一区二区三区| 国产日产欧美一区二区视频| 久久久久久久久久看片| 日韩免费观看高清完整版在线观看| 91 com成人网| 精品电影一区二区| 国产精品九色蝌蚪自拍| 亚洲一区二区偷拍精品| 首页国产丝袜综合| 国产一区91精品张津瑜| 97久久人人超碰| 色av成人天堂桃色av| 欧美一区二区日韩一区二区| 久久久亚洲午夜电影| 国产精品的网站| 六月丁香婷婷色狠狠久久| 国产精品一区二区在线播放| 99久久免费精品高清特色大片| 色婷婷久久一区二区三区麻豆| 91精品国产全国免费观看| 国产亚洲欧美中文| 午夜电影一区二区三区| 国产一区在线观看视频| 欧美性感一区二区三区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲丶国产丶欧美一区二区三区| 久久av资源站| 欧美日韩国产一区二区三区地区| 中文字幕av一区二区三区| 精品一二三四在线| 欧美一激情一区二区三区| 亚洲欧美一区二区三区国产精品 | 国产精品一线二线三线| 91麻豆精品国产| 视频在线观看一区| 欧美高清视频在线高清观看mv色露露十八 | 亚洲成人一二三| 在线免费不卡电影| 国产精品久久久久9999吃药| 美女脱光内衣内裤视频久久网站 | 蜜桃视频一区二区三区在线观看 |