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

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

?? linux.c

?? < 虛擬機設計與實現> 的source code, linux版本
?? C
字號:
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+                                                                   +
+  linux.c - this file has linux API native code                    +
+                                                                   +
++++++++++++++++testConversion+++++++++++++++++++++++++++++++++++++++++++++++++++*/

#include "linux.h"
#include <sys/stat.h>
#include <stdlib.h>
/*-----------------------------------------------------------------*/
/*
	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*/

/*-----------------------------------------------------------------*/

/*
	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 = 1234567890123;
	f = -2.3e-4;
	db = 100e2;

	checkEndian();

	printf("\n---------------------------------\n");
	printf("\nw = %hx\n", w);
	b = (S1 *)&w;
	printf("S1s before wordToBytecode: "); 
	printBytes(b, 2);
	wordToBytecode(w, (U1 *)b2); 
	printf("Bytecode w: "); 
	printBytes(b2, 2);
	
	w = bytecodeToWord((U1 *)b2); 
	printf("S1s after bytecodeToWord: "); 
	printBytes(b, 2);

	printf("\n---------------------------------\n");
	printf("\nd = %x\n", d);
	b = (S1 *)&d;
	printf("before dwordToBytecode: "); 
	printBytes(b, 4);
	dwordToBytecode(d, (U1*)b4); 
	printf("Bytecode d: "); 
	printBytes(b4,4);
	d = bytecodeToDWord((U1*)b4); 
	printf("after bytecodeToDWord: "); 
	printBytes(b,4);
	printf("d = %x\n",d);

	printf("\n---------------------------------\n");
	printf("\nq = %llx\n", q);
	b = (S1 *)&q;
	printf("before qwordToBytecode: "); 
	printBytes(b, 8);
	qwordToBytecode(q, (U1*)b8); 
	printf("byecode q: ");
	printBytes(b8, 8);
	q = bytecodeToQWord((U1*)b8); 
	printf("after bytecodeToQWord: "); 
	printBytes(b, 8);
	printf("q = %llx\n",q);

	printf("\n---------------------------------\n");
	printf("\nf = %e\n", f);
	b = (S1 *)&f;
	printf("before floatToBytecode: "); 
	printBytes(b, 4);f= atof("-2.3e-4");
	floatToBytecode(f, (U1*)b4);
	printf("Bytecode f: ");
	printBytes(b4, 4);
	f = bytecodeToFloat((U1*)b4); 
	printf("after floatToBytecode: "); 
	printBytes(b,4);
	printf("\nf = %e\n",f);
	
	printf("\n---------------------------------\n");
	printf("\ndb = %e\n",db);
	b = (S1 *)&db;
	printf("before doubleToBytecode: "); 
	printBytes(b,8);
	doubleToBytecode(db, (U1*)b8);
	printf("Bytecode db: ");
	printBytes(b8,8);
	db = bytecodeToDouble((U1*)b8); 
	printf("after doubleToBytecode: "); 
	printBytes(b,8);
	printf("db = %e\n",db);

	return;

} /*end testConversion*/

/*-----------------------------------------------------------------*/
/*
	this prints out the bytes of a datatype
*/

void printBytes(S1 bytes[], int nbytes)
{
	int i;
	for (i = 0; i < nbytes; i++)
	{ 
		printf("byte[%u]=%X ", i, (U1)bytes[i]); 
	}
	printf("\n");
	return;

} /*end printBytes*/

/*-----------------------------------------------------------------*/

/*	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*/

/*
	Returns size of file in bytes
	Note, assume file will not be larger than 4GB
	because nFileSizeLow is lower 32-bits of file size
*/

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*/

void testNativeFunctions()
{
	U4 ram;
	U4 mb;
	
	/*234,256*/
	ram = getFileSize("Makefile");
	mb = ram / 1048576;
	printf("size of file = %lu = %dMB\n", ram, mb);

	return;

} /*test native functions*/

U8 stringToU8(char *str)
{
	return (U8)atoll(str);

} /*end stringToU8*/

void shutDown(U1 code)
{
	exit(code);

} /*end shutDown*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂免费看| 欧美一区二区性放荡片| 欧美三级蜜桃2在线观看| 欧美剧情片在线观看| 日韩精品最新网址| 国产精品久久久久aaaa| 亚洲r级在线视频| 国产美女在线精品| 在线精品视频一区二区| 精品久久久三级丝袜| 国产精品久久久久一区| 亚洲高清不卡在线| 国产福利91精品| 欧美视频日韩视频| 国产亚洲一区字幕| 一级特黄大欧美久久久| 精品一区二区三区不卡 | 久久伊人蜜桃av一区二区| 亚洲欧洲无码一区二区三区| 日韩av电影一区| 国产成人综合亚洲网站| 欧美日韩一区二区在线观看| 中文字幕国产一区| 天天综合日日夜夜精品| 国产成人在线视频网址| 欧美电影影音先锋| 日韩一区欧美小说| 国产另类ts人妖一区二区| 欧美亚洲综合另类| 亚洲国产精品国自产拍av| 91丝袜美女网| 久久综合九色综合97婷婷女人 | 不卡av免费在线观看| 69堂亚洲精品首页| 日韩一区在线看| 精品一区在线看| 欧美日韩黄视频| 国产精品久久国产精麻豆99网站| 美女精品自拍一二三四| 欧美亚洲综合久久| 国产精品国产三级国产普通话三级 | 韩国成人精品a∨在线观看| 欧美日韩一区二区欧美激情| 亚洲欧美怡红院| 懂色av中文字幕一区二区三区 | 国产精品亚洲成人| 欧美一二三区精品| 亚洲3atv精品一区二区三区| 99国产欧美久久久精品| 国产欧美日韩在线视频| 麻豆成人免费电影| 欧美人狂配大交3d怪物一区| 亚洲女人****多毛耸耸8| 国产suv精品一区二区三区| 欧美电影精品一区二区| 同产精品九九九| 日本韩国精品在线| 国产精品高潮久久久久无| 7777精品伊人久久久大香线蕉超级流畅| 一区二区中文字幕在线| 国产成人a级片| 精品国产乱码久久久久久夜甘婷婷 | 国产精品亚洲一区二区三区在线| 欧美一区二区三区视频免费播放| 亚洲码国产岛国毛片在线| 成人爽a毛片一区二区免费| 国产三区在线成人av| 国产一区不卡在线| 久久久久久黄色| 国产精品中文字幕一区二区三区| 久久亚洲欧美国产精品乐播| 韩国av一区二区三区在线观看| 日韩午夜激情视频| 久久精品国产免费看久久精品| 欧美久久久久久蜜桃| 香蕉成人啪国产精品视频综合网 | 视频一区二区不卡| 欧美精品色综合| 日韩国产欧美一区二区三区| 日韩一区二区三区精品视频| 另类综合日韩欧美亚洲| 久久综合久久综合久久| 国产高清亚洲一区| 国产精品对白交换视频| 在线中文字幕一区二区| 亚洲成人av中文| 欧美一卡二卡三卡| 久久99久久99| 国产精品入口麻豆原神| 91麻豆国产精品久久| 亚洲国产日日夜夜| 日韩欧美一级二级| 国产福利电影一区二区三区| 国产精品久久久久久亚洲毛片 | 亚洲精品视频免费观看| 欧美日韩一区成人| 久久99精品网久久| 国产三级精品在线| 91久久免费观看| 毛片av一区二区| 国产精品久久久久影院色老大| 色94色欧美sute亚洲13| 天堂va蜜桃一区二区三区漫画版| 制服丝袜av成人在线看| 国产剧情一区二区三区| 亚洲精品中文在线影院| 日韩一区二区三区在线观看 | 美女视频一区二区| 国产欧美日韩亚州综合| 91极品视觉盛宴| 免费观看30秒视频久久| 中文字幕精品一区二区精品绿巨人 | 久久先锋影音av鲁色资源 | 午夜婷婷国产麻豆精品| 久久这里只有精品视频网| 99久久久无码国产精品| 午夜欧美电影在线观看| 久久理论电影网| 色吧成人激情小说| 激情综合色综合久久| 一区二区三区在线视频观看| 日韩欧美一级二级| 91蜜桃在线观看| 极品瑜伽女神91| 亚洲愉拍自拍另类高清精品| 久久日一线二线三线suv| 欧洲精品一区二区三区在线观看| 狠狠色伊人亚洲综合成人| 亚洲精品乱码久久久久| 精品国产乱码久久久久久老虎| 91日韩在线专区| 极品美女销魂一区二区三区免费 | 欧美性三三影院| 国产福利一区在线观看| 午夜久久久影院| 国产精品久久久99| 精品国产精品网麻豆系列 | 免费在线看成人av| 成人免费视频在线观看| 久久综合视频网| 6080午夜不卡| 在线免费av一区| 99国产精品国产精品久久| 国内外成人在线视频| 日韩中文字幕不卡| 一区二区高清视频在线观看| 欧美激情中文字幕一区二区| 日韩精品一区二区三区在线播放 | 亚洲五码中文字幕| 国产精品嫩草久久久久| 久久综合999| 日韩一区二区精品在线观看| 欧美性色aⅴ视频一区日韩精品| 成人18精品视频| 国产69精品久久久久777| 看电视剧不卡顿的网站| 日韩激情视频在线观看| 亚洲一二三区在线观看| 亚洲天堂成人网| 亚洲国产精品成人综合| 久久久久国产一区二区三区四区| 日韩一区二区电影| 欧美精品久久一区| 中文字幕亚洲一区二区av在线| 国产亚洲精品超碰| 久久中文娱乐网| 久久夜色精品一区| 精品日韩在线观看| 日韩欧美国产综合一区 | 久久99精品视频| 麻豆精品一区二区av白丝在线| 亚洲午夜私人影院| 亚洲一区二区偷拍精品| 一区二区三区成人| 亚洲最新在线观看| 亚洲精品第一国产综合野| 亚洲乱码精品一二三四区日韩在线| 国产精品女上位| 日韩伦理电影网| 亚洲色图视频网站| 亚洲精品中文字幕乱码三区| 一区二区在线观看不卡| 亚洲免费电影在线| 一区二区三区精品| 亚洲午夜精品17c| 三级不卡在线观看| 久久超碰97人人做人人爱| 精品在线观看视频| 国产高清久久久| av在线不卡网| 在线观看日韩高清av| 欧美剧在线免费观看网站| 欧美一区二区精品在线| 欧美大肚乱孕交hd孕妇| 久久久久久久久久久久久女国产乱 | 午夜视频在线观看一区二区三区| 日本在线观看不卡视频| 久久99精品国产麻豆婷婷洗澡| 国产精品综合二区| 9i在线看片成人免费|