汇编MIPS将字符串复制到地址

时间:2016-04-04 20:22:18

标签: assembly mips

我正在尝试在MIPS中编写一个简单的函数,它将字符串复制到第二个参数中指定的地址。第一个参数是要复制的字符串的地址。我写了这个:

.globl strcpy
strcpy:
lb $t0 ($a0)
beqz $t0 out
sb $a0 ($a1)
addi $a0 $a0 1
addi $a1 $a1 1
j strcpy

out: jr $ra

但是我得到了意想不到的结果,我看不出我做错了什么。

1 个答案:

答案 0 :(得分:0)

您需要sb $a0 ($a1),而不是sb $t0 ($a1),因为您加载了字节。

您也从函数返回而没有空字符串终止。如果你期望一个C字符串函数来处理结果,你会感到失望。如果该函数应该是C strcpy()的实现,那么您也会返回错误的值。