如果字符串包含整数,则读取 MIPS 字符串
Read MIPS String if String Contains an Integer
我正在尝试创建一个汇编语言程序(在 MIPS 中)来读取用换行符分隔的用户输入值。我想读取一个包含整数的字符串(例如 "A4" ,但是 MIPS 将字符串读取为 "A" 并将整数读取为“4”。如何让 MIPS 读取string as "A4" with syscall?这是我到目前为止的代码,应该在一行读取一个字符串,在下一行读取一个整数。
buffer: .space 2
.text
.globl main
main:
li $v0, 8
la $a0, buffer
li $a1, 2
syscall
move $s0, $a0
li $v0, 5
syscall
move $s1, $v0
系统调用 8 最多读取 $a1-1
个字符,因为它始终以 NUL 终止字符串。因此,通过将 $a1
设置为 2,然后输入 "A4"
,您将在 buffer
中得到字符串 "A[=13=]"
。如果您希望能够读取 2 个字符加上 NUL 终止符,请将 $a1
设置为 3。
我正在尝试创建一个汇编语言程序(在 MIPS 中)来读取用换行符分隔的用户输入值。我想读取一个包含整数的字符串(例如 "A4" ,但是 MIPS 将字符串读取为 "A" 并将整数读取为“4”。如何让 MIPS 读取string as "A4" with syscall?这是我到目前为止的代码,应该在一行读取一个字符串,在下一行读取一个整数。
buffer: .space 2
.text
.globl main
main:
li $v0, 8
la $a0, buffer
li $a1, 2
syscall
move $s0, $a0
li $v0, 5
syscall
move $s1, $v0
系统调用 8 最多读取 $a1-1
个字符,因为它始终以 NUL 终止字符串。因此,通过将 $a1
设置为 2,然后输入 "A4"
,您将在 buffer
中得到字符串 "A[=13=]"
。如果您希望能够读取 2 个字符加上 NUL 终止符,请将 $a1
设置为 3。