我正在尝试在 mips 中编写 srinf。首先,我试图计算有多少个字符。
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
但是 beq 会是什么样子?