Имам сегмент от C++ код, който трябва да конвертирам в mips с помощта на директен превод. Свършил съм повечето от тях, това е do while цикъл. Просто не разбирам този ред в MIPS.
x[i] = y[i];
Не разбирам как да конвертирам това в mips и търся безкрайно онлайн. Мога ли да получа помощ?
РЕДАКТИРАНЕ
Това е, което имах, но ми казаха, че е неправилно:
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++ кодиране
i=0;
do {
x[i]=y[i];
i++;
}
while (i!=j);
MIPS Директен превод
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
И ето всички мои регистри, които мога да използвам, за да избегна объркване за вас:
Variables i j x y 4 (constant) Free
Registers $1 $2 $3 $4 $5 $6, $7, $8