汇编语言数组

时间:2015-12-08 07:03:38

标签: arrays assembly mips

任何帮助找到答案都将不胜感激。

.data
array: .word 1,2,3,4,5,6,7,8,9,10
.text
.globl main 
main:
   la $t0, array
   li $t1, 4
   mult $t1, $t1
   mflo $t1
   add $t0, $t0, $t1
   sw $t1, 20($t0)

执行指令后数组的值是多少?我对此部分感到困惑。我只是为数组中的每个值添加20吗?

1 个答案:

答案 0 :(得分:2)

一些提示

.data
array: .word 1,2,3,4,5,6,7,8,9,10 # 10 32 bits values @array
.text
.globl main 
main:
   la $t0, array      # Load address of array into $t0
   li $t1, 4          # Load constant 4 into $t1
   mult $t1, $t1      # Multiply $t1 x $t1
   mflo $t1           # Put result (lower word) into $t1 ( 16 )
   add $t0, $t0, $t1  # $t0 = $t0 + $t1 ( array + 16 )
   sw $t1, 20($t0)    # Store $t1 at address ( $t0 + 20 )

如果一个单词是4个字节,即存储在(数组+4)会覆盖数组中的2(2 nd 值),你应该能够找到答案你的问题。