繁体   English   中英

使用MIPS程序集进行整数数组索引

[英]Integer array indexing with MIPS assembly

我想将此C代码转换为MIPS。

C代码:

f = A[B[h-g]]

我们假设h > gB[hg] > 0 hgf是整数。

还要假设f分配给寄存器$s0g分配给$s1h分配给$s2

A > $s6B > $s7基地址

这是我的尝试:

sub $t0, $s2, $s1                   
mult $t0, $t0, 4                     
lw $t0, $t0($s7)           
mult $t0, $t0, 4           
sw $s0, $t0($s6)

除了最后一行,它看起来不错,它最有可能是:

lw $s0, $t0($s6)

注意,您应该始终注释您的代码,尤其是当它是asm时,例如

sub $t0, $s2, $s1         ; t0 = h - g          
mult $t0, $t0, 4          ; t0 = (h - g) * sizeof(int) = byte index into B
lw $t0, $t0($s7)          ; t0 = B[h - g]
mult $t0, $t0, 4          ; t0 = B[h - g] * sizeof(int) = byte index into A
lw $s0, $t0($s6)          ; s0 = A[B[h - g]]

还请注意,您应该始终测试代码-为此,我建议使用诸如SPIM之类的模拟器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM