我应该在 C++ 中使用哪种工具来创建简单的 RISC-V 反汇编程序?

What sort of tools should I use in C++ to create a simple RISC-V disassembler?

我想用 C++ 创建一个简单的 RISC-V 反汇编器。
目标是能够获取由十六进制的单独字节组成的 .bin 文件,并将这些字节解析为可读的、格式化的 RISC-V 指令。
我想这可以只使用 switch 语句来完成,但是解决这个问题的更可靠的方法是什么?

我是一名 CS 学生,所以我将此作为一个学习练习来处理,并希望通过这个项目熟悉 C++ 的工具。

假设指令始终具有相同的大小,即采用相同的字节数,包括地址模式选择和参数,那么查找表可能是一个有用的工具。
如果指令大小不同(我认为这对于 RISC 概念来说是不典型的),则可能必须用状态机替换查找表。