亚洲欧美第一页_禁久久精品乱码_粉嫩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>
U1 fb[8];

/*-----------------------------------------------------------------*/
/*
	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一区二区三区免费野_久草精品视频
亚洲成av人片在www色猫咪| 51午夜精品国产| 成人综合婷婷国产精品久久免费| 国产成人亚洲综合a∨婷婷| 国产精品美女久久久久高潮| 亚洲美女屁股眼交3| 亚洲观看高清完整版在线观看| 天天操天天干天天综合网| 精品一区二区三区免费观看 | 一区二区视频在线| 婷婷成人综合网| 丁香另类激情小说| 欧美日本一道本在线视频| 日韩精品中午字幕| 欧美激情中文字幕一区二区| 亚洲宅男天堂在线观看无病毒| 麻豆国产精品官网| 99免费精品在线观看| 91精品国产一区二区人妖| 欧美国产日韩在线观看| 欧美a级理论片| 欧洲在线/亚洲| 国产欧美精品国产国产专区| 亚洲一区二区三区国产| 粉嫩aⅴ一区二区三区四区| 欧美亚洲一区二区在线| 精品国产区一区| 亚洲成a人在线观看| 成人毛片视频在线观看| 日韩欧美第一区| 亚洲国产欧美在线| www.色综合.com| 久久青草国产手机看片福利盒子| 亚洲国产精品一区二区久久| 国产精品一区二区91| 欧美高清dvd| 一区二区三区 在线观看视频| 国产精品99久久久久久有的能看| 91麻豆精品国产91久久久更新时间| 国产精品乱码一区二区三区软件| 日韩精品三区四区| 欧洲一区二区三区免费视频| 欧美高清在线精品一区| 精品影院一区二区久久久| 欧美日韩久久久| 亚洲高清免费一级二级三级| 91在线码无精品| 国产精品视频你懂的| 国产精品一区二区黑丝| 国产午夜亚洲精品理论片色戒| 久久国产婷婷国产香蕉| 67194成人在线观看| 亚州成人在线电影| 欧美久久久一区| 亚洲国产成人高清精品| 色噜噜狠狠色综合欧洲selulu| 中文字幕一区在线观看视频| 久久精品国产99国产精品| 欧美日韩午夜在线视频| 日韩理论片中文av| 99免费精品视频| 亚洲欧美日韩成人高清在线一区| 精品视频1区2区| 青青草97国产精品免费观看无弹窗版| 91成人免费网站| 亚洲精品国产视频| 欧美精品vⅰdeose4hd| 五月天一区二区三区| 欧美日本在线播放| 日本不卡中文字幕| 日韩精品一区二区三区四区| 韩国成人精品a∨在线观看| 精品国产乱码久久久久久久| 狠狠色综合色综合网络| 久久九九久精品国产免费直播| 国产美女久久久久| 亚洲视频一区在线| 欧美视频在线一区二区三区| 婷婷成人激情在线网| 精品国产露脸精彩对白| 国产乱码精品一区二区三区五月婷| 国产蜜臀av在线一区二区三区| 99在线精品一区二区三区| 一区二区三区四区在线免费观看| 欧美日韩大陆在线| 久久国产精品99久久人人澡| 中文字幕不卡在线观看| 欧美性大战xxxxx久久久| 久久精品国产免费| 亚洲天堂福利av| 日韩一区国产二区欧美三区| 狠狠色狠狠色综合| 亚洲一二三区不卡| 久久精品日韩一区二区三区| 色婷婷亚洲综合| 美国毛片一区二区| 亚洲视频一区二区免费在线观看| 欧美午夜精品久久久久久孕妇| 久久av中文字幕片| 亚洲欧美另类综合偷拍| 日韩你懂的电影在线观看| 成人国产精品免费观看| 日本成人在线视频网站| 亚洲欧洲精品一区二区三区不卡| 91精品国产综合久久久久久久| 国产精品一区在线| 日本成人在线视频网站| 亚洲日本va在线观看| 欧美精品一区视频| 欧美视频一区二区在线观看| 成人福利电影精品一区二区在线观看| 日韩精品91亚洲二区在线观看| 国产精品欧美久久久久一区二区| 日韩免费高清av| 欧美性一二三区| www.亚洲激情.com| 国产精品原创巨作av| 日韩国产欧美三级| 一区二区三区中文在线观看| 欧美一二三在线| 91精品国产综合久久久久| 在线一区二区三区四区五区 | 国产精品一区二区视频| 五月婷婷激情综合网| 一区二区三区日韩欧美精品| 国产日本欧美一区二区| 中文字幕在线免费不卡| 久久理论电影网| 久久亚洲春色中文字幕久久久| 欧美久久一区二区| 欧美三级电影网站| 欧美日韩精品一区二区三区蜜桃 | 欧美久久久久中文字幕| 欧日韩精品视频| 在线观看av一区二区| 欧美日精品一区视频| 5858s免费视频成人| 欧美精品一区二区高清在线观看| 亚洲精品在线观看网站| 国产精品美女久久久久久| 亚洲综合一区二区精品导航| 亚洲成人免费看| 国产在线精品国自产拍免费| 大白屁股一区二区视频| 欧美综合色免费| 2024国产精品| 亚洲黄网站在线观看| 免费欧美高清视频| 国产成人精品一区二区三区四区| jlzzjlzz欧美大全| 91麻豆精品国产91久久久久久 | 国产精品影视在线| 色94色欧美sute亚洲线路一久| 欧美日韩电影在线播放| 欧美激情一二三区| 午夜精品福利一区二区三区蜜桃| 久久99精品国产.久久久久久 | 色94色欧美sute亚洲线路一ni| 欧美嫩在线观看| 国产精品国产馆在线真实露脸| 夜夜精品视频一区二区| 黑人巨大精品欧美黑白配亚洲| 色婷婷av久久久久久久| 精品国产1区二区| 亚洲一区二区在线播放相泽| 精品一区二区三区蜜桃| 欧美色精品在线视频| 日本一区二区三区在线不卡| 午夜精品一区在线观看| 成人毛片在线观看| 精品免费日韩av| 亚洲 欧美综合在线网络| 成人黄色一级视频| 久久久午夜精品理论片中文字幕| 亚洲国产视频一区二区| 91片在线免费观看| 国产亚洲欧美色| 精品一区二区免费视频| 欧美在线高清视频| 中文字幕日本不卡| 成人妖精视频yjsp地址| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲丶国产丶欧美一区二区三区| 成人av第一页| 国产日产欧美一区二区视频| 久久精品国产一区二区三 | 五月激情综合网| 9i看片成人免费高清| 国产精品久久久久久久久免费桃花| 久久国产免费看| 日韩欧美国产1| 首页欧美精品中文字幕| 欧美挠脚心视频网站| 亚洲国产精品视频| 欧美色精品天天在线观看视频| 精品一区二区在线观看| 欧美va亚洲va香蕉在线| 麻豆久久一区二区| 精品国产区一区| 国产剧情一区二区|