假设我们有以下代码:
int split_str(char ** solution, char * str, const dictionary * dict){
char * ptr = str;
(more code here...)
}
我将如何进行"初始化" pIPS在MIPS?我会使用"移动"," lw",或者" sw"?
编辑:这是我到目前为止所做的:
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.)
答案 0 :(得分:0)
char * str只是str在内存中的地址。因此,在将指针指向str指向ptr的指针后,char * ptr保持与str相同的地址。只需将存储在保存指针str的寄存器中的值移动到表示指向ptr的指针的新寄存器即可。
假设您想将指针存储到$ t0中的ptr,而指向str的指针存储在$ a1中,此代码将执行操作:move $t0, a1