35 lines
702 B
C++
35 lines
702 B
C++
#include <execute/flags.hpp>
|
|
#include <execute/registers.hpp>
|
|
#include <execute/state.hpp>
|
|
#include <interpret/code.hpp>
|
|
|
|
namespace Execute
|
|
{
|
|
class VirtualMachine
|
|
{
|
|
private:
|
|
Flags flags;
|
|
Registers registers;
|
|
State state;
|
|
bool terminated;
|
|
|
|
Interpret::Code const & code;
|
|
|
|
void Step();
|
|
|
|
VirtualMachine(Interpret::Code const & code, unsigned const memorySize);
|
|
|
|
public:
|
|
void Run();
|
|
void SingleStep();
|
|
|
|
Flags const & GetFlags() const;
|
|
Registers const & GetRegisters() const;
|
|
State const & GetState() const;
|
|
Interpret::Statement const * const GetCurrentStatement() const;
|
|
|
|
bool IsTerminated() const;
|
|
|
|
static VirtualMachine CreateFromCode(Interpret::Code const & code);
|
|
};
|
|
} |