MIPS'yi C'ye dönüştürmekte çok sorun yaşıyorum (çok yeniyim). Önce MIPS kodunun yanında neler olduğunu yazmaya çalıştım.Mips döngüsünü C'ye dönüştürme
blank: addi $t0, $zero, 0 t0 = 0;
addi $t2, $zero, ' ' t2 = 32;
j L2 jump to L2;
L1: sb $t2, 0($t1) store new value in array
addi $t0, $t0, 1 t0++;
L2: add $t1, $a0, $t0 t1 = a0 + t0;
lbu $t3, 0($t1) t3 = array(t0)
bne $t3, $zero, L1 if(t3!=0) jump to L1
jr $ra return; //jump to return address in ra
Daha sonra C'ye dönüştürmeyi denedim ama çok kafam karıştı ve yanlış olduğunu düşünüyorum.
int array[32];
int i;
for(int i=1; i!=0; i++)
array[i]=i;
return;
herkes bazı ipuçları veya düzeltme teklif verebilir bunu takdir ediyorum büyük ölçüde
Gövde yürütmeyecek: 'için (int i = 0; i! = 0; i ++)'. Için olmalıdır (int i = 0; i <32; i ++) '. –
Üzgünüm @FiddlingBits Ne demek istediğimi anlamadım –
@FiddlingBits: Nope. Döngüde kullanılan 't2' nin ne olduğuna bakın. İpucu: Bu bir dolgu işlevidir. – Michael