首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行命令

执行命令
EN

Stack Overflow用户
提问于 2018-12-18 23:15:20
回答 1查看 688关注 0票数 0

我有点不理解具体命令的实现。

在本例中,有一个传递给0x00c6ba23的命令,它是二进制文件中的0000 0000 1100 0110 1011 1010 0010 0011

我试图找到ALU控制单元的输入为这条指令。

从这个我可以看到

  • 操作码= 0100011
  • 免疫4:0= 10100
  • funct3 = 011 (不正确)
  • rs1 = 01101
  • rs2 = 01100
  • 免疫11:5= 0000000

我用这个图像来解码它

我的问题是如何获得此函数的ALU控制位和ALUOp控制位?为什么函数SD,即使funct 3显示的是011而不是111?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-19 06:54:50

..。为什么函数SD,即使funct 3显示的是011而不是111?

011是正确的。funct3位必须为011,这样才能成为SD指令。根据https://content.riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf第105页,SD指令的格式如下:

代码语言:javascript
复制
    | imm[11:5] | rs2 | rs1 | 011 | imm[4:0] | 0100011 |

如果funct3位为111,则此指令将不是SD。

..。如何获得此函数的ALU控制位和ALUOp控制位?

因为这是一条SD指令,所以您可以直接从图表中的下一张表格中的SD行中读取这些位数,这是您在问题中引用的。

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

https://stackoverflow.com/questions/53842488

复制
相关文章

相似问题

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