⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globalwatch.cpp

📁 一款国产的8051模拟器(全部源代码) 本软件是一款8051模拟器
💻 CPP
字号:
// GlobalWatch.cpp: implementation of the GlobalWatch class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
//#include "8051class.h"
#include "GlobalWatch.h"

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

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

GlobalWatch::GlobalWatch()
{
	SignStr=new TCHAR[4096*16];
	strbuf=new TCHAR[4096*16];
}

GlobalWatch::~GlobalWatch()
{
	delete SignStr;
}

int GlobalWatch::FlashSign()
{
	sprintf(SignStr,"A=\t0x%02X\tB=\t0x%02X\tPC=\t0x%04X\tSP=\t0x%02X\r\nR0=\t0x%02X\tR1=\
	0x%02X\tR2=\t0x%02X\tR3=\t0x%02X\r\nR4=\t0x%02X\tR5=\t0x%02X\tR6=\t0x%02X\tR7=\t0x%02X\r\nP0=\t0x%02X\tP1=\t0x%02X\tP2=\
	0x%02X\tP3=\t0x%02X\r\nPSW=\t0x%02X\tTMOD=\t0x%02X\tTCON=\t0x%02X\tSCON=\t0x%02X\r\nSBUF=\t0x%02X\tIP=\t0x%02X\tDPL=\
	0x%02X\tDPH=\t0x%02X\r\nTL0=\t0x%02X\tTH0=\t0x%02X\tTL1=\t0x%02X\tTH1=\t0x%02X\r\nPCON=\t0x%02X\
	IE=\t0x%02X\r\n\r\n\r\n",(BYTE)(*mem->Am),(BYTE)mem->GetidataMemByte(B),mem->PCm,*(mem->SPm),
	(BYTE)pinst->R(0),(BYTE)pinst->R(1),(BYTE)pinst->R(2),(BYTE)pinst->R(3),(BYTE)pinst->R(4),(BYTE)pinst->R(5),(BYTE)pinst->R(6),(BYTE)pinst->R(7),(BYTE)mem->GetidataMemBytef(P0),
	(BYTE)mem->GetidataMemBytef(P1),(BYTE)mem->GetidataMemBytef(P2),(BYTE)mem->GetidataMemBytef(P3),(BYTE)mem->GetidataMemByte(PSW),(BYTE)mem->GetidataMemBytef(TMOD),
	(BYTE)mem->GetidataMemBytef(TCON),(BYTE)mem->GetidataMemBytef(SCON),(BYTE)mem->GetidataMemBytef(SBUF),(BYTE)mem->GetidataMemBytef(IP),(BYTE)mem->GetidataMemBytef(DPL),
	(BYTE)mem->GetidataMemBytef(DPH),(BYTE)mem->GetidataMemByte(TL0),(BYTE)mem->GetidataMemByte(TH0),(BYTE)mem->GetidataMemByte(TL1),(BYTE)mem->GetidataMemByte(TH1),
	(BYTE)mem->GetidataMemBytef(PCON),(BYTE)mem->GetidataMemBytef(IE));
	sprintf(strbuf,"内部寄存器空间\r\n地址0x00:  ");
	strcat(SignStr,strbuf);
	for(int i=0;i<=255;i++)
	{
		sprintf(strbuf,"%02X ",mem->idata[i]);
		strcat(SignStr,strbuf);
		if((i+1)%16==0&&i!=255)
		{
			sprintf(strbuf,"\r\n地址0x%02X:  ",(i+1));
			strcat(SignStr,strbuf);
		}
	}
	
	sprintf(strbuf,"\r\n周期数:%d\r\n",mem->CLKNUML);
	strcat(SignStr,strbuf);
	sprintf(strbuf,"code-5=0x%04X %02X %02X %02X %02X %02X \r\ncode 0=0x%04X %02X %02X %02X %02X %02X",mem->PCm-5,code(-5),code(-4),code(-3),code(-2),code(-1),mem->PCm,code(0),code(1),code(2),code(3),code(4));
    strcat(SignStr,strbuf);
	//sprintf(strbuf,"\r\n串口发送数据数目:%d\r\n",var8051[0]->PS->bufpos-var8051[0]->PS->databuf1);
	//strcat(SignStr,strbuf);
//	sprintf(SignStr,"R0=%02X",pinst->GetRndata(0));
	return false;
}

TCHAR * GlobalWatch::GetSignStr()
{
	return SignStr;
}

int GlobalWatch::SetMem(instruction * pinsts)
{
	pinst=pinsts;
	mem=pinst->mem;
	return false;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -