Ну, я бы сказал, что нет ничего плохого в том, что вы описали. Однако, очевидно, также возможно использовать цикл для инициализации массива.
initTable:
la $t0 table #$t0 stores first address in table
addi $t1 $t0 196 #$t1 stores address of one past end (49 * 4)
addi $t2 $zero 1
intiTableLoop:
sw $t2 0($t0)
addi $t0 $t0 4
blt $t0 $t1 initTableLoop
sw $zero 0($t0)
jr $ra
Использование цикла - это, конечно, единственный способ инициализировать динамически выделенный массив.
С тех пор я обнаружил, из ответа здесь: MIPS Data Directives что можно сделать это в трудоемкости, как так:
array: .word 1:49
.word 0
Если число после двоеточия представляет число слов, которые должны быть назначены на значение перед двоеточием. Вероятно, это то, что вы искали.
Да, было просто любопытно в любом случае, но никогда не видел функцию «mov» перед интересным – compski
А, я вижу, что «mov» на самом деле называется «load» и «store» (lw/lb и sw/sb) для MIPS. «mov» - это общий код операции Intel для обоих направлений. – usr2564301
Кстати, возможно, ваш ассемблер предоставляет псевдопротокод .repeat для данных. – usr2564301