cin>>ch;
return 0;
}
//leaf_core_virtual_machine.hpp文件
#ifndef __leaf_core_virtual_machine_hpp__
#define __leaf_core_virtual_machine_hpp__
class CVirtualMachine {
private:
int m_memory[100]; //内存
int m_instruction_counter; //指令计数器
int m_instruction_register; //指令寄存器
int m_opcode; //操作码
int m_address; //内存地址
int m_accumulator; //寄存器
public:
//Virtual Machine操作码
static const int const_input = 1; //存放用户输入数据到内存
static const int const_print = 2; //输出内存数据到屏幕
static const int const_load = 3; //加载内存数据到寄存器
static const int const_store = 4; //存放寄存器数据到内存
static const int const_plus = 5; //寄存器数据加上内存数据
static const int const_minus = 6; //寄存器数据减去内存数据
static const int const_multiply = 7; //寄存器数据乘以内存数据
static const int const_divide = 8; //寄存器数据除以内存数据
static const int const_branch = 9; //转移
static const int const_branch_below = 10; //寄存器数据小于零转移
static const int const_branch_zero = 11; //寄存器数据等于零转移
static const int const_halt = 12; //终止
public:
CVirtualMachine();
~CVirtualMachine();
void boot(); //启动虚拟机
void shut(); //关闭虚拟机
void load_program(int *program); //加载程序到虚拟机内存
void print_program(); //打印程序
void run_program(); //运行程序
};
#endif
#include
//leaf_core_virtual_machine.cpp文件
#include "leaf_core_virtual_machine.hpp"
using namespace std;
//初始化虚拟机
CVirtualMachine::CVirtualMachine()
{
m_instruction_counter = 0;
m_instruction_register = 0;
m_opcode = 0;
m_address = 0;
}
CVirtualMachine::~CVirtualMachine()
{
}
//启动虚拟机
void CVirtualMachine::boot()
{
co