【发布时间】:2013-04-19 07:46:50
【问题描述】:
我正在尝试用 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 会是什么样子?
【问题讨论】: