我正在使用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,因为其他方面 很难拆解这些操作码。
答案 0 :(得分:2)
当前的RISC-V汇编程序很简洁:
没有参数的“FENCE”被视为完整的栅栏(所有位都设置)
可以同时使用相同的指令
如果未指定,则不显示舍入模式
ECALL和EBREAK将成为新的标准名称(将在修订后的用户ISA手册中阐明)