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

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

?? cpu.java

?? 操作系統(tǒng)課程設(shè)計(jì)中的CPU原碼,采用JAVA編寫
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*************************************************
*功能描述:模擬CPU
*該CPU能接受的指令:	ADD:加法指令	reg1+reg2->reg1
					SUB:減法指令	reg1-reg2->reg1
					MUL:乘法指令	reg1*reg2->reg1
					DIV:除法指令	reg1/reg2->reg3	reg1%reg2->reg3
*2004-9-11		編寫者:賴衛(wèi)國(guó)
*************************************************/
package cpu;
import java.lang.*;
import java.lang.String.*;
import myException.*;
public class CPU
{
	private static boolean	cpu	=	false;
	private ALU				alu;
	//四個(gè)數(shù)據(jù)寄存器,能存取int,long,float,double,String型數(shù)據(jù)
	private static register_data	AX;
	private	static register_data	BX;
	private	static register_data	CX;
	private	static register_data	DX;

	private	static register_pc		PC;	//程序計(jì)數(shù)器,long型,記錄下一條執(zhí)行指令的地址
	private	static register_ar		AR;	//地址寄存器,long型,記錄當(dāng)前執(zhí)行指令的地址
	private	static register_ir		IR;	//指令寄存器,String型,記錄當(dāng)前執(zhí)行的指令
	private static register_data	DR;	//緩沖寄存器,記錄當(dāng)前指令或數(shù)據(jù)

	public CPU()
		throws OnlyOneCPUException
	{
		if(!cpu)
		{
			cpu	=	true;
			try
			{
				alu	=	new	ALU();

				AX	=	(register_data)registerFactory.factory("data");
				BX	=	(register_data)registerFactory.factory("data");
				CX	=	(register_data)registerFactory.factory("data");
				DX	=	(register_data)registerFactory.factory("data");

				DR	=	(register_data)registerFactory.factory("data");

				PC	=	(register_pc)registerFactory.factory("pc");
				AR	=	(register_ar)registerFactory.factory("ar");
				IR	=	(register_ir)registerFactory.factory("ir");
			}
			catch(NoSuchRegistException	e){}
			catch(OnlyOneALUException	e1){}
		}
		else throw new OnlyOneCPUException();
	}
	/**************************************************
	*功能描述:	向寄存器存入一個(gè)int型的值
	*參數(shù)說(shuō)明:	reg:寄存器名(AX(ax),BX(bx),CX(cx),DX(dx),DR(dr))
				value:要存入的值
	*返回值:	void
	***************************************************/
	public void setRegister(String	reg,int value)
		throws NoSuchRegistException
	{
		if(reg.equals("AX")||reg.equals("ax"))
			AX.setValue(value);
		else if(reg.equals("BX")||reg.equals("bx"))
			BX.setValue(value);
		else if(reg.equals("CX")||reg.equals("cx"))
			CX.setValue(value);
		else if(reg.equals("DX")||reg.equals("dx"))
			DX.setValue(value);
		else if(reg.equals("DR")||reg.equals("dr"))
			DR.setValue(value);
		else if(reg.equals("PC")||reg.equals("pc"))
			PC.setValue(value);
		else if(reg.equals("AR")||reg.equals("ar"))
			AR.setValue(value);
		else throw  new NoSuchRegistException("沒(méi)有此寄存器,請(qǐng)檢查寄存器是否有錯(cuò)");
	}
	/**************************************************
	*功能描述:	向寄存器存入一個(gè)long型的值
	*參數(shù)說(shuō)明:	reg:寄存器名(AX(ax),BX(bx),CX(cx),DX(dx),DR(dr),PC(pc),AR(ar))
				value:要存入的值
	*返回值:	void
	***************************************************/
	public void setRegister(String	reg,long value)
		throws NoSuchRegistException
	{
		if(reg.equals("AX")||reg.equals("ax"))
			AX.setValue(value);
		else if(reg.equals("BX")||reg.equals("bx"))
			BX.setValue(value);
		else if(reg.equals("CX")||reg.equals("cx"))
			CX.setValue(value);
		else if(reg.equals("DX")||reg.equals("dx"))
			DX.setValue(value);
		else if(reg.equals("DR")||reg.equals("dr"))
			DR.setValue(value);
		else if(reg.equals("PC")||reg.equals("pc"))
			PC.setValue(value);
		else if(reg.equals("AR")||reg.equals("ar"))
			AR.setValue(value);
		else throw  new NoSuchRegistException("沒(méi)有此寄存器,請(qǐng)檢查寄存器是否有錯(cuò)");
	}
	/**************************************************
	*功能描述:	向寄存器存入一個(gè)float型的值
	*參數(shù)說(shuō)明:	reg:寄存器名(AX(ax),BX(bx),CX(cx),DX(dx),DR(dr))
				value:要存入的值
	*返回值:	void
	***************************************************/
	public void setRegister(String	reg,float value)
		throws NoSuchRegistException
	{
		if(reg.equals("AX")||reg.equals("ax"))
			AX.setValue(value);
		else if(reg.equals("BX")||reg.equals("bx"))
			BX.setValue(value);
		else if(reg.equals("CX")||reg.equals("cx"))
			CX.setValue(value);
		else if(reg.equals("DX")||reg.equals("dx"))
			DX.setValue(value);
		else if(reg.equals("DR")||reg.equals("dr"))
			DR.setValue(value);
		else throw  new NoSuchRegistException("沒(méi)有此寄存器,請(qǐng)檢查寄存器是否有錯(cuò)");
	}
	/**************************************************
	*功能描述:	向寄存器存入一個(gè)double型的值
	*參數(shù)說(shuō)明:	reg:寄存器名(AX(ax),BX(bx),CX(cx),DX(dx),DR(dr))
				value:要存入的值
	*返回值:	void
	***************************************************/
	public void setRegister(String	reg,double value)
		throws NoSuchRegistException
	{
		if(reg.equals("AX")||reg.equals("ax"))
			AX.setValue(value);
		else if(reg.equals("BX")||reg.equals("bx"))
			BX.setValue(value);
		else if(reg.equals("CX")||reg.equals("cx"))
			CX.setValue(value);
		else if(reg.equals("DX")||reg.equals("dx"))
			DX.setValue(value);
		else if(reg.equals("DR")||reg.equals("dr"))
			DR.setValue(value);
		else throw  new NoSuchRegistException("沒(méi)有此寄存器,請(qǐng)檢查寄存器是否有錯(cuò)");
	}
	/**************************************************
	*功能描述:	向寄存器存入一個(gè)String型的值
	*參數(shù)說(shuō)明:	reg:寄存器名(AX(ax),BX(bx),CX(cx),DX(dx),DR(dr),IR(ir))
				value:要存入的值
	*返回值:	void
	***************************************************/
	public void setRegister(String	reg,String value)
		throws NoSuchRegistException
	{
		if(reg.equals("AX")||reg.equals("ax"))
			AX.setValue(value);
		else if(reg.equals("BX")||reg.equals("bx"))
			BX.setValue(value);
		else if(reg.equals("CX")||reg.equals("cx"))
			CX.setValue(value);
		else if(reg.equals("DX")||reg.equals("dx"))
			DX.setValue(value);
		else if(reg.equals("DR")||reg.equals("dr"))
			DR.setValue(value);
		else if(reg.equals("IR")||reg.equals("ir"))
			IR.setValue(value);
		else throw  new NoSuchRegistException("沒(méi)有此寄存器,請(qǐng)檢查寄存器是否有錯(cuò)");
	}
	/************************************************************
	*功能描述:	獲取寄存器的int型值
	*參數(shù)說(shuō)明:	reg:寄存器名(AX(ax),BX(bx),CX(cx),DX(dx),DR(dr))
	*返回值:	int
	*************************************************************/
	public int getInt(String reg)
		throws NoSuchRegistException
	{
		int result	=	0;
		if(reg.equals("AX")||reg.equals("ax"))
			result	=	AX.get_int();
		else if(reg.equals("BX")||reg.equals("bx"))
			result	=	BX.get_int();
		else if(reg.equals("CX")||reg.equals("cx"))
			result	=	CX.get_int();
		else if(reg.equals("DX")||reg.equals("dx"))
			result	=	DX.get_int();
		else if(reg.equals("DR")||reg.equals("dr"))
			result	=	DR.get_int();
		else if(reg.equals("PC")||reg.equals("pc"))
			result	=	PC.getInt();
		else if(reg.equals("AR")||reg.equals("ar"))
			result	=	AR.getInt();
		else throw  new NoSuchRegistException("沒(méi)有此寄存器,請(qǐng)檢查寄存器是否有錯(cuò)");
		return result;
	}
	/************************************************************
	*功能描述:	獲取寄存器的long型值
	*參數(shù)說(shuō)明:	reg:寄存器名(AX(ax),BX(bx),CX(cx),DX(dx),DR(dr),PC(pc),AR(ar))
	*返回值:	long
	*************************************************************/
	public long getLong(String reg)
		throws NoSuchRegistException
	{
		long result	=	0;
		if(reg.equals("AX")||reg.equals("ax"))
			result	=	AX.get_long();
		else if(reg.equals("BX")||reg.equals("bx"))
			result	=	BX.get_long();
		else if(reg.equals("CX")||reg.equals("cx"))
			result	=	CX.get_long();
		else if(reg.equals("DX")||reg.equals("dx"))
			result	=	DX.get_long();
		else if(reg.equals("DR")||reg.equals("dr"))
			result	=	DR.get_long();
		else if(reg.equals("PC")||reg.equals("pc"))
			result	=	PC.getLong();
		else if(reg.equals("AR")||reg.equals("ar"))
			result	=	AR.getLong();
		else throw  new NoSuchRegistException("沒(méi)有此寄存器,請(qǐng)檢查寄存器是否有錯(cuò)");
		return result;
	}
	/************************************************************
	*功能描述:	獲取寄存器的float型值
	*參數(shù)說(shuō)明:	reg:寄存器名(AX(ax),BX(bx),CX(cx),DX(dx),DR(dr))
	*返回值:	float
	*************************************************************/
	public float getFloat(String reg)
		throws NoSuchRegistException
	{
		float result	=	0;
		if(reg.equals("AX")||reg.equals("ax"))
			result	=	AX.get_float();
		else if(reg.equals("BX")||reg.equals("bx"))
			result	=	BX.get_float();
		else if(reg.equals("CX")||reg.equals("cx"))
			result	=	CX.get_float();
		else if(reg.equals("DX")||reg.equals("dx"))
			result	=	DX.get_float();
		else if(reg.equals("DR")||reg.equals("dr"))
			result	=	DR.get_float();
		else throw  new NoSuchRegistException("沒(méi)有此寄存器,請(qǐng)檢查寄存器是否有錯(cuò)");
		return result;
	}
	/************************************************************
	*功能描述:	獲取寄存器的double型值
	*參數(shù)說(shuō)明:	reg:寄存器名(AX(ax),BX(bx),CX(cx),DX(dx),DR(dr))
	*返回值:	double
	*************************************************************/
	public double getDouble(String reg)
		throws NoSuchRegistException
	{
		double result	=	0;
		if(reg.equals("AX")||reg.equals("ax"))
			result	=	AX.get_double();
		else if(reg.equals("BX")||reg.equals("bx"))
			result	=	BX.get_double();
		else if(reg.equals("CX")||reg.equals("cx"))
			result	=	CX.get_double();
		else if(reg.equals("DX")||reg.equals("dx"))
			result	=	DX.get_double();
		else if(reg.equals("DR")||reg.equals("dr"))
			result	=	DR.get_double();
		else throw  new NoSuchRegistException("沒(méi)有此寄存器,請(qǐng)檢查寄存器是否有錯(cuò)");
		return result;
	}
	/************************************************************
	*功能描述:	獲取寄存器的String型值
	*參數(shù)說(shuō)明:	reg:寄存器名(AX(ax),BX(bx),CX(cx),DX(dx),IR(ir),DR(dr))
	*返回值:	String
	*************************************************************/
	public String getString(String reg)
		throws NoSuchRegistException
	{
		String result	=	null;
		if(reg.equals("AX")||reg.equals("ax"))
			result	=	AX.get_string();
		else if(reg.equals("BX")||reg.equals("bx"))
			result	=	BX.get_string();
		else if(reg.equals("CX")||reg.equals("cx"))
			result	=	CX.get_string();
		else if(reg.equals("DX")||reg.equals("dx"))
			result	=	DX.get_string();
		else if(reg.equals("IR")||reg.equals("ir"))
			result	=	IR.getString();
		else if(reg.equals("DR")||reg.equals("dr"))
			result	=	DR.get_string();
		else throw  new NoSuchRegistException("沒(méi)有此寄存器,請(qǐng)檢查寄存器是否有錯(cuò)");
		return result;
	}
	/************************************************************
	*功能描述:	程序計(jì)數(shù)器加1
	*參數(shù)說(shuō)明:	無(wú)
	*返回值:	void
	*************************************************************/
	public void IntPC()
	{
		PC.incValue();
	}
	/*************************************************************
	*功能描述:	加法運(yùn)算(long型和double型)reg1+reg2->reg1
	*參數(shù)說(shuō)明:	reg1:源操作數(shù)1/目的操作數(shù) reg2:源操作數(shù)2
	**************************************************************/
	public	void ADD(String reg1,String reg2)
		throws myException
	{
//		try{
			if(reg1.equals("AX")||reg1.equals("ax"))
			{
				if(reg2.equals("BX")||reg2.equals("bx"))
					alu.ADD(AX,BX);
				else if(reg2.equals("CX")||reg2.equals("cx"))
					alu.ADD(AX,CX);
				else if(reg2.equals("DX")||reg2.equals("dx"))
					alu.ADD(AX,DX);
				else throw new myException("加法運(yùn)算中找不到第二個(gè)寄存器,應(yīng)該是拼寫錯(cuò)誤");
			}
			else if (reg1.equals("BX")||reg1.equals("bx"))
			{
				if(reg2.equals("AX")||reg2.equals("ax"))
					alu.ADD(BX,AX);
				else if(reg2.equals("CX")||reg2.equals("cx"))
					alu.ADD(BX,CX);
				else if(reg2.equals("DX")||reg2.equals("dx"))
					alu.ADD(BX,DX);
				else throw new myException("加法運(yùn)算中找不到第二個(gè)寄存器,應(yīng)該是拼寫錯(cuò)誤");
			}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情都市一区二区| 91网站最新网址| 亚洲女与黑人做爰| 欧美一区二区免费观在线| a在线播放不卡| 乱一区二区av| 亚洲香肠在线观看| 国产精品国产精品国产专区不蜜| 91精品国产综合久久精品图片| 99久久久久免费精品国产| 捆绑调教一区二区三区| 亚洲综合久久av| 中文字幕中文字幕一区| 欧美日韩国产一二三| 99re亚洲国产精品| 成人性生交大片免费看在线播放| 免费在线观看日韩欧美| 亚洲国产中文字幕| 依依成人精品视频| 国产精品欧美久久久久无广告 | 午夜亚洲国产au精品一区二区| 欧美经典一区二区| 久久综合色婷婷| 欧美一区三区四区| 欧美人与禽zozo性伦| 色综合久久久久久久| 成人性色生活片| 国产成a人亚洲| 国产精品一区二区黑丝| 激情另类小说区图片区视频区| 日韩不卡一区二区| 免费日韩伦理电影| 日本不卡1234视频| 蜜臂av日日欢夜夜爽一区| 日韩中文字幕91| 人人狠狠综合久久亚洲| 天天综合天天做天天综合| 天天综合天天做天天综合| 亚洲成av人**亚洲成av**| 亚洲国产综合在线| 午夜伦理一区二区| 日韩中文字幕亚洲一区二区va在线 | 亚洲第一久久影院| 亚洲国产中文字幕| 日韩电影在线免费观看| 日本不卡一二三| 激情久久五月天| 国产成人在线观看免费网站| 豆国产96在线|亚洲| 高清不卡在线观看| 91同城在线观看| 欧美在线你懂得| 在线91免费看| 精品国产一区二区三区忘忧草 | 午夜精品福利一区二区蜜股av| 亚洲福利一区二区三区| 天天影视网天天综合色在线播放| 日本视频在线一区| 国产一区二区三区在线观看免费 | 在线不卡的av| 精品国产免费一区二区三区四区 | 亚洲色图在线看| 亚洲国产美国国产综合一区二区| 日本aⅴ亚洲精品中文乱码| 极品少妇xxxx精品少妇偷拍| 高清在线不卡av| 欧美性大战久久久久久久| 日韩免费成人网| 中文乱码免费一区二区| 夜夜嗨av一区二区三区| 秋霞午夜鲁丝一区二区老狼| 国产一区二区日韩精品| 一本色道久久加勒比精品| 91麻豆精品国产91久久久使用方法| 精品美女在线观看| 亚洲欧美在线视频| 日本亚洲三级在线| 99re热这里只有精品免费视频| 欧美午夜一区二区| xfplay精品久久| 亚洲一区二区在线免费看| 精品无人码麻豆乱码1区2区| www.性欧美| 欧美成人精品1314www| 亚洲三级小视频| 精品在线视频一区| 欧美影院精品一区| 国产欧美综合在线观看第十页| 亚洲午夜精品在线| 成人国产免费视频| 日韩精品一区二区三区在线| 亚洲手机成人高清视频| 久久福利资源站| 欧美视频在线播放| 中文字幕精品一区二区精品绿巨人 | 亚洲国产一区二区a毛片| 国产一区二区三区久久悠悠色av| 在线国产亚洲欧美| 国产精品麻豆视频| 九九视频精品免费| 欧美色视频在线| 国产精品白丝在线| 国产酒店精品激情| 欧美一级夜夜爽| 亚洲一区二区三区激情| 成人ar影院免费观看视频| 日韩女优电影在线观看| 午夜影院在线观看欧美| www.欧美亚洲| 国产三级欧美三级日产三级99| 视频在线在亚洲| 欧洲色大大久久| 亚洲欧美另类图片小说| 成人小视频免费观看| 久久在线观看免费| 久久成人羞羞网站| 日韩一二三区视频| 午夜国产不卡在线观看视频| 色综合久久88色综合天天6| 国产精品国产三级国产普通话99| 国产在线观看免费一区| 精品欧美一区二区三区精品久久 | 国产91丝袜在线播放九色| 欧美xxxxxxxx| 老色鬼精品视频在线观看播放| 欧美日韩国产一区| 亚洲国产精品一区二区久久| 91极品美女在线| 亚洲免费观看高清完整版在线观看| 成人h动漫精品一区二| 国产精品热久久久久夜色精品三区| 国产综合久久久久久久久久久久| 日韩亚洲欧美一区| 另类小说色综合网站| 精品国产自在久精品国产| 久久精品国产免费看久久精品| 日韩欧美国产综合| 开心九九激情九九欧美日韩精美视频电影| 欧美浪妇xxxx高跟鞋交| 视频一区视频二区在线观看| 欧美一区二区在线免费观看| 免费观看一级特黄欧美大片| 日韩美女天天操| 国产精品资源在线观看| 欧美经典一区二区| 成人av片在线观看| 亚洲精品免费在线观看| 欧美三级三级三级| 日韩不卡一区二区三区| 日韩视频一区二区三区在线播放| 麻豆精品一区二区三区| 久久这里只精品最新地址| 成人一区在线观看| 亚洲乱码国产乱码精品精可以看| 在线免费观看日本欧美| 日本欧美一区二区| 国产亚洲一区二区三区| 色综合网色综合| 亚洲成a人v欧美综合天堂下载| 日韩欧美色电影| 国产不卡在线播放| 一区二区三区视频在线观看| 欧美日韩另类一区| 国精产品一区一区三区mba桃花 | 欧美精品亚洲二区| 国产在线不卡视频| 亚洲免费观看高清| 91精品国产一区二区三区香蕉| 国产精一区二区三区| 亚洲精品国产成人久久av盗摄| 91精品国产福利| 成人免费的视频| 爽好多水快深点欧美视频| 久久久精品免费免费| 91麻豆国产香蕉久久精品| 全国精品久久少妇| 中文字幕一区二区三区不卡| 91精品国产色综合久久 | 制服.丝袜.亚洲.另类.中文| 久久精品国产一区二区| 综合色中文字幕| 日韩欧美国产成人一区二区| 91丨九色丨蝌蚪富婆spa| 免费成人av在线| 亚洲少妇最新在线视频| 精品国产百合女同互慰| 在线观看国产精品网站| 国产精品一区三区| 婷婷夜色潮精品综合在线| 国产蜜臀97一区二区三区| 欧美午夜片在线看| 国产69精品一区二区亚洲孕妇| 亚洲不卡一区二区三区| 国产精品乱码人人做人人爱| 欧美一区二区福利视频| 日本韩国精品在线| 高清不卡一区二区在线| 久久爱www久久做| 亚洲sss视频在线视频| 国产精品国产馆在线真实露脸 |