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

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

?? instruction.h

?? 一款國產的8051模擬器(全部源代碼) 本軟件是一款8051模擬器
?? H
字號:
///////////////////////////////////////////////////////////////////////
// 圓夢51!圓夢51!圓夢51!圓夢51!圓夢51!圓夢51!圓夢51!圓夢51!圓夢51!圓夢51!
// 1998.x.x 多少遺憾,多少淚水,路在何方?? 為什么失敗的總是我??夢想為什么這么遙遠
// ........學x86很久了,書本都翻了n遍了......
// 雖然x86很強大,但要做臺x86計算機真是太難了,8051單片機真的簡單了很多,我想做個8051的計算機.
// 沒有編程器的日子,真是不好受,自己又沒條件能做電路板,要是能有臺計算機模擬8051,那將是多莫令人興奮的事情啊
// 但是我什么都沒有............什么都沒有
// 1999.x.x草稿紙上完成基本的框架圖和基本算法,并完成部分核心代碼,將項目名稱定為圓夢51
// .......飄啊搖啊,淡漠了生活,忘記了夢想,就這樣渾渾噩噩的活著........夢已死
// 2002.8.24 塵世間多少煩惱,從此不必再牽掛。為了夢想我終于可以從現實中解脫出來一段時間,不上學的日子真好,真令人懷念。
// 建立指令模擬instruction和memory 代碼檔。
// 不懂windows C編程是我最大的障礙,......1年時間......我想應該是我這一生中最有價值的時間,以前沒有,以后可能更沒有了
// 2003.12.x
// 因為要上學,所以能夠靜下心來學習的時間基本上再也找不到了
// 2004.9.2 基本初步完成,尚未完成中斷返回,尚未debug
// 2004.11.17 調試浮點程序通過,^_^ :) ^o^ ^0^ :(  >_< 他的缺點就是他的優點,我無法權衡,指令類暫時先穩定下來吧
// 當學生真是無奈,我在倒退..............我在放棄夢想...............
// 2005.3.28 不管怎樣我要圓夢,我不能做個永遠失敗的人,建立KernelMsg interruptcontroller代碼檔
// 2005.4.3 建立TIMER檔,這可把我難倒了,效能,錯誤...............
// 2005.4.14 KernelMsg TIMER初步完成,莫名其妙的錯誤太多,KernelMsg真的很失敗,增加了編寫難度,更不易調試.....
// 2005.4.18 不管三七二十一,湊出來再說,我好想運行以下ucos ii,建立Serial類
// 2005.4.21 為了提供對多處理器系統的支持,并能夠模擬多了處理器,對全局變量 函數作了修改,使之不但打破了C++的封裝,
// 又使得全局函數類似類中的函數,所以在不增加代碼的情況下,可直接模擬多處理器
// 2005.4.24 垃圾誕生,不得不對KernelMsg重新編寫,以提高時間事件函數HOOK的安全性,降低時間HOOK的編寫難度,
// 不用自己處理下層的HOOK問題,效率更高,隨后TIMER Serial也作了大面積修改
// 2005.4.25 uCOS-II終于正確無誤的運行成功了。0.10版核心到此為止告一段落。
// 盡管0.10沒有經過完全的測試,我敢肯定定時器這部分還是有問題,而且串口,定時器還沒有完善,
// 但是我已經對他沒有很大主動測試方面的興趣了,留著讓用戶來發現吧
// 著手開始0.11的開發,這更能吸引我的眼球,新的目標是利用KernelMsg思想大面積優化指令集的加速,以其其他速度方面的優化,
// 希望速度能追上Keil C
//////////////////////////////////////////////////////////////////////




////////////////////////////////////////////////////////////////////////////
// instruction.h: interface for the instruction class.
// 指令模擬類(核心類)
// 2002.8.24 建立代碼檔
// 2003.7.xx 打好基本框架
// 2004.9.2 初始版本的編碼工作基本完成,尚未測試,尚未完成中斷返回
// 2004.11.17 浮點測試程序通過 Y=Ln√ |Sin(ab/c+d)|
// 2005.4.3 完成中斷返回的編碼工作
// 2005.4.16 修正CJNE判斷兩操作數相等時CY應該=0的問題
////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_INSTRUCTION_H__92B19190_52B2_4E0D_AFA4_B12BEA3F3300__INCLUDED_)
#define AFX_INSTRUCTION_H__92B19190_52B2_4E0D_AFA4_B12BEA3F3300__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//# I立即數尋址 //@ D 間接尋址//
#include "GlobalVar.h"

#define debug 0
#define code(x) (mem->pcode[mem->PCm+x])//PC+偏移量x處的代碼
#define A (*(mem->Am))//A
#define DPTR (*(mem->DPTRm))
#define PC mem->PCm
#define APC(x) mem->AddPC(x)//PC+x;
#define SP (*(mem->SPm))
#define CY mem->GetBitf(0xd7)
#define CYw(n) mem->SetBitf(0xd7,n)
#define OV mem->GetBitf(0xd2)
#define OVw(n) mem->SetBitf(0xd2,n)
#define AC mem->GetBitf(0xd6)//讀AC
#define ACw(n) mem->SetBitf(0xd6,n)//寫AC
#define CFB buf1=0;buf2=0;buf3.bufa=0;buf4.bufa=0;buf4.bufa=0//計算緩沖置0
//#define Aw(x) mem->SetidataMemByte(Acc,x)//寫A
/*//CO宏為加法溢出法判斷
#define CO(x) \
if((x)>127||(x)<-128) \
{ \
	OVw(1);\
}\
else\
{\
	OVw(0);\
}
//COB宏為減法溢出法判斷
#define COB(x) \
buf1=(x)&0x80;\
buf1=buf1>>7;\
buf5.bufa=(x)&0x100;\
if(buf1^buf5.ACa.CYa)\
{ \
	OVw(1);\
}\
else\
{\
	OVw(0);\
}
//檢查結果設置OV*/
#define R(n) GetRndata(n)//讀Rn
#define Gb(Addr) (mem->GetBit(Addr))//讀位
#define Sb(Addr,n) mem->SetBit(Addr,n) //寫位
#define Rw(n,d) SetRndata(n,d)//寫Rn
#define DR(n) GetDRiData(n,0)//讀間接尋址Rn的內容(內部數據地址)
#define DRw(n,d) SetDRiData(n,d,0);//寫Rn間接尋址Rn的內容(內部數據地址)
#define DxR(n) GetDRiData(n,1)//讀Rn間接尋址Rn的內容(外部數據地址)
#define DxRw(n,d) SetDRiData(n,d,1)//寫Rn間接尋址Rn的內容(外部數據地址)
#define DcR(n) GetDRiData(n,2)//讀Rn間接尋址Rn的內容(外部代碼地址)
#define DcRw(n,d) SetDRiData(n,d,2)//寫Rn間接尋址Rn的內容(外部代碼地址)
#include "kernelMsg.h"
#include "memory.h"

//	================================================================
//	|		   21     20    19-11    10     9      8     7-4   3-0 |
//	|		|CY4(1)|CY3(1)|bufR(8)|CY2(1)|CY1(1)|CYa(1)|AH(4)|AL(4)|
//	|												   |	 Aa    |
//	|-----------------------------bufa-----------------------------|
//	================================================================
struct bita //A的計算緩沖位定義
{
	unsigned AL:4;
	unsigned AH:4;
	unsigned CYa:1;
	unsigned CY1:1;//以下為循環移位計算緩沖
	unsigned CY2:1;
	unsigned bufR:8;
	unsigned CY3:1;
	unsigned CY4:1;
};
struct bita34
{
	unsigned AL:4;
	unsigned AH3:3;
	unsigned AH4:1;
	unsigned CYa:1;
	unsigned CY1:1;//以下為循環移位計算緩沖
	unsigned CY2:1;
	unsigned bufR:8;
	unsigned CY3:1;
	unsigned CY4:1;
};
struct bita7
{
	unsigned A7:7;
	unsigned A8:1;
	unsigned CYa:1;
	unsigned CY1:1;//以下為循環移位計算緩沖
	unsigned CY2:1;
	unsigned bufR:8;
	unsigned CY3:1;
	unsigned CY4:1;
};
union Bufa
{
	bita ACa;//A,CY
	bita34 ACa34;
	bita7 ACa7;
	BYTE Aa;
	DWORD bufa;//無符號數
	int bufs;//符號數
};
typedef void (*ClockHook)(BYTE VarNum,unsigned short Clocknum);
class instruction  //指令類
{
public:
	void RUN();
	void init();
	int RETIANON();//中斷返回后應該執行的操作,如果有等待狀態的中斷,條件滿足的話,則執行中斷,否則CheakIRQ,直到沒有中斷為止
	void RUNCLK(int Code);
	void RUNINS(int Code);
	
	void SetRndata(BYTE Rn,BYTE data);//寫Rn
	BYTE GetRndata(BYTE Rn);//讀Rn
	void SetDRiData(BYTE Ri,BYTE data,BYTE AddrMode);//AddrMode內存地址空間模式 0:內部地址,1:外部數據地址2:外部代碼地址
	BYTE GetDRiData(BYTE Ri,BYTE AddrMode);
	__forceinline void Clock(int count);
//	unsigned short & PCm;
	BYTE GetRnAddr(BYTE Rn);
	BYTE buf1,buf2;
	Bufa buf3,buf4,buf5,buf9;//存放中間結果
	unsigned short buf6;
	char buf7;
	instruction * pnextinst;//為多處理器環境建立指令執行連表提供方便
	void CreateMap();
	void NULLFun();
	EVENT_ON_ONECLOCK * ClockEventPos[65536];
	EVENT_ON_ONECLOCK * pClockHookFunpos;
	int BackClockCount;//上一個時鐘計數
	BYTE PSW_RS;
	BYTE RnAddr;//Rn地址計算用緩沖
	kernelMsg * pKMsg;
	memory * mem;
	typedef void (instruction::*Fun)();
	Fun INSMAP[256];//指令映射實例
#if debug ==1 //debug模式
	BYTE dbuf1;
	BYTE INSMAPMON[256];
	CString dbstr;
#endif
	//memory * mem;
	////////////////////////////17 111
	void JBC_bit_rel();
	void JNB_bit_rel();
	void JB_bit_rel();
	void JNC_rel();
	void JC_rel();
	void ORL_C_NOT_bit();
	void ANL_C_NOT_bit();
	void ORL_C_bit();
	void ANL_C_bit();
	void SETB_bit();
	void CLR_bit();
	void CPL_bit();
	void SETB_C();
	void CLR_C();
	void CPL_C();
	void MOV_bit_C();
	void MOV_C_bit();

	//////////////////////////17 94
	void NOP();
	void RETI();
	void RET();
	void LCALL_addr16();
	void ACALL_addr11();
	void DJNZ_direct_rel();
	void DJNZ_Rn_rel();
	void CJNE_DRi_Idata_rel();
	void CJNE_Rn_Idata_rel();
	void CJNE_A_Idata_rel();
	void CJNE_A_direct_rel();
	void JNZ_rel();
	void JZ_rel();
	void JMP_DAaddDPTR();
	void SJMP_rel();
	void LJMP_addr16();
	void AJMP_addr11();
	////////////////////////24 77
	void RRC_A();
	void RLC_A();
	void RR_A();
	void RL_A();
	void CLR_A();
	void CPL_A();


	void XRL_direct_Idata();
	void XRL_A_Idata();
	void XRL_direct_A();
	void XRL_A_DRi();
	void XRL_A_direct();
	void XRL_A_Rn();


	void ORL_direct_Idata();
	void ORL_A_Idata();
	void ORL_direct_A();
	void ORL_A_direct();
	void ORL_A_DRi();
	void ORL_A_Rn();

	void ANL_direct_Idata();
	void ANL_A_Idata();
	void ANL_direct_A();
	void ANL_A_direct();
	void ANL_A_DRi();
	void ANL_A_Rn();
	///////////////////////16 53
	void DIV_AB();
	void MUL_AB();
	void DA_A();
	void DEC_direct();
	void DEC_Rn();
	void DEC_DRi();
	void DEC_A();
	void INC_DPTR();
	void INC_direct();
	void INC_DRi();
	void inc_Rn();
	void INC_A();
	void SUB_A_Idata();
	void SUB_A_direct();
	void SUB_A_DRi();
	void SUB_A_Rn();
	///////////////////////8 37
	void ADDC_A_Idata();
	void ADDC_A_direct();
	void ADDC_A_DRi();
	void ADDC_A_Rn();
	void ADD_A_Idata();
	void ADD_A_direct();
	void ADD_A_DRi();
	void ADD_A_Rn();
	///////////////////////2 29
	void POP_direct();
	void PUSH_direct();
	///////////////////////////////////5 27
	void SWAP_A();
	void XCHD_A_DRi();
	void XCH_A_direct();
	void XCH_A_DRi();
	void XCH_A_Rn();
	////////////////////////2  22
	void MOVC_A_DAaddPC();
	void MOVC_A_DAaddDPTR();
	////////////////////////4   20
	void MOVX_DDPTR_A();
	void MOVX_A_DRi();
	void MOVX_DRi_A();
	void MOVX_A_DDPTR();

	////////////////////////6  16
	void MOV_A_DRi();
	void MOV_direct_DRi();
	void MOV_direct2_direct1();
	void MOV_DRi_direct();
	void MOV_A_direct();
	void MOV_Rn_direct();
	////////////////////////5  10
	void MOV_DRi_A();
	void MOV_direct_A();
	void MOV_A_Rn();
	void MOV_Rn_A();
	void MOV_direct_Rn();
	////////////////////////5 
	void MOV_DPTR_Idata16();
	void MOV_direct_Idata();
	void MOV_DRi_Idata();
	void MOV_Rn_Idata();
	void MOV_A_Idata();
	instruction();
	virtual ~instruction();

};

#endif // !defined(AFX_INSTRUCTION_H__92B19190_52B2_4E0D_AFA4_B12BEA3F3300__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美高清一级片在线| 国产电影一区在线| 欧美一区二区网站| 蜜桃在线一区二区三区| 精品美女一区二区| 国产成人综合亚洲91猫咪| 日本一区二区成人在线| 99久久精品国产观看| 亚洲一区二区黄色| 欧美成人乱码一区二区三区| 粉嫩13p一区二区三区| 国产精品久久久久天堂| 在线视频你懂得一区二区三区| 亚洲在线视频网站| 日韩一区二区免费电影| 国产成人在线视频免费播放| 中文字幕一区二区视频| 欧美三片在线视频观看 | 中文天堂在线一区| 99久久精品国产精品久久| 亚洲v日本v欧美v久久精品| 日韩一区二区免费视频| 成人国产一区二区三区精品| 亚洲自拍偷拍av| 精品福利一区二区三区免费视频| 高清日韩电视剧大全免费| 亚洲国产精品嫩草影院| 久久久久久久久久久99999| 色婷婷香蕉在线一区二区| 久久99精品国产.久久久久久| 国产精品久久久久久久岛一牛影视 | 成人美女视频在线观看18| 亚洲成av人片在线观看无码| 久久影音资源网| 欧美色图12p| 国产99精品视频| 日本午夜一区二区| 17c精品麻豆一区二区免费| 精品日韩一区二区三区| 欧美亚洲高清一区二区三区不卡| 国产在线乱码一区二区三区| 亚洲不卡在线观看| 亚洲男女一区二区三区| 久久精品视频免费观看| 91精品国产麻豆国产自产在线 | 亚洲三级久久久| 精品精品国产高清a毛片牛牛| 色综合久久66| 豆国产96在线|亚洲| 精品一区中文字幕| 日本午夜一区二区| 午夜日韩在线电影| 一区二区三区精品在线观看| 国产女主播视频一区二区| 日韩视频在线永久播放| 欧美日韩日日摸| 色综合中文字幕国产 | 91福利在线播放| 国产成人精品免费在线| 青青草国产精品亚洲专区无| 亚洲观看高清完整版在线观看| 亚洲欧美日韩国产另类专区| 中文字幕巨乱亚洲| 国产欧美一二三区| 国产亚洲欧美激情| 国产欧美视频在线观看| 久久久国际精品| 久久久亚洲国产美女国产盗摄| 日韩一区中文字幕| 国产精品色呦呦| 国产清纯白嫩初高生在线观看91 | 久久国产免费看| 日韩精品一区第一页| 亚洲一区二区黄色| 亚洲成人精品影院| 性感美女极品91精品| 亚洲成人av在线电影| 日韩中文字幕1| 青青草91视频| 国产自产高清不卡| 国产精品一区二区不卡| 粉嫩一区二区三区性色av| av不卡免费在线观看| 色综合中文字幕| 欧美日韩电影一区| 欧美一区二区三区免费大片 | 久久精品在线观看| 国产精品久久久久精k8| 国产精品大尺度| 亚洲一区国产视频| 丝袜亚洲精品中文字幕一区| 美女视频黄免费的久久| 国产呦精品一区二区三区网站| 国产精品综合在线视频| www.在线欧美| 欧美日韩视频不卡| 久久亚洲一区二区三区四区| 亚洲国产精品精华液2区45| 亚洲视频免费观看| 三级在线观看一区二区| 国产精品自拍毛片| 色综合久久六月婷婷中文字幕| 欧美日韩午夜影院| 久久蜜桃香蕉精品一区二区三区| 中文字幕一区二区三区蜜月| 亚洲一区二区三区四区五区中文| 蜜臀精品久久久久久蜜臀| 成人sese在线| 91精品欧美福利在线观看| 久久久精品国产99久久精品芒果 | a亚洲天堂av| 在线观看91av| 中文字幕精品三区| 水野朝阳av一区二区三区| 国产一区二区三区免费| 色噜噜夜夜夜综合网| 欧美成人三级在线| 一区二区三区中文在线| 久久99国产精品久久99| 91论坛在线播放| 精品国产91久久久久久久妲己 | 日韩精品中文字幕在线一区| 中文字幕精品综合| 日韩在线一区二区三区| 不卡一区二区在线| 欧美不卡一二三| 高清国产一区二区| 日韩欧美国产一区二区三区 | 欧美色图天堂网| 日本一区二区成人在线| 久久精品99久久久| 欧美日韩精品是欧美日韩精品| 国产精品美女久久久久aⅴ国产馆| 日韩专区一卡二卡| 色素色在线综合| 亚洲国产精品av| 久久99国产精品成人| 欧美男女性生活在线直播观看| 亚洲视频香蕉人妖| 国产v综合v亚洲欧| 精品少妇一区二区三区视频免付费| 亚洲一区欧美一区| 色综合久久久网| 成人欧美一区二区三区白人| 国产一区中文字幕| 日韩限制级电影在线观看| 亚洲一区二区三区国产| 91丨九色丨蝌蚪丨老版| 国产精品丝袜91| 国产精品一区久久久久| 日韩久久久精品| 日本欧美加勒比视频| 欧美群妇大交群的观看方式| 一区二区三区精密机械公司| 99re这里只有精品首页| 国产喷白浆一区二区三区| 国产精品99精品久久免费| 久久日韩精品一区二区五区| 玖玖九九国产精品| 欧美成人性福生活免费看| 久久se精品一区二区| 日韩女优视频免费观看| 久久精品99久久久| 精品少妇一区二区三区日产乱码 | 亚洲综合区在线| 91视频com| 亚洲美女屁股眼交3| 99精品欧美一区二区三区综合在线| 国产精品日日摸夜夜摸av| 成人福利视频在线| 中文字幕日本乱码精品影院| av影院午夜一区| 亚洲美女淫视频| 欧美日本乱大交xxxxx| 午夜精品福利久久久| 日韩欧美的一区| 国产在线精品免费| 国产精品毛片a∨一区二区三区| 成人动漫视频在线| 伊人色综合久久天天人手人婷| 在线观看一区二区视频| 亚洲国产综合在线| 日韩欧美中文字幕一区| 久久超碰97人人做人人爱| 欧美激情在线一区二区| 99精品国产热久久91蜜凸| 亚洲自拍与偷拍| 欧美一区二视频| 懂色av噜噜一区二区三区av| 亚洲欧美一区二区三区久本道91| 欧美日韩中文字幕精品| 男女激情视频一区| 欧美极品另类videosde| 色综合久久久久网| 日韩精品电影一区亚洲| 奇米精品一区二区三区在线观看一| 日韩精品一区二区三区视频播放| 国产成人精品综合在线观看 | 欧美精品亚洲二区| 麻豆精品久久久|