Для петель в сборке MIPS - PullRequest
2 голосов
/ 25 апреля 2010

У меня проблемы с настройкой симуляции моего процессора, и я думаю, что сузил его до программы, которую я ему предоставляю.

1.  li    $R1, 0
2.  li    $R2, 0x100
3.  li    $R6, 1
4.  li    $R8, 0
5.  li    $R9, 20

6.  lw    $R3, 0($R1)
7.  lw    $R4, 4($R1)
8.  add  $R5, $R3, $R4
9.  srlv    $R5, $R5, $R6
10. sw   $R5, 0($R2)
11. addi    $R1, $R1, 4
12. addi    $R2, $R2, 4
13. addi    $R8, $R8, 1
14. slt     $R7, $R8, $R9
15. bne  $R7, $zero,  -9

Он должен пройти через нижнюю часть 20 раз и затем выйти. Я особенно не уверен насчет инструкции ветки, но не могу найти в ней ничего плохого, поэтому: /

1 Ответ

1 голос
/ 25 апреля 2010

Итак, вы начинаете с R8 как 0 и R9 как 20. Затем на шаге 13 вы добавляете единицу к R8, затем устанавливаете R7, если R8 меньше, чем R9 (что будет на первых 19 итерациях). Затем вы переходите, если R7 установлен. Петля кажется мне в порядке.

Я не помню, что делает BNQ ... Не работает здесь?

...