我需要了解如何在RISCV中解决这个问题。为下列十六进制值提供汇编语言指令:
地址1000: b3地址1001: 0b地址1002: 9c地址1003: 41
我知道我必须转换为二进制,而且RISCV是小Endian,但除此之外,我不知道如何继续。我有几个这样的问题,但我想自己做剩下的事。
发布于 2019-02-14 18:17:04
正如您所说的,RISC-V是小endian,所以地址1000到1003处的单词是0x419c0bb3,以二进制表示:
01000001100111000000101110110011首先要注意的是,指令以0110011结尾。这与几个指令相匹配,请参阅riscv-spec-v2.2.pdf中的第104和105页。为了进一步解码指令,我检查了第14-12位中的FUNC3字段,它们是000.我只谈几个可能的指令,ADD,SUB或MUL。我现在检查指令中最重要的7位,0100000。指令是SUB。指令的全部解码如下:
FUNC7   rs2   rs1   FUNC3 rd    OPCODE
0100000 11001 11000 000   10111 0110011在汇编程序中,这应该是sub x23,x24,x25。要检查答案,最好使用汇编程序/模拟器。
https://stackoverflow.com/questions/54693866
复制相似问题