如何反汇编这些指令

How to disassemble these instructions

我正在使用 riscv-spec-v2.0 编写一个小反汇编程序,对以下说明以及如何正确反汇编它们有一些疑问:

1。 FENCE 指令在 imm

中有 "pred" 和 "succ" 位字段

2。 AMO 指令在 funct7

中有 "aq" 和 "rl" 位

3。 浮点指令在 funct3

中有一个 "rm" 位域

所有这些位域似乎都缺少汇编器中的映射。 例如。第 50 页只是说 "FENCE" 但没有说明如何处理中间体。 或者第 33 页有一个示例,将 .aq 或 .rl 放在末尾,但如果两者都存在,则没有做什么。

4。 SCALL、SBREAK 与 ECALL、EBREAK 相同 但还有 ERET:那么为什么不删除 SCALL 和 SBREAK 并且只使用 ECALL、EBREAK 和 ERET,因为其他方面 很难反汇编这些操作码。

当前的 RISC-V 汇编器对于常见的默认值是简洁的:

  1. "FENCE" 没有参数被视为完整的栅栏(所有位设置)

  2. 可以在同一条指令上同时进行

  3. 如果未指定则不显示舍入模式

  4. ECALL 和 EBREAK 将成为新的标准名称(将在修订后的用户 ISA 手册中阐明)