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

📄 asm.h

📁 模拟了tec2000的所有功能
💻 H
字号:
//#include <iostream.h>

#if !defined(AFX_CCASM_H__753D6C9E_8E71_4AA2_8BEB_CAB0C3087FEC__INCLUDED_)
#define AFX_CCASM_H__753D6C9E_8E71_4AA2_8BEB_CAB0C3087FEC__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "resource.h"

#include "TEC2000.h"

#include "MainFrm.h"
class CTWScriptEdit;


#endif // !defined(AFX_CCASM_H__753D6C9E_8E71_4AA2_8BEB_CAB0C3087FEC__INCLUDED_)

class Casm
{
public:

	CTWScriptEdit *pEdit;
	CString Result;
//	WORD memory[65536];
    WORD *memory;
	WORD R[16];

//	WORD *R;
//	int *F;

	char *now;
	bool signE,signR,signA,signG;
    WORD addressD,addressU,addressT,addressP,ID;

	WORD flags;//czvs p2p100
    int F[8];//二进制表示的标志位
	

	WORD temp,reg;
	WORD pc,sp,thisproadr;//pc,sp,当前地址。
	//WORD stack[256];
	WORD DR,SR,DATA,OFFSET,ADR,IOPORT;

	WORD Ioport80,IoportFlag81,Ioport82,IoportFlag83;//I/o port
	int sign;
	char buf[50];//接受指令缓冲
	char *result;//存报错信息和中间接口信息;
	void showregs();//显示寄存器
	void initregs();//初始化寄存器
	void showflags();//显示标志寄存器
	void showmemory(int address);//显示虚拟内存内容
	void getIns();//从屏幕接受指令和操作
    void traControl(char *);//指令译码
	
    void linkmicro();

    WORD Eaddress;

	void intcontrol();
	void intexe(WORD );

    void controlD();//监控程序D命令
	void controlE();void inE();
	void controlA();
    void controlR();
	void controlG();
	void controlU();
	void controlT();
	void controlP();

	void controlC();
	void controlM();
	void controlF();
    

    void savepcsp();
	void loadpcsp();
	void loadsp();
    
    void traflags();

	bool tecasm();
	bool check1(char *);//检查每一位的字符都是数字
	void asm1(WORD &,char *,WORD);
	void asm21(WORD &,char *,WORD);
	void asm22(WORD &,char *,WORD);
	void asm23(WORD &,char *,WORD);
	void asm3(WORD &,char *,WORD);
	void asm41(WORD &,char *,WORD);
	void asm42(WORD &,char *,WORD);
	void asm5(WORD &,char *,WORD);
	void asm6(WORD &,char *,WORD);

    WORD getinsID();
	WORD getdata(char *p);
	WORD getdr();
	WORD getsr();
	WORD getoffset();
    WORD getadr();
    WORD getioport();

	bool checkcontrolcomd(char *);
 
	void setnow1();
	void setnow2();
	void setnow3();
	WORD tradechex(WORD dear);
    WORD trahexdec(WORD dear);
    Casm();
	//~Casm();

    void ADD();
	void SUB();
    void AND(); 
    void CMP();
    void XOR();
    void TEST();
    void OR(); 
    void MVRR();
    void DEC(); 
    void INC();
    void SHL(); 
    void SHR();
    void JR(); 
    void JRC();
    void JRNC();
    void JRZ(); 
    void JRNZ();
    void JMPA();
    void LDRR();
    void in();
    void STRR();
    void PSHF();
    void PUSH();
    void out();
    void POP();
    void MVRD();
    void POPF();
    void RET();
    void CALA();
    void ADC();
    void SBB();
    void RCL();
    void RCR();
    void ASR();
    void NOT(); 
    void JMPR();
    void JRS();
    void JRNS();
    void CLC();
    void STC(); 
    void EI(); 
    void DI(); 
    void CALR();
    void LDRA();
    void LDRX();
    void STRX();
    void STRA();
    void IRET();
};

⌨️ 快捷键说明

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