如何在MIPS中为另一个指定指针? (从C到MIPS)

时间:2016-03-13 14:36:38

标签: assembly mips

假设我们有以下代码:

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.) 

1 个答案:

答案 0 :(得分:0)

char * str只是str在内存中的地址。因此,在将指针指向str指向ptr的指针后,char * ptr保持与str相同的地址。只需将存储在保存指针str的寄存器中的值移动到表示指向ptr的指针的新寄存器即可。

假设您想将指针存储到$ t0中的ptr,而指向str的指针存储在$ a1中,此代码将执行操作:move $t0, a1