risc

    0热度

    1回答

    假设我有一个变量inst,它包含一个编码的MIPS指令。我想将rt字段设置为0而不更改其他字段。 rt字段是从16-20索引的5位字段。我第一次尝试: inst = inst & ~(1 << 16); 这台RT场为0,然后我想提出一个新的变量new_reg的值到室温领域。我试过了: inst = inst | (new_reg << 16); 任何人都可以确认这两行代码是否正确?

    0热度

    1回答

    在阅读RISC-V 2.1版规范时,我在第4章中发现应该将RV64与RV32一起阅读。基于此,以下是我的疑惑。 RISC-V 64位会运行32位操作码吗? 在规范中,第9章第54页的指令与操作码一起列出,这些操作码是否也属于64位。 在规范中,第9章第55页的说明与操作码列在一起,RV64是除了RV32之外的,所以在RV64位实现中我也需要支持RV32I吗?

    0热度

    1回答

    ## Question: ## Swap each pair of elements in ## the string "chararray" and ## print the resulting string. ## There will always be an even number ## of characters in "chararray". ## ## Output f

    1热度

    1回答

    我只是有这个概念性的问题,但我不能真正找到明确解释的网站。 但是对于临时寄存器,保存的寄存器和浮点寄存器,它们是否包含我们想要的值的地址或者只是值,比如100或200?

    0热度

    2回答

    我试图通过减少指令来优化MIPS代码。现在,我有一个while循环,因此: funct: add $v0, $zero, 0 add $t0, $zero, 0 Loop: slt $t1, $t0, $a0 beq $t1, $zero, Exit add $v0, $v0, $t0 addi $t0, $t0, 1 j Loop

    0热度

    1回答

    在讲座中,我们的教授说,使用bne分支而不是使用beq(并让我们弄清楚)如下所示。 if (i == j) i++ ; j-- ; 其编译成 bne $r1, $r2, L1 # branch if ! (i == j) addi $r1, $r1, 1 # i++ L1: addi $r2, $r2, -1 # j-- 另外,in this link,它也被暗示,这

    3热度

    1回答

    索引寻址模式通常用于访问数组,因为数组是连续存储的。我们有一个索引寄存器,它在每次迭代时都会增加,当它被添加到基地址时,会给出数组元素地址。 我不明白这种寻址模式的实际需要。为什么我们不能直接寻址?我们有基地址,每次访问时我们都可以加1。为什么我们需要索引寻址模式,它具有索引寄存器的开销? 我不确定隐含寻址模式的指令格式。假设我们有一个INC AC指令。是指令中指定的AC地址还是有一个特殊的操作码

    0热度

    1回答

    为什么PC在单周期数据通路中不需要显式写入信号?为什么在多周期数据通路中需要明确的写入控制信号? 谢谢

    1热度

    2回答

    举个例子:一个x86_64 CPU读128位指令。 从我所了解的情况来看,这是x86处理器中发生的事情。 否则,例如将一个64位数字添加到一个64位寄存器中(该操作码对于数字> 64需要几位+ 64位)。 我想知道的是指令中位的限制是什么以及如果指令大于位数(数据总线),指令是如何读取的。另外,我也知道大多数RISC CPU使用一个固定大小的指令,所以如果你直接传递一个数字操作数,指令的大小是否简

    0热度

    1回答

    我正在为嵌入式计算机编写程序,并且内存和处理能力都很小。 ÿ和一个是存储在浮点寄存器双和X为阵列双打的。在MIPS中编写此表达式的最有效方式是什么? y = y + a * x[i];