for (i=0, i<10000, i=i+2)
{
A[i]=B[i]+C[i]
A[i+1]=B[i+1]+C[i+1]
}根据前面的代码,MIPS程序集看起来是什么样子?我正在尝试构造汇编代码,其中R9 = A的基地址,R9 = B的基地址,R10 =C的基地址
我知道这种展开一次的方法应该更有效,但很难看出MIPS是什么样子的。
有谁能帮帮我吗?
发布于 2012-08-22 04:37:49
循环体应该是这样的:
LW r1, 0(r9) // B[i]
LW r2, 4(r9) // B[i+1]
LW r3, 0(r10) // C[i]
LW r4, 4(r10) // C[i+1]
ADDU r5, r1, r3 // B[i] + C[i]
ADDU r6, r2, r4 // B[i+1] + C[i+1]
SW r5, 0(r8) // A[i]
SW r5, 4(r8) // A[i+1]
ADDIU r9, 8
ADDIU r10, 8
ADDIU r8, 8MIPS有很多寄存器,因此可能值得再展开几次循环。
https://stackoverflow.com/questions/11998772
复制相似问题