--- /dev/null
+#include <iostream>
+#include <string>
+#include <map>
+
+#include "Iinstr.hpp"
+
+using namespace std;
+
+class disasm {
+
+ private:
+ std::map<short,Iinstr*> 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<short,Iinstr*> map) : instrs(map) {};
+ std::string decode(std::string);
+};
+