MIPS汇编程序更改数组

时间:2019-01-16 12:37:52

标签: assembly mips

.data

   array:   .word 14, 6, 18, 13, 17

   anzahl:   .word 5

.text

.globl main

   main:   la $t0, array 

      la $t1, anzahl   

      lw $t1, 0($t1)   

      addi $t1, $t1, -2   

      lw $v0, 0($t0)

   loop:   addi $t0, $t0, 4

      lw $t2, 0($t0)

      bge $t2, $v0, skip

      add $v0, $zero, $t2

   skip:   addi $t1, $t1, -1

      bge $t1, $zero, loop

Kann jemand密码lesen吗?

Ich check nich genau是0($ t1)马特,是muss den Wert $ v0的最佳证明。

Ich dachte zuerst,das in $ t1 das array mit den 5 Werten geladen wird mit lw $ t1,0($ t1),verstehe dann aber nich addi $ t1,$ t1,-2,is genau wird da nun abgezogen ,verschwinden nun 2 Elemente im Array oderwas。

任何人都可以阅读此代码吗? 我不明白0($ t1)的作用,我必须在程序结束时找出$ v0的值。

首先我想,该数组通过lw $ t1,0($ t1)加载到$ t1

但是后来我不明白addi $ t1,$ t1,-2。这是否意味着现在数组中的元素减少了2个?

1 个答案:

答案 0 :(得分:0)

程序员的MIPS32™体系结构第二卷:MIPS32™指令集中记录了每条MIPS32指令,如果您正在执行任何MIPS32汇编编程,则应该获得该信息。


  

首先我想,该数组通过lw $ t1,0($ t1)加载到$ t1

否,它将anzahl中的值5加载到$t1中。


  

我不理解addi $ t1,$ t1,-2。这是否意味着现在数组中的元素减少了2个?

它对阵列完全没有影响。它只是从$t1中减去2,而其中似乎包含一个循环计数器。