Предположим, что мы имеем следующий код:Как назначить указатель другому в MIPS? (От С до MIPS)
int split_str(char ** solution, char * str, const dictionary * dict){
char * ptr = str;
(more code here...)
}
Как бы я идти о «инициализацией» PTR в MIPS? Использую ли я «move», «lw» или «sw»?
Edit: Это то, что я до сих пор:
sub $sp, $sp, 16
sw $ra, 0($sp)
sw $s0, 4($sp)
sw $s1, 8($sp)
sw $s2, 12($sp)
move $s0, $a0 # solution in $s0
move $s1, $a1 # str in $s1
move $s2, $a2 # dict in $s2
(...etc.)
Зависит от того, где вы выделили его. Если вы назначили регистр, вы используете 'move'. Если вы выделили его в стеке, вы используете 'sw'. – Jester
Невозможно сказать, не зная, какой ABI вы используете (в частности, как передаются аргументы функции). – Michael
'str' находится в' $ a1', то, что вы делаете, копирует его из '$ a1' в' $ s1' (поэтому '$ s1'' 'ptr'), и все в порядке. Или у вас есть проблемы? – Jester