如何计算使用 MIPS 输入的字符数?
How do I count the number of characters entered using MIPS?
我提示用户输入最多 40 个字符的字符串。我如何计算用户输入了多少个字符?当我计算每个字符时,我需要存储数字、大写和小写字母、空格和任何其他字符的计数。我应该如何识别这些类型字符之间的区别?
.text # beginning of code
.globl main # beginning of main
main: # main procedure
li $v0, 4 # print_string service number
la $a0, prompt00 # load address of prompt
syscall # print prompt
li $v0, 8 # read_string service number
la $a0, buffer # load address of buffer
la $a1, 40 # max length of 40
syscall # read_string
li $v0, 4 # print_string service number
la $a0, buffer # load address of buffer
syscall # print buffer
li $v0, 10 # using service 10, terminate
syscall # terminate
.data # beginning of data area
buffer: # container for input string
.space 40 # max length of 40 characters
newline: # variable to represent a newline
.asciiz "\n" # a newline character
prompt00: .asciiz "Enter up to 40 characters: "
您可以检查您正在查看的寄存器中的字符是否在任何适用范围内:ASCII Values Table。
字符串应该以空字符 '\0' 结尾存储,因此您可以查找它来找到长度。
我提示用户输入最多 40 个字符的字符串。我如何计算用户输入了多少个字符?当我计算每个字符时,我需要存储数字、大写和小写字母、空格和任何其他字符的计数。我应该如何识别这些类型字符之间的区别?
.text # beginning of code
.globl main # beginning of main
main: # main procedure
li $v0, 4 # print_string service number
la $a0, prompt00 # load address of prompt
syscall # print prompt
li $v0, 8 # read_string service number
la $a0, buffer # load address of buffer
la $a1, 40 # max length of 40
syscall # read_string
li $v0, 4 # print_string service number
la $a0, buffer # load address of buffer
syscall # print buffer
li $v0, 10 # using service 10, terminate
syscall # terminate
.data # beginning of data area
buffer: # container for input string
.space 40 # max length of 40 characters
newline: # variable to represent a newline
.asciiz "\n" # a newline character
prompt00: .asciiz "Enter up to 40 characters: "
您可以检查您正在查看的寄存器中的字符是否在任何适用范围内:ASCII Values Table。
字符串应该以空字符 '\0' 结尾存储,因此您可以查找它来找到长度。