我对理解特定命令的执行有些迷惑。
在此示例中,有一个通过0x00c6ba23
的命令,该命令是二进制的0000 0000 1100 0110 1011 1010 0010 0011
我正在尝试查找此指令的ALU控制单元的输入。
从这里我可以看到
0100011
10100
011
(不正确...)01101
01100
0000000
我正在使用这张图片解码它
我的问题是如何获得此功能的ALU控制位和ALUOp控制位?为什么函数SD即使功能3显示的是011而不是111呢?
答案 0 :(得分:1)
...即使功能3显示011而不是111,功能SD为何仍显示?
011是正确的。 funct3位必须为011,以使其成为SD指令。根据{{3}}的第105页,SD指令的格式为:
| imm[11:5] | rs2 | rs1 | 011 | imm[4:0] | 0100011 |
如果funct3位为111,则该指令将不是SD。
...如何获得此功能的ALU控制位和ALUOp控制位?
由于这是一条SD指令,因此您可以直接在问题中引用的图中的下部表格的SD行中读取这些位。