我正在使用 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,否则很难反汇编这些操作码。