首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MIPS循环展开

MIPS循环展开
EN

Stack Overflow用户
提问于 2012-08-17 09:43:39
回答 1查看 2K关注 0票数 1
代码语言:javascript
运行
复制
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是什么样子的。

有谁能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-22 04:37:49

循环体应该是这样的:

代码语言:javascript
运行
复制
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,  8

MIPS有很多寄存器,因此可能值得再展开几次循环。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11998772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档