+#ifndef __DISASM_H__
+#define __DISASM_H__
+
#include <iostream>
#include <string>
#include <map>
+#include "uint32_from_hex.hpp"
+
+class Iinstr;
+
#include "Iinstr.hpp"
using namespace std;
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);
+ Iinstr* decode(std::string);
+ Iinstr* decodeNum(CDat);
+ std::string decodeToString(std::string str);
};
+#endif