gpt4 book ai didi

c - MIPS 汇编到 C

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

所以我正在尝试将此 MIPS 汇编代码翻译成 C。我对正在发生的事情的某个部分感到困惑。下面是 MIPS 汇编代码: 假设我们有变量 f、g、h、i、j 分别存储在 $s0、$s1、$s2、$s3 和 $s4 中。假设数组 A 和 B 的基地址分别为 $s6 和 $s7,它们包含 4 个字节的字。我插入了评论以表明我理解其中的大部分内容。

sll  $t0, $s0, 2    # $t0 = f * 4
add $t0, $s6, $t0 # $t0 = &A[f]
sll $t1, $s1, 2 # $t1 = g * 4
add $t1, $s7, $t1 # $t1 = &B[g]
lw $s0, 0($t0) # f = A[f]
addi $t2, $t0, 4 <-- Here's where I am confused. Since $t0 contains the address of A[f], what does adding 4 do to that?

lw $t0, 0($t2)
add $t0, $t0, $s0
sw $t0, 0($t1)

最佳答案

它看起来像是计算指向 A 数组下一个元素的指针,一行之后你从这个地址加载数据。假设在 C 中:

Word4Byte A[],B[];
B[g] = A[f] + A[f+1];

关于c - MIPS 汇编到 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18861493/

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