Files
wassembly/include/execute/virtualmachine.hpp

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);
};
}