1

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 だけを使用してください。そうしないと、これらのオペコードを逆アセンブルするのが難しいからです。

4

1 に答える 1

2

現在の RISC-V アセンブラは、一般的なデフォルトに対して簡潔です。

  1. 引数のない "FENCE" はフル フェンスとして扱われます (すべてのビットが設定されます)。

  2. 同じ命令で両方を使用してもOK

  3. 指定されていない場合、丸めモードは表示されません

  4. ECALL と EBREAK が新しい標準名になります (改訂されたユーザー ISA マニュアルで明確化されます)。

于 2015-05-18T22:53:02.037 に答える