#include #include #include #include "Iinstr.hpp" using namespace std; class disasm { private: std::map instrs; class uint32_from_hex // For use with boost::lexical_cast { typedef unsigned int uint32; uint32 value; public: operator uint32() const { return value; } friend std::istream& operator>>(std::istream& in, uint32_from_hex& outValue) { in >> std::hex >> outValue.value; return in; } }; protected: void decodeCondition(short); Iinstr* decodeOpcode(short); public: disasm(std::map map) : instrs(map) {}; std::string decode(std::string); };