sprinf を mips で書こうとしています。まず、文字数を数えようとしています。
sprintf:
addi $sp, $sp, -12
sw $ra, 8($sp)
sw $s1, 4($sp)
sw $s2, 0($sp)
li $s0, 0 # len = 1
la $s1, ($a1) # s = str
test:
lb $s2, 0($s1) # c = *s
beqz $s2, done # if c == '\0', branch to "done"
beq $s2, '5', done
addi $s0, $s0, 1 # len = len + 1
addi $s1, $s1, 1 # s = s + 1
j test
percent:
done:
li $v0, 1 # syscall code: print_int
move $a0, $s0
syscall
li $v0, 11 # syscall code: print_char
li $a0, 10 # pass newline character
syscall
jr $ra
ただし、 %d や %c などがある場合は、フォーマットに含まれているかどうかを確認する必要があります。
そのような特定の文字を確認するにはどうすればよいですか? mips ascii http://galia.fc.uaslp.mx/~luis/arquitectura_files/table.pdfでこれを見ました
しかし、ベクはどのように見えるでしょうか?