2015-12-08 148 views
-1

任何帮助找到答案将不胜感激。汇编语言数组

.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

目前我不能因为即时通讯使用我的手机发布此信息。我将笔记本电脑送去维修,直到星期三才能使用笔记本电脑。 –

+1

您可以随时尝试各种[在线MIPS模拟器]之一(http://morriswmz.jit.su/static/simple-mips-pipelined.html)。 –

回答

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 第二值),则应该能够找出回答你的问题。