首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RISCV解析操作码

RISCV解析操作码
EN

Stack Overflow用户
提问于 2019-02-14 15:28:57
回答 1查看 1.2K关注 0票数 0

我需要了解如何在RISCV中解决这个问题。为下列十六进制值提供汇编语言指令:

地址1000: b3地址1001: 0b地址1002: 9c地址1003: 41

我知道我必须转换为二进制,而且RISCV是小Endian,但除此之外,我不知道如何继续。我有几个这样的问题,但我想自己做剩下的事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-14 18:17:04

正如您所说的,RISC-V是小endian,所以地址1000到1003处的单词是0x419c0bb3,以二进制表示:

代码语言:javascript
运行
复制
01000001100111000000101110110011

首先要注意的是,指令以0110011结尾。这与几个指令相匹配,请参阅riscv-spec-v2.2.pdf中的第104和105页。为了进一步解码指令,我检查了第14-12位中的FUNC3字段,它们是000.我只谈几个可能的指令,ADDSUBMUL。我现在检查指令中最重要的7位,0100000。指令是SUB。指令的全部解码如下:

代码语言:javascript
运行
复制
FUNC7   rs2   rs1   FUNC3 rd    OPCODE
0100000 11001 11000 000   10111 0110011

在汇编程序中,这应该是sub x23,x24,x25。要检查答案,最好使用汇编程序/模拟器。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54693866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档