【发布时间】:2015-10-08 16:27:20
【问题描述】:
这是我的 strncpy 代码。理论上它应该可以工作,但是当我对其进行测试时,它会产生垃圾。
Arguments:
$a0 = pointer to destination array
$a1 = source string
$a2 = number of characters to copy
返回:目标数组
strncpy:
beqz $a2, out
lb $t0, 0($a1) #load byte
beqz $t0 out
subiu $a2, $a2, 1
sb $t0, 0($a0)
addiu $a0, $a0, 1
addiu $a1, $a1, 1
j strncpy
out:
lb $0 0($a0)
move $v0 $a0
jr $ra
【问题讨论】:
-
最后一个
lb应该是sb,当然你会丢失存储在$a0和$a1中的原始地址 -
这能回答你的问题吗? Null-terminating a string in MIPS?