Итак, несколько вещей: 1) Есть документы по RISC-V. 2) если вы пишете первый ассемблер или дизассемблер для набора инструкций, тогда вы работаете там и можете просто спуститься по одному из кубиков кремниевых инженеров и спросить. 3) если нет, то существуют инструменты для этого набора инструкций, и вы должны использовать их в качестве справки:
Принимая документацию по рискам:
.word 0x001100D3
.word 0x002100D3
.word 0x003100D3
.word 0x001100D3
.word 0x001200D3
.word 0x001300D3
.word 0x00130153
.word 0x00130253
.word 0x00130353
собрать, затем разобрать
0: 001100d3 fadd.s f1,f2,f1,rne
4: 002100d3 fadd.s f1,f2,f2,rne
8: 003100d3 fadd.s f1,f2,f3,rne
c: 001100d3 fadd.s f1,f2,f1,rne
10: 001200d3 fadd.s f1,f4,f1,rne
14: 001300d3 fadd.s f1,f6,f1,rne
18: 00130153 fadd.s f2,f6,f1,rne
1c: 00130253 fadd.s f4,f6,f1,rne
20: 00130353 fadd.s f6,f6,f1,rne
затем напишите код, используя мнемонику, повторите. Разработайте свой дизассемблер из документации ISA в сочетании с существующими инструментами, продолжайте этот процесс, пока вы не почувствуете себя довольно хорошо в своем инструменте. Ожидайте ошибки или неопределенность в документации ...
Теперь, конечно, в этом случае можно надеяться, что GNU использует язык ассемблера, который чем-то напоминает язык Risc-V, желания, примеры, документацию. У GNU есть привычка этого не делать. В то же время, если вы пишете дизассемблер, а не ассемблер и не полный набор инструментов, тогда вы должны сделать так, чтобы дизассемблер соответствовал синтаксису используемого вами ассемблера, для вашего же здравого смысла ...