0
A,B,C是長度爲6,以及基地址的陣列中的寄存器被發現如下:理解MIPS彙編代碼
A=[0 1 2 3 4 5], Base = $t0
B=[1 3 5 7 9 11] Base = $t1
C=[0 5 2 6 3 8] Base = $t2
現在的代碼本身:
add $t4, $zero, $zero
Loop: add $t5, $t4, $t1
lw $t6, 0($t5)
add $t5, $t4, $t2
lw $t7, 0($t5)
or $t6, $t6, $t7
add $t5, $t4, $t0
sw $t6, 0($t5)
addi $t4, $t4, 4
slti $t5, $t4, 20
bne $t5, $zero, Loop
我的問題是:
1.)當添加$ t4和$ t1時,我們是將零加到每個B [i]上嗎?
2)當MIPS添加陣列,可以說add $t6, $t0,$t1
我們做:
- A [1] + B [i]於對所有的索引,然後$ T6是一個新的數組?
- 或者我們只是在做A [0] + B [0]?
3.)你究竟如何在數組上使用OR?
*然後$ t6是一個新的數組* *?這不可能是這種情況。它只是一個32位寄存器。內存中發生什麼取決於你存儲它的位置(用'sw $ t6,0($ t5)',其中'$ t5'是早先計算的,指向你現有的一個數組)。 –
程序集不像高級語言,您可以使用單個指令處理整個數組。這就是爲什麼這個代碼是在一個循環內! –