diff options
Diffstat (limited to 'asm/arm/main.cpp')
-rw-r--r-- | asm/arm/main.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/asm/arm/main.cpp b/asm/arm/main.cpp new file mode 100644 index 0000000..20e67ab --- /dev/null +++ b/asm/arm/main.cpp @@ -0,0 +1,41 @@ +#include <iostream> +#include <stdexcept> + +#include <fmt/format.h> + +#include <libreichwein/file.h> + +#include "assembler.h" +#include "instruction.h" + +void dump(const code_sequence& c) +{ + for (size_t i = 0; i < c.size(); ++i) { + if ((i % 16) == 0) { + if (i > 0) + std::cout << std::endl; + } else { + std::cout << " "; + } + std::cout << fmt::format("{:02x}", c[i]); + } + std::cout << std::endl; +} + +int main(int argc, char* argv[]) +{ + try { + if (argc == 2) { + Assembler assembler; + std::string source {Reichwein::File::getFile(argv[1])}; + code_sequence result {assembler.encode(source)}; + dump(result); + } + return 0; + } catch (const std::exception& ex) { + std::cerr << "Error: " << ex.what() << std::endl; + return 1; + } + return 2; +} + |