我试图将以下C代码转换为MIPS,但我很难理解你如何在数组中获取[k-1]。
int vek[100];
main()
{
int k;
int first = vek[0];
for (k = 1; k < 100; k++)
{
vek[k - 1] = vek[k];
}
vek[k – 1] = first;
}
这是我到目前为止所得到的:
.data
vek: .space 400
.text
main:
addi s0,zero,1 #k = 1
addi s1,zero.100 #value 100
la t1,vek #t1 as index in vek
add s2,t1,zero #first = vek[0]
L1:
bgt s0,s1,end #if k is bigger then 100 jump to end label
addi s0,zero,-1 #k-1
sll t2,s0,2 #t2 = 4*k next space in the array
这里是我失去自己的地方,我不明白我应该如何翻译其余的代码。由于网络上缺少MIPS教程,因此您是我的最后一次机会。如果某种灵魂可以帮助翻译代码的最后部分并给我一个很好的解释。
P.S这不是我将使用它只是一个问题的例子,将在考试中。
答案 0 :(得分:0)
这是一个应该有效的简单实现,逐行解释发生了什么:
docker run -d -p 9999:80 httpd
你可以更简洁一些,但我试图让这个更容易理解,而且自从我看过MIPS以来它已经是很长了。