首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制MIPS32程序集中的数组

复制MIPS32程序集中的数组
EN

Stack Overflow用户
提问于 2012-11-04 00:04:38
回答 1查看 971关注 0票数 0

我有一段C++代码,我需要使用直接转换将其转换为mips。我已经完成了大部分工作,这是一个do while循环。我就是不明白MIPS中的这一行。

代码语言:javascript
复制
x[i] = y[i];

我不知道如何将其转换为mips,我一直在网上无休止地寻找。我能得到任何帮助吗?

编辑

这是我所拥有的,但被告知是不正确的:

代码语言:javascript
复制
la $6, y
Li $7, $1
Add $7, $7, $7
Add $7, $7, $7
Add $8, $6, $7
Lw $6, 0($8)
La $7, x
Li $8, $1
Add $8, $8, $8
Add $8, $8, $8
Add $7, $7, $8
Sw $6, 0($7)

我使用这个在线站点作为参考:

http://www.cs.pitt.edu/~xujie/cs447/AccessingArray.htm

第二次编辑

C++编码

代码语言:javascript
复制
i=0;
do {
    x[i]=y[i];
    i++;
}
while (i!=j);

MIPS直接转换

代码语言:javascript
复制
Addi $1, $1, 0
Loop:   la $6, y
    Li $7, $1
    Add $7, $7, $7
    Add $7, $7, $7
    Add $8, $6, $7
    Lw $6, 0($8)
    La $7, x
    Li $8, $1
    Add $8, $8, $8
    Add $8, $8, $8
    Add $7, $7, $8
    Sw $6, 0($7)
    Addi $1, $1, 1
    Bne $1, $2, loop 

以下是我可以使用的所有寄存器,以避免对您造成混淆:

代码语言:javascript
复制
Variables   i   j   x   y   4 (constant)    Free
Registers   $1  $2   $3   $4    $5               $6, $7, $8
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-04 01:54:14

这应该会让你找到正确的方向。因为这是一个家庭作业问题,所以我不会给你一个完整的解决方案。

快速参考(MIPS指令、调用约定等):

http://www.mips.com/media/files/MD00565-2B-MIPS32-QRC-01.01.pdf

一个示例汇编函数,在小端环境中计算32位和16位向量的点积:

http://code.google.com/p/mips32-asm/source/browse/dot32x16.S

在这里,您可以看到如何访问数组的元素。

注意,".set重新排序“使汇编程序重新排序指令和/或包括NOP,以处理所谓的延迟时隙。如果你的教授想让你了解延迟槽的问题,你应该自己正确地排序指令和/或在分支/跳转之后编写你自己的NOP。

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

https://stackoverflow.com/questions/13210903

复制
相关文章

相似问题

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