以下のCコードをMIPSアセンブリ言語に翻訳しようとしていますが、ほとんどは理解していますが、最初の行に相当するものがアセンブリにあるのかわかりません...
int ary[3] = {2,3,4};
誰かが私のCからアセンブリへの「翻訳」を見て、私が正しい軌道に乗っていることを確認していただければ幸いです。
C コード
int ary[3] = {2,3,4};
int i=0;
//loop to double array values
for(i=0; i < 3; i++){
ary[i] = ary[i]*2;
}
私が試したこと:
add $t0, $s0, $zero #get base address of the array 'ary' (dont understand this part)
addi $t1, baseAddress, 8 #cut off point to stop the loop; array[2]
addi $t1, $zero, $zero #initialize i=0
Start:
lw $t2, base(offset)
sll $t2, $t0, 1 #mutiply $t2 by 2
sw $t2, base(offset)
addi $t0, $t0, 4 # Increment the address to the next element
bne $t0, $t1, Start # $t0 will keep increasing until reaches stopping point $t1
Exit: