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

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

?? cpu.cpp

?? C++實(shí)現(xiàn)的模擬操作系統(tǒng)
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// Cpu.cpp: implementation of the CCpu class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "os.h"
#include "Cpu.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CCpu::CCpu(CShowosDlg * dlg)
{
	pdlg=dlg;
	ax=bx=cx=cs=ds=0;
	psw[0]=psw[1]=psw[2]=0;
	process.ID=999999;
	process.idictatenum=3;
	process.idictaterun=0;
	process.istate=1;
	process.strname="idle";
	process.waittime=0;
	process.pdictate[0].strename="idle";
	process.pdictate[3]=process.pdictate[2]=process.pdictate[0];
	process.pdictate[1]=process.pdictate[4]=process.pdictate[0];
	process.pdictate[5]=process.pdictate[6]=process.pdictate[0];
	process.pdictate[7]=process.pdictate[8]=process.pdictate[0];
	process.pdictate[9]=process.pdictate[10]=process.pdictate[0];
	process.pdictate[11]=process.pdictate[12]=process.pdictate[0];
}

CCpu::~CCpu()
{

}
//////////////////////////////////////////////////////////////////////
//進(jìn)程執(zhí)行完
//////////////////////////////////////////////////////////////////////
void CCpu::CpuRunover(CMemory * pmemory){           //進(jìn)程執(zhí)行完
	pdlg->m_strdictate.Format("endl");         //在指令輸出中顯示endl
	pdlg->Updatashow();	
	pmemory->Destroyprocess((int)process.ID);//刪除進(jìn)程
	CpuChooseprocess(pmemory); //選擇進(jìn)程運(yùn)行		             
}
//////////////////////////////////////////////////////////////////////
//進(jìn)程執(zhí)行完
//////////////////////////////////////////////////////////////////////
void CCpu::CpuParseprocess(CMemory * pmemory){                      //解釋運(yùn)行指令
	CString a="add";
	if(!process.pdictate[process.idictaterun].strename.Compare(a)){ //如果為加法指令
		if(process.pdictate[process.idictaterun].iparstate[2]==1){     //判斷參數(shù)形式
			CpuAdd(process.pdictate[process.idictaterun].strpar[0],process.pdictate[process.idictaterun].ipar[0]);
		}
		else{
			CpuAdd(process.pdictate[process.idictaterun].strpar[0],process.pdictate[process.idictaterun].strpar[1]);
		}
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("sub")){   //如果為減法指令
		if(process.pdictate[process.idictaterun].iparstate[2]==1){     //判斷參數(shù)形式
			CpuSub(process.pdictate[process.idictaterun].strpar[0],process.pdictate[process.idictaterun].ipar[0]);
		}
		else{
			CpuSub(process.pdictate[process.idictaterun].strpar[0],process.pdictate[process.idictaterun].strpar[1]);
		}
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("mul")){  //如果為乘法指令
		CpuMul(process.pdictate[process.idictaterun].strpar[0]);
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("mov")){  //如果為轉(zhuǎn)移指令
		if(process.pdictate[process.idictaterun].iparstate[2]==1){     //判斷參數(shù)形式
			CpuMov(process.pdictate[process.idictaterun].strpar[0],process.pdictate[process.idictaterun].ipar[0]);
		}
		else{
			CpuMov(process.pdictate[process.idictaterun].strpar[0],process.pdictate[process.idictaterun].strpar[1]);
		}
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("div")){  //如果為除法指令
		CpuDiv(process.pdictate[process.idictaterun].strpar[0]);
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("needa")){//如果需要設(shè)備A
		psw[0]=1;
		psw[1]=HALT_NA;   //設(shè)置中斷原因?yàn)樾柙O(shè)備A
		process.idictaterun++;   //指令指向下一條
		CpuOther(process.pdictate[process.idictaterun].strename);            //其他指令
		CpuBlockprocess(pmemory);                 //中斷處理
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("needb")){//如果需要設(shè)備B
		psw[0]=1;
		psw[1]=HALT_NB;   //設(shè)置中斷原因?yàn)樾柙O(shè)備B
		process.idictaterun++;   //指令指向下一條
		CpuBlockprocess(pmemory);                 //中斷處理
		CpuOther(process.pdictate[process.idictaterun].strename);            //其他指令
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("needc")){//如果需要設(shè)備C
		psw[0]=1;
		psw[1]=HALT_NC;   //設(shè)置中斷原因?yàn)樾柙O(shè)備C
		process.idictaterun++;   //指令指向下一條
		CpuBlockprocess(pmemory);                 //中斷處理
		CpuOther(process.pdictate[process.idictaterun].strename);            //其他指令
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("needab")){//如果需要設(shè)備C
		psw[0]=1;
		psw[1]=HALT_NAB;   //設(shè)置中斷原因?yàn)樾柙O(shè)備C
		process.idictaterun++;   //指令指向下一條
		CpuBlockprocess(pmemory);                 //中斷處理
		CpuOther(process.pdictate[process.idictaterun].strename);            //其他指令
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("needac")){//如果需要設(shè)備C
		psw[0]=1;
		psw[1]=HALT_NAC;   //設(shè)置中斷原因?yàn)樾柙O(shè)備C
		process.idictaterun++;   //指令指向下一條
		CpuBlockprocess(pmemory);                 //中斷處理
		CpuOther(process.pdictate[process.idictaterun].strename);            //其他指令
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("needbc")){//如果需要設(shè)備C
		psw[0]=1;
		psw[1]=HALT_NBC;   //設(shè)置中斷原因?yàn)樾柙O(shè)備C
		process.idictaterun++;   //指令指向下一條
		CpuBlockprocess(pmemory);                 //中斷處理
		CpuOther(process.pdictate[process.idictaterun].strename);            //其他指令
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("needabc")){//如果需要設(shè)備C
		psw[0]=1;
		psw[1]=HALT_NABC;   //設(shè)置中斷原因?yàn)樾柙O(shè)備C
		process.idictaterun++;   //指令指向下一條
		CpuBlockprocess(pmemory);                 //中斷處理
		CpuOther(process.pdictate[process.idictaterun].strename);            //其他指令
	}
	else if(!process.pdictate[process.idictaterun].strename.Compare("needinput")){//如果需要輸入
		psw[0]=1;
		psw[1]=5;   //設(shè)置中斷原因?yàn)榈却斎?		process.idictaterun++;   //指令指向下一條
		CpuBlockprocess(pmemory);                 //中斷處理
		CpuOther(process.pdictate[process.idictaterun].strename);            //其他指令
	}
	else
		CpuOther(process.pdictate[process.idictaterun].strename);            //其他指令
	process.idictaterun++;                                            //指令指向下一條
	Cpushowregister();

}
//////////////////////////////////////////////////////////////////////
//進(jìn)程執(zhí)行完
//////////////////////////////////////////////////////////////////////
void CCpu::CpuBlockprocess(CMemory * pmemory){                //中斷處理
	process.isavereg[0]=ax;
	process.isavereg[1]=bx;
	process.isavereg[2]=cx;
	process.isavereg[3]=cs;
	process.isavereg[4]=ds;
	process.isavereg[5]=psw[0];
	process.isavereg[6]=psw[1];
	process.isavereg[7]=psw[2];                      //保護(hù)現(xiàn)場(chǎng)
	process.ihaltreasion=psw[1];                     //設(shè)置中斷原因
	pmemory->Blockprocess(process);                  //進(jìn)程阻塞
	CpuChooseprocess(pmemory);                       //選擇進(jìn)程
//	CpuSetpsw(0,0);								  	 //設(shè)置psw[0]為0 表示已處理完中斷
 
}
//////////////////////////////////////////////////////////////////////
//cpu一直運(yùn)行函數(shù)
//////////////////////////////////////////////////////////////////////
void CCpu::CpuRun(CMemory * pmemory){         //cpu一直運(yùn)行函數(shù)
	
	if(psw[0]==0){     //如果無中斷
		if(process.idictaterun>=process.idictatenum){//如果運(yùn)行完
			//if(process.strname!="idle")
				CpuRunover(pmemory);
				CpuParseprocess(pmemory);                   //解釋運(yùn)行指令
		}
		else{
			CpuParseprocess(pmemory);                     //解釋運(yùn)行指令
			
		}
		
	}
	else{
		CpuBlockprocess(pmemory);                 //中斷處理
		CpuParseprocess(pmemory);                     //解釋運(yùn)行指令
	}
	pdlg->Updatashow();
}

//////////////////////////////////////////////////////////////////////
//初始化寄存器
//////////////////////////////////////////////////////////////////////
void CCpu::CpuInit(int iax,int ibx,int icx,int ics,int ids,int ipsw[3]){
    ax=iax;
	bx=ibx;
	cx=icx;
	cs=ics;
	ds=ids;
	psw[0]=ipsw[0];
	psw[1]=ipsw[1];
	psw[2]=ipsw[3];
	Cpushowregister();

}
//////////////////////////////////////////////////////////////////////
void CCpu::CpuInit(int iax,int ibx,int icx,int ics,int ids,int ipsw1,int ipsw2,int ipsw3){
     int ips[3];
	 ips[0]=ipsw1;
	 ips[1]=ipsw2;
	 ips[2]=ipsw3;
	 CpuInit(iax,ibx,icx,ics,ids,ips);
	 Cpushowregister();
}
///////////////////////////////////////////////////////////////////////
void CCpu::CpuInit(Sprocess process){      //初始化寄存器
	CpuInit(process.isavereg[0],process.isavereg[1],process.isavereg[2],process.isavereg[3],
		process.isavereg[4],process.isavereg[5],process.isavereg[6],process.isavereg[7]);
}
//////////////////////////////////////////////////////////////////////
//得到寄存器的值
//////////////////////////////////////////////////////////////////////
int CCpu::CpuGetax(){   //得到ax的值
	return ax;
}
int CCpu::CpuGetbx(){   //得到bx的值
	return bx;
}
int CCpu::CpuGetcx(){   //得到cx的值
	return cx;
}
int CCpu::CpuGetcs(){   //得到cs的值
	return cs;
}
int CCpu::CpuGetds(){   //得到ds的值
	return ds;
}
int CCpu::CpuGetpsw(int a){   //得到psw 的第a個(gè)的值

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区二区国产| 久久99蜜桃精品| 久久综合久久综合久久| 91福利社在线观看| 国产精品99久久久久久久vr| 亚洲电影一区二区三区| 国产片一区二区三区| 91精品国产综合久久福利| 99精品视频一区二区三区| 激情综合一区二区三区| 亚洲国产精品久久久久婷婷884| 久久免费美女视频| 欧美一区二区三区思思人| 欧美图区在线视频| 91蜜桃免费观看视频| 成人久久视频在线观看| 国产精选一区二区三区| 奇米色一区二区| 午夜精品久久久久久久久| 伊人婷婷欧美激情| 中文字幕综合网| 国产精品日韩成人| 国产欧美日韩综合| 26uuu色噜噜精品一区| 51精品秘密在线观看| 欧美午夜电影在线播放| 色婷婷狠狠综合| 色哟哟一区二区在线观看| 91麻豆精品国产91久久久 | 91老师片黄在线观看| 国产又粗又猛又爽又黄91精品| 天天影视色香欲综合网老头| 亚洲成在人线在线播放| 一区二区三区毛片| 亚洲国产一区二区在线播放| 亚洲自拍偷拍网站| 亚洲va国产va欧美va观看| 亚洲一区二区视频在线| 亚洲一区二区三区美女| 午夜视频一区二区三区| 日韩专区一卡二卡| 麻豆精品国产传媒mv男同| 伦理电影国产精品| 国产乱子伦一区二区三区国色天香| 黑人巨大精品欧美黑白配亚洲| 国产一区二区精品久久91| 国产一区二区三区四区五区美女| 国产精品资源网| av不卡在线播放| 在线观看成人小视频| 欧美日韩一区二区三区高清| 欧美日韩国产免费一区二区| 欧美丰满嫩嫩电影| 26uuu久久天堂性欧美| 国产亚洲综合色| 亚洲欧美日韩国产一区二区三区| 夜夜精品视频一区二区| 天堂在线一区二区| 久久66热偷产精品| 丁香另类激情小说| 欧美视频一区二区三区在线观看 | 91免费版pro下载短视频| 在线亚洲免费视频| 日韩视频123| 国产视频亚洲色图| 亚洲免费观看在线观看| 婷婷国产在线综合| 国产精品一线二线三线| 97精品久久久久中文字幕| 欧美在线免费观看亚洲| 欧美大胆一级视频| 亚洲少妇中出一区| 日本v片在线高清不卡在线观看| 精品一区二区av| 色悠悠久久综合| 精品国免费一区二区三区| 国产精品久久久久久久久快鸭| 亚洲资源在线观看| 国产福利91精品| 欧美日韩一区二区三区免费看| 久久亚洲精品小早川怜子| 一区二区免费在线播放| 国产一区久久久| 欧美唯美清纯偷拍| 国产精品乱码一区二区三区软件 | 经典三级视频一区| 色丁香久综合在线久综合在线观看| 日韩欧美国产1| 亚洲激情欧美激情| 激情久久五月天| 欧美性一二三区| 国产精品国产精品国产专区不蜜| 五月婷婷色综合| jlzzjlzz欧美大全| 26uuu另类欧美亚洲曰本| 亚洲电影一级黄| av午夜精品一区二区三区| 欧美精品一区二区在线观看| 亚洲精品水蜜桃| 丰满放荡岳乱妇91ww| 日韩一级高清毛片| 亚洲国产欧美在线| 色综合久久中文字幕| 国产日韩欧美精品综合| 免费亚洲电影在线| 欧美视频你懂的| 国产精品毛片久久久久久久| 久久99国产精品免费网站| 欧美理论片在线| 亚洲一区欧美一区| a级高清视频欧美日韩| 久久综合久久鬼色中文字| 日韩中文字幕91| 在线视频欧美精品| 综合激情成人伊人| av资源站一区| 国产精品久久777777| 国产精品亚洲人在线观看| 欧美大度的电影原声| 肉色丝袜一区二区| 欧美日韩黄色影视| 亚洲第一av色| 欧美在线观看禁18| 亚洲一区二区三区在线看| 一本大道久久a久久综合婷婷| 国产精品传媒入口麻豆| 成人性生交大片免费看在线播放| 久久久久久久久伊人| 国模娜娜一区二区三区| 欧美xingq一区二区| 男女性色大片免费观看一区二区 | 亚洲精品成人悠悠色影视| 99久久综合精品| 成人欧美一区二区三区1314| 成人激情小说网站| 中文字幕一区二区三区色视频 | 天天做天天摸天天爽国产一区 | 无码av免费一区二区三区试看| 91福利在线导航| 亚洲a一区二区| 91精品国产综合久久久久久久 | 久久午夜国产精品| 国模少妇一区二区三区| 国产欧美日韩亚州综合 | 欧美网站大全在线观看| 亚洲高清中文字幕| 日韩一区二区三区观看| 精品亚洲aⅴ乱码一区二区三区| 精品国产不卡一区二区三区| 国产成人免费视频一区| 亚洲欧洲www| 欧美日韩一区成人| 美女精品自拍一二三四| 精品精品国产高清a毛片牛牛 | 国产不卡免费视频| 中文字幕永久在线不卡| 91国产丝袜在线播放| 日韩高清一区在线| 久久久不卡影院| 99视频精品免费视频| 亚洲成人在线观看视频| 日韩免费看的电影| 成人av电影免费观看| 亚洲国产日韩综合久久精品| 精品久久久久久久久久久久久久久| 国产成人av影院| 一区二区在线电影| 精品国内二区三区| 91碰在线视频| 日韩av网站在线观看| 国产日韩亚洲欧美综合| 欧美性生活影院| 九九视频精品免费| 亚洲日本在线天堂| 精品久久人人做人人爰| aa级大片欧美| 久久电影网电视剧免费观看| 国产精品久久久久久亚洲伦 | 国产精品久久久久久久久晋中 | 欧美中文字幕亚洲一区二区va在线| 日本免费在线视频不卡一不卡二| 国产日韩欧美激情| 欧美理论在线播放| av亚洲精华国产精华精华| 三级不卡在线观看| 中文字幕亚洲一区二区va在线| 777精品伊人久久久久大香线蕉| 国产成人av网站| 奇米精品一区二区三区在线观看一| 国产精品久久久久久久午夜片| 欧美精品日韩一区| 99久久99久久久精品齐齐| 精品一区二区三区av| 亚洲电影一级黄| 综合av第一页| 国产日韩精品视频一区| 日韩欧美综合一区| 欧美日韩在线观看一区二区| 丁香婷婷综合色啪| 久久se精品一区精品二区|