Files
2022-09-20 01:10:09 +03:00

26 lines
530 B
C++

#pragma once
#include <Zydis/Zydis.h>
#include <cstddef>
#include <zasm/base/mode.hpp>
#include <zasm/core/errors.hpp>
#include <zasm/core/expected.hpp>
#include <zasm/program/instruction.hpp>
namespace zasm
{
class Decoder
{
ZydisDecoder _decoder{};
Error _status{};
public:
using Result = zasm::Expected<Instruction, Error>;
Decoder(MachineMode mode) noexcept;
Result decode(const void* data, std::size_t len, std::uint64_t address) noexcept;
};
} // namespace zasm