MIPS ассемблер меняет массив - PullRequest
0 голосов
/ 16 января 2019
.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 den code lesen?

Я проверю, что nich genau был 0 ($ t1) махт, muss den Wert $ v0 бестиммен.

Ich dachte zuerst, das в массиве $ t1 das mit den 5 Werten geladen wird mit lw $ t1, 0 ​​($ t1), в отличие от Данна Абер-нича и addi $ t1, $ t1, -2, был геном Вирд да Монахиня Абгезоген , verschwinden nun 2 Elemente im Array oderwas.

Кто-нибудь может прочитать этот код? Я не понимаю, что делает 0 ($ t1), я должен выяснить, какое значение имеет $ v0 в конце программы.

Сначала я подумал, что массив загружается в $ t1 через lw $ t1, 0 ​​($ t1)

Но тогда я не понимаю addi $ t1, $ t1, -2. Означает ли это, что в массиве на 2 элемента меньше?

1 Ответ

0 голосов
/ 16 января 2019

Каждая инструкция MIPS32 документирована в документе Архитектура MIPS32 ™ для программистов. Том II: Набор инструкций MIPS32 ™ , который вы должны получить, если выполняете какое-либо программирование сборки MIPS32.


Сначала я подумал, что массив загружается в $ t1 через lw $ t1, 0 ​​($ t1)

Нет, оно загружает значение 5 из anzahl в $t1.


Я не понимаю, addi $ t1, $ t1, -2. Означает ли это, что в массиве на 2 элемента меньше?

Это никак не влияет на массив. Он просто вычитает 2 из $t1, который, кажется, содержит счетчик цикла.

...