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

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

?? linux.c

?? 虛擬機(jī)實(shí)現(xiàn)c/c++,書籍附帶的代碼。
?? C
字號(hào):
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                                   ++  linux.c - this file has linux API native code                    ++                                                                   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*//*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  macros                                                           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/#define S1	signed char#define S2	signed short#define S4	signed long#define S8	signed long long	#define U1	unsigned char#define U2	unsigned short#define U4	unsigned long#define U8	unsigned long long/*	Use ANSI-754 standard for single and double precision floats	single precision = 4 bytes	double precision = 8 bytes*/#define F4	float#define F8	double/* platform-specific I/O ------------------------------------------*/#define PRINT_UREG(rstr,reg)	printf("%-6s=%-21llu",rstr,reg)#define PRINT_SREG(rstr,reg)	printf("%-6s=%-21lld",rstr,reg)#define PRINT_FREG(rstr,reg)	printf("%-6s=%g",rstr,(F4)reg)#define PRINT_DREG(rstr,reg)	printf("%-6s=%g",rstr,(F8)reg)#define pU1(arg)	printf("%u",arg)#define pU2(arg)	printf("%hu",arg)#define pU4(arg)	printf("%lu",arg)#define pU8(arg)	printf("%llu",arg)#define pS1(arg)	printf("%d",arg)#define pS2(arg)	printf("%hd",arg)#define pS4(arg)	printf("%ld",arg)#define pS8(arg)	printf("%lld",arg)#define PRINT_MEM(index)	printf("RAM[%llu]=%u",index,RAM[index])#define rU8(arg)	scanf("%llu",arg)#define fpU8(ptr,arg)	fprintf(ptr,"%llu",arg)#define fpS8(ptr,arg)	fprintf(ptr,"%lld",arg)/* macros below used during reformating ---------------------------*//*	reverse the order of bytes within an array */U1 fb[8];#define FORMAT_WORD(arr,start)	{ fb[0]=arr[start+1];\                                  fb[1]=arr[start];\                                  arr[start]=fb[0];\                                  arr[start+1]=fb[1]; }#define FORMAT_DWORD(arr,start)	{ fb[0]=arr[start+3];\                                  fb[1]=arr[start+2];\								  fb[2]=arr[start+1];\								  fb[3]=arr[start];\                                  arr[start]=fb[0];\                                  arr[start+1]=fb[1];\								  arr[start+2]=fb[2];\								  arr[start+3]=fb[3]; }#define FORMAT_QWORD(arr,start){ fb[0]=arr[start+7];\                                  fb[1]=arr[start+6];\								  fb[2]=arr[start+5];\								  fb[3]=arr[start+4];\								  fb[4]=arr[start+3];\								  fb[5]=arr[start+2];\								  fb[6]=arr[start+1];\								  fb[7]=arr[start];\                                  arr[start]=fb[0];\                                  arr[start+1]=fb[1];\								  arr[start+2]=fb[2];\								  arr[start+3]=fb[3];\								  arr[start+4]=fb[4];\								  arr[start+5]=fb[5];\								  arr[start+6]=fb[6];\								  arr[start+7]=fb[7]; }/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  public prototypes                                                ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/void checkEndian();void printBytes(U1 bytes[], int nbytes);void testConversion();U2 bytecodeToWord(U1 bytes[]);U4 bytecodeToDWord(U1 bytes[]);U8 bytecodeToQWord(U1 bytes[]);F4 bytecodeToFloat(U1 bytes[]);F8 bytecodeToDouble(U1 bytes[]);void wordToBytecode(U2 word, U1 arr[]);void dwordToBytecode(U4 dword, U1 arr[]);void qwordToBytecode(U8 qword, U1 arr[]);void floatToBytecode(F4 flt, U1 arr[]);void doubleToBytecode(F8 dbl, U1 arr[]);U4 getAvailableMemory();U4 getFileSize(char *name);void testNativeFunctions();/* added for assembler */U8 stringToU8(char *str);/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ definitions                                                       ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*//*	Note: bytecode format for numbers must be platform neutral	      ... So we must agree on a convention ahead of time.	Integers - Stored in big-endian ( high byte first ) order, 	           AKA network order			0xDEED1234  = 0xDE  0xED  0x12  0x34						  [0]   [1]   [2]   [3]	Floats - Stored using IEEE 754 format using big-endian order			Intel floating-point values are little endian 			[0 --deciaml part -- 22][23 --exponent-- 30] [31=sign]			byte[0]                                        byte[4]			[0 --decimal part -- 51][52 --exponent-- 62][63=sign]			byte[0]                                        byte[7]			For both, you'll need to convert to and from big-endian	NOTA BENE: should convert values once upon loading application, 	           to avoid redundant computation at runtime*//*-----------------------------------------------------------------*//*	This method checks the current platform's endianess	big-endian		higher-order bytes first ( are at lower mem )	little endian   lower-order bytes first ( are at lower mem )		On Intel Hardware using NT 4.0 we get:	value = 0xDEED1234	machine is LITTLE endian - LOWER order bytes come first	here are the bytes	[0]=0x34 [1]=0x12 [2]=0xED [3]=0xDE*/void checkEndian(){	int i=0xDEED1234;	int j;	unsigned char *buff;	printf("value = %lx\n",i);	buff = (unsigned char*)&i;	if(buff[0]==0x34)	{ 		printf("machine is LITTLE endian - LOWER order bytes come first"); 	}	else	{ 		printf("machine is BIG endian - HIGHER order bytes come first"); 	}	printf("\nhere are the 4 bytes\n");	for(j=0;j<4;j++){ printf(" byte [%d]=%x ",j,buff[j]); }	printf("\n");	return;}/*end checkEndian*//*-----------------------------------------------------------------*//*	Routines below convert bytecode values to native Intel format*/U2 bytecodeToWord(U1 bytes[]){	U2 word;	U1 *buffer;	buffer = (U1*)&word;	buffer[0] = bytes[1];	buffer[1] = bytes[0];	return(word);}/*end bytecodeToWord*/U4 bytecodeToDWord(U1 bytes[]){	U4 dword;	U1 *buffer;	buffer = (U1*)&dword;	buffer[0] = bytes[3];	buffer[1] = bytes[2];	buffer[2] = bytes[1];	buffer[3] = bytes[0];	return(dword);}/*end bytecodeToDWord*/U8 bytecodeToQWord(U1 bytes[]){	U8 qword;	U1 *buffer;	buffer = (U1*)&qword;	buffer[0] = bytes[7];	buffer[1] = bytes[6];	buffer[2] = bytes[5];	buffer[3] = bytes[4];	buffer[4] = bytes[3];	buffer[5] = bytes[2];	buffer[6] = bytes[1];	buffer[7] = bytes[0];	return(qword);}/*end bytecodeToQWord*/F4 bytecodeToFloat(U1 bytes[]){	F4 flt;	U1 *buffer;	buffer = (U1*)&flt;	buffer[0] = bytes[3];	buffer[1] = bytes[2];	buffer[2] = bytes[1];	buffer[3] = bytes[0];	return(flt);}/*end bytecodeToFloat*/F8 bytecodeToDouble(U1 bytes[]){	F8 dbl;	U1 *buffer;	buffer = (U1*)&dbl;	buffer[0] = bytes[7];	buffer[1] = bytes[6];	buffer[2] = bytes[5];	buffer[3] = bytes[4];	buffer[4] = bytes[3];	buffer[5] = bytes[2];	buffer[6] = bytes[1];	buffer[7] = bytes[0];	return(dbl);}/*end bytecodeToDouble*//*-----------------------------------------------------------------*//*Routines below convert Intel values to bytecode format*/void wordToBytecode(U2 word, U1 arr[]){	U1 *buffer;	buffer = (U1*)&word;	arr[0] = buffer[1];	arr[1] = buffer[0];	return;}/*end wordToBytecode*/void dwordToBytecode(U4 dword, U1 arr[]){	U1 *buffer;	buffer = (U1*)&dword;	arr[0] = buffer[3];	arr[1] = buffer[2];	arr[2] = buffer[1];	arr[3] = buffer[0];	return;}/*end dwordToBytecode*/void qwordToBytecode(U8 qword, U1 arr[]){	U1 *buffer;	buffer = (U1*)&qword;	arr[0] = buffer[7];	arr[1] = buffer[6];	arr[2] = buffer[5];	arr[3] = buffer[4];	arr[4] = buffer[3];	arr[5] = buffer[2];	arr[6] = buffer[1];	arr[7] = buffer[0];	return;}/*end qwordToBytecode*/void floatToBytecode(F4 flt, U1 arr[]){	U1 *buffer;	buffer = (U1*)&flt;	arr[0] = buffer[3];	arr[1] = buffer[2];	arr[2] = buffer[1];	arr[3] = buffer[0];	return;}/*end floatToBytecode*/void doubleToBytecode(F8 dbl, U1 arr[]){	U1 *buffer;	buffer = (U1*)&dbl;	arr[0] = buffer[7];	arr[1] = buffer[6];	arr[2] = buffer[5];	arr[3] = buffer[4];	arr[4] = buffer[3];	arr[5] = buffer[2];	arr[6] = buffer[1];	arr[7] = buffer[0];	return;}/*end doubleToBytecode*//*-----------------------------------------------------------------*//*	this prints out the bytes of a datatype*/void printBytes(U1 bytes[], int nbytes){	int i;	for(i=0; i<nbytes; i++){ printf("byte[%u]=%X ",i,(U1)bytes[i]); }	printf("\n");	return;}/*end printBytes*//*-----------------------------------------------------------------*//*	Test native->bytecode and bytecode->native conversion	Take a value		i) print out the value		ii) print out the byte pattern		iii) convert to bytecode and print byte pattern		iv) convert back to native and print out byte pattern		v) print out the value ( should match that from i) )*/void testConversion(){	S2 w;	S4 d;	S8 q;	F4 f;	F8 db;	S1 *b;	S1 b2[2];	S1 b4[4];	S1 b8[8];	w = (S2)0xAB12;	d = 0xCAFEBABE;	q = 0xABABECAB12345678;	f = (F4)1.1e10;	db = 1.2e10;	checkEndian();	printf("\n---------------------------------\n");	printf("\nw=%hx\n",w);	b = (S1 *)&w;	printf("S1s before w: "); printBytes(b,2);	wordToBytecode(w,(U1 *)b2); printf("Bytecode w: "); printBytes(b2,2);	w = bytecodeToWord((U1 *)b2); printf("S1s after w: "); printBytes(b,2);	printf("w=%hx\n",w);	printf("\n---------------------------------\n");	printf("\nd=%x\n",d);	b = (S1 *)&d;	printf("before d: "); printBytes(b,4);	dwordToBytecode(d,(U1*)b4); printf("Bytecode d: "); printBytes(b4,4);	d = bytecodeToDWord((U1*)b4); printf("after d: "); printBytes(b,4);	printf("d=%x\n",d);	printf("\n---------------------------------\n");	printf("\nq=%llx\n",q);	b = (S1 *)&q;	printf("before q: "); printBytes(b,8);	qwordToBytecode(q,(U1*)b8); printf("byecode q: ");printBytes(b8,8);	q = bytecodeToQWord((U1*)b8); printf("after q: "); printBytes(b,8);	printf("q=%I64x\n",q);	printf("\n---------------------------------\n");	printf("\nf=%e\n",f);	b = (S1 *)&f;	printf("before f: "); printBytes(b,4);	floatToBytecode(f,(U1*)b4);printf("Bytecode f: ");printBytes(b4,4);	f = bytecodeToFloat((U1*)b4); printf("after f: "); printBytes(b,4);	printf("\nf=%e\n",f);		printf("\n---------------------------------\n");	printf("\ndb=%e\n",db);	b = (S1 *)&db;	printf("before db: "); printBytes(b,8);	doubleToBytecode(db,(U1*)b8);printf("Bytecode db: ");printBytes(b8,8);	db = bytecodeToDouble((U1*)b8); printf("after db: "); printBytes(b,8);	printf("db=%e\n",db);	return;}/*end testConversion*//*-----------------------------------------------------------------*//*	Returns the amount of free physical memory in bytes.	Again, Linux didn't seem to provide anything outside of	/proc/meminfo, free, etc.	So, I simply return the max value	( I apologize for this crude hack )*/U4 getAvailableMemory(){	return(0xFFFFFFFF);}/*end getAvailableMemory*/#include<sys/stat.h>/*	Returns size of file in bytes*/U4 getFileSize(char *name){	U4 size;	S1 ret;	struct stat buffer;	ret = lstat(name,&buffer);	if(ret==0){ return((U4)buffer.st_size); }	else{ return(0); }}/*end getFileSize*//*-----------------------------------------------------------------*//*	Linux distribution doesn't have string->64-bit conversion*/U8 stringToU8(char *str){ 	return((U8)atol(str));}/*end stringToU8*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩卡一| 老汉av免费一区二区三区| 欧美激情在线看| 精品88久久久久88久久久| 日韩精品中午字幕| 欧美不卡视频一区| 精品国产污污免费网站入口| 久久午夜色播影院免费高清| 久久综合九色综合97_久久久| 久久综合国产精品| 久久色.com| 日本一区二区三级电影在线观看| 国产欧美日韩久久| 成人免费在线视频| 99久久综合精品| 99精品视频中文字幕| 色综合久久久久久久久| 日本黄色一区二区| 在线观看网站黄不卡| 欧美精品久久久久久久多人混战| 欧美绝品在线观看成人午夜影视| 69p69国产精品| 精品久久久久久久久久久久包黑料 | 依依成人精品视频| 亚洲一区二区偷拍精品| 人人超碰91尤物精品国产| 国产在线视频精品一区| 成人午夜免费av| 欧美视频日韩视频在线观看| 日韩一区二区不卡| 国产精品视频线看| 亚洲综合一区在线| 久久福利视频一区二区| 岛国一区二区在线观看| 欧美视频自拍偷拍| 久久伊人蜜桃av一区二区| 中文字幕一区三区| 视频一区二区中文字幕| 国产成人免费视频精品含羞草妖精| 91免费版pro下载短视频| 在线不卡的av| 亚洲国产精品二十页| 亚洲综合在线五月| 国产一区二区三区日韩| 色香蕉久久蜜桃| 亚洲精品一区二区三区福利| 亚洲欧美电影院| 激情综合网av| 欧美亚洲综合另类| 国产三级一区二区| 午夜精品久久久久久久| 国产+成+人+亚洲欧洲自线| 91激情五月电影| 国产午夜精品美女毛片视频| 亚洲国产欧美在线| 从欧美一区二区三区| 欧美日本一区二区在线观看| 亚洲国产精品av| 男女视频一区二区| 色综合天天综合网国产成人综合天 | 一区二区在线观看不卡| 精品在线播放免费| 欧美视频中文字幕| 亚洲婷婷国产精品电影人久久| 美美哒免费高清在线观看视频一区二区| av一本久道久久综合久久鬼色| 日韩一区二区免费视频| 亚洲免费观看高清完整版在线观看熊 | 经典三级一区二区| 欧美日韩一级大片网址| 自拍视频在线观看一区二区| 国产麻豆精品一区二区| 欧美一区二区三区免费大片| 亚洲桃色在线一区| 国产成人精品在线看| 日韩欧美中文字幕精品| 亚洲国产欧美在线| 91麻豆123| 亚洲欧洲精品天堂一级| 国产露脸91国语对白| 日韩一级视频免费观看在线| 亚洲大片精品永久免费| 91亚洲国产成人精品一区二区三| 欧美极品xxx| 国产一区二区福利| 亚洲精品一区二区三区蜜桃下载 | 久久国产精品一区二区| 欧美三级中文字幕在线观看| 亚洲欧美二区三区| 99久久精品国产导航| 中文字幕国产一区| 国产精品亚洲一区二区三区在线 | 欧美男男青年gay1069videost| 中文字幕中文字幕在线一区 | 亚洲三级在线看| 粉嫩av一区二区三区粉嫩| 久久综合久久综合亚洲| 久久99久久精品| 亚洲精品在线一区二区| 激情综合色播激情啊| 日韩免费观看高清完整版在线观看| 日精品一区二区三区| 欧美久久久一区| 日本中文字幕不卡| 欧美一区二区成人| 卡一卡二国产精品 | 欧美一区二区三区公司| 日一区二区三区| 欧美一区二区三区免费| 久久福利视频一区二区| 久久综合色综合88| 懂色av中文字幕一区二区三区| 日本一区二区三区电影| 99精品视频一区| 一区二区三区在线视频免费| 欧美日韩免费一区二区三区视频 | 欧美日韩成人综合天天影院| 性久久久久久久| 欧美一级片在线看| 国产东北露脸精品视频| 亚洲欧洲成人av每日更新| 在线观看免费成人| 日本成人超碰在线观看| 久久综合色8888| 91丨国产丨九色丨pron| 亚洲成人av在线电影| 欧美成人乱码一区二区三区| 国产美女久久久久| 最新国产成人在线观看| 欧美视频中文字幕| 久久精品国产免费看久久精品| 久久久久久一二三区| 91视频一区二区三区| 日日骚欧美日韩| 久久久久亚洲蜜桃| 色婷婷亚洲婷婷| 六月丁香婷婷久久| 国产精品拍天天在线| 欧美四级电影在线观看| 毛片av一区二区三区| 国产精品短视频| 欧美巨大另类极品videosbest| 国产呦精品一区二区三区网站| 亚洲婷婷综合色高清在线| 欧美一级在线免费| 成人理论电影网| 日韩成人一级片| 国产精品免费免费| 欧美精品九九99久久| 成人免费毛片aaaaa**| 午夜a成v人精品| 国产精品欧美一级免费| 在线观看91精品国产麻豆| 成人黄页在线观看| 日韩国产欧美视频| 亚洲私人影院在线观看| 日韩视频一区二区在线观看| 99精品国产99久久久久久白柏 | 在线电影院国产精品| 国产不卡在线一区| 日韩二区三区四区| 国产精品久久久久影院色老大| 91麻豆精品国产无毒不卡在线观看| 欧美日韩日日夜夜| 欧美最猛黑人xxxxx猛交| 亚洲成人免费在线| 国产目拍亚洲精品99久久精品| 欧美日韩在线综合| 成人av在线资源网| 久久91精品久久久久久秒播| 一个色在线综合| 中国av一区二区三区| 欧美大片在线观看一区二区| 欧美在线制服丝袜| 99热这里都是精品| 国产一区二区视频在线| 调教+趴+乳夹+国产+精品| 成人免费在线视频| 国产日韩高清在线| 欧美变态tickling挠脚心| 欧美性大战xxxxx久久久| 99视频国产精品| 国产成人啪午夜精品网站男同| 蜜桃视频一区二区| 亚洲成av人片在www色猫咪| 亚洲欧美另类久久久精品2019| 国产视频一区二区在线观看| 欧美sm美女调教| 日韩亚洲欧美一区| 欧美日韩成人综合天天影院| 色先锋aa成人| 色综合久久中文综合久久牛| 成人高清视频在线观看| 国产v日产∨综合v精品视频| 精品一区二区三区不卡| 久久电影网电视剧免费观看| 日本成人在线网站| 蜜臀av一区二区| 免费成人小视频| 美国十次综合导航|