【发布时间】:2020-11-17 01:48:11
【问题描述】:
例如,你有一个字符串和一个缓冲区:
text: .asciiz "111100010"
buffer: .space 1000
如何将每个数字转换为 ascii 字符并将它们存储在缓冲区中?
即缓冲区应该有这个内容:(“1”的ASCII码是49,“0”是48)
494949494848484948
我知道如何单独打印它们,因为我可以使用系统调用代码 1 将它们解释为整数
main:
la $a0,text
j print
print_done:
li $v0,10
syscall
print: move $s0,$a0 #save addr
print_loop:
#addi $s0,$s0,20
lb $s1,($s0)
beqz $s1,print_done # check end of string
li $v0,1 # print as int
move $a0,$s1
syscall
addi $s0,$s0,1 # move forward
j print_loop
但是这些字符是分开打印出来的。如何将它们全部放入缓冲区并一起打印?
谢谢!
【问题讨论】:
-
如果您只有 0 或 1,您可以简单地迭代字符串并在看到 0 或 1 时放入 48 或 49。是什么导致了您的问题?
-
是的,但我每次都必须检查它是 0 还是 1。由于“0”只有48,有没有办法直接将“0”的ascii码放入缓冲区?