# Spim program to copy strings by pointers.
#
# #include
#
# void strcpy(char *dest, char *src) {
# do
# *dest++ = *src++;
# while (*src);
# }
#
# main() {
# char si[] = "Hello, world.\n";
# char so[80];
#
# strcpy(so,si);
# cout << so;
# }
.text
.globl main
main:
la $a0, so
la $a1, si
jal strcpy
la $a0, so
li $v0, 4
syscall
li $v0, 10
syscall
# strcpy -- copy the string pointed to by $a1 to the location
# pointed to by $a0
strcpy: lb $t0, 0($a1)
addi $a1, $a1, 1
sb $t0, 0($a0)
addi $a0, $a0, 1
bnez $t0, strcpy
jr $ra
.data
si: .asciiz "Hello, world.\n"
so: .space 80