我希望在C++中创建一个简单的RISC-V反汇编器。
目标是能够接受一个由十六进制的单独字节组成的。bin文件,并将这些字节解析为可读的,格式化的RISC-V指令。
我想只需使用switch语句就可以完成,但是解决这个问题的更稳健的方法是什么?
我是一个CS的学生,所以我把这个作为一个学习练习,想要熟悉这个项目中的C++工具。
假设指令总是具有相同的大小,即采用相同的字节数,包括地址模式选择和参数,那么查找表可能是一个有用的工具。
如果指令大小不一(我认为对于RISC概念来说这是不典型的),查找表可能必须用状态机代替。