|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
MIPS初学者,在国外实在很难找到帮助,恳请大家多多指教了,给大家鞠躬了!
题目是这样的:给出一段C程序,用MIPS翻译一下。
C程序:
void swap(int *v, int k)
{
int w;
w = v[k];
v[k] = v[k+1];
v[k+1] = w;
}
void arrange(int *v, int n)
{
int i, j;
for( i=0; i<n; i++ )
{
for( j=i-1; j>=0 && v[j]>v[j+1]; j-- )
{
swap(v,j);
}
}
}
我编的程序:
i-> $S0
j-> $S1
*V-> $S2
w-> $V0
n-> $S4
swap:
or $V0 ,$r1, $zero
or $r1, $r2, $zero
or $r2, $V0, $zero
arrange:
add $S0, $zero, $zero
L1:
slt $t0, $S0, $S4
beq $t0, $zero,L4
subi $S1, $S0, 1
L2:
slt $t0, $S1,$zero
bne $t0 $zero, L3
sll $t1, $s1, 2
add $t1, $s1,$t1
addi $t2, $t1, 4
lw $t3, 0($t1)
lw $t4, 4($t2)
sgt $t0, $t3, $t4
beq $t0, $zero,L3
add $r1, $t3,$zero
add $r2,$t4,$zero
jal swap
subi $S1, $S1,1
j L2
L3:
addi $S0, $S0,1
j L1
L4:
end
[ 本帖最后由 ALFA_O 于 2007-3-6 04:15 编辑 ] |
|