gpt4 book ai didi

将 MIPs 指令转换为 C 并减少执行

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:56 24 4
gpt4 key购买 nike

假设 C 级整数 j 保存在寄存器 $t1 中,$s2 保存称为 total< 的 C 级整数$s0 保存整数数组 vArray 的基地址。

    addi $t1, $0, $0
LOOP:
lw $s1, 0($s0)
add $s2, $s2, $s1
addi $s0, $s0, 4
addi $t1, $t1, 1
slti $t2, $t1, 100
bne $t2, $s0, LOOP

我的解决方案:

我想我已经弄明白了C代码,应该是:

for (j = 0; j < 100; j++) {

total = total + vArray[j];

}

然后问题问:重写循环以减少执行的MIPS指令数。

但是,我无法减少执行的 MIP 指令数。对我来说,我认为 MIPs 指令已经很基本了,我无法想出另一个少于七个执行步骤的解决方案。

在阅读了递减的建议后,我想出了这个,可能有点笨拙的逻辑。

addi $t1, $zero, 404
LOOP:
subi $t1, $t1, 4
add $s0, $s0, $t1
lw $t2, 0($s0)
add $s2, $s2, $t2
bne $t1, $zero, LOOP

最佳答案

在最小化指令方面,这是我能做的最好的:

  addi $t1, $s0, 400
LOOP:
lw $s1, 0($s0)
add $s2, $s2, $s1
addi $s0, $s0, 4
bne $s0, $t1, LOOP

关于将 MIPs 指令转换为 C 并减少执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21544590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com