riscv-spec-v2.0 を使用して小さな逆アセンブラーを作成していますが、次の手順とそれらを正しく逆アセンブルする方法についていくつか質問があります。
1. FENCE 命令には、imm に「pred」および「succ」ビット フィールドがあります。
2. AMO 命令には、funct7 に「aq」および「rl」ビットがあります。
3. float 命令には、funct3 に「rm」ビット フィールドがあります。
これらのビット フィールドはすべて、アセンブラでマッピングされていないようです。たとえば、50 ページには「FENCE」とだけ書かれていますが、中間体をどうするかについては書かれていません。または、33 ページに .aq または .rl を最後に配置する例がありますが、両方が存在する場合の対処方法はありません。
4. SCALL、SBREAK は ECALL、EBREAK と同じですが、ERET もあります。SCALL と SBREAK を削除して、ECALL、EBREAK、ERET だけを使用してください。そうしないと、これらのオペコードを逆アセンブルするのが難しいからです。