处理MARS读整数系统调用的非数字用户输入?

时间:2018-05-06 09:05:10

标签: assembly mips mars-simulator spim

我正在做一个简单的停车场程序,它接收来自用户的输入,并根据输入分支到标签。

问题是,如果用户输入的数据类型不同于整数(如“a”或任何字母),则程序会突然结束

以下是我的代码(与输入部分相关):

    li $v0,5 #system call to get input from user
    syscall
    li $t1,2
    beq $v0,1,park # go to "park" section of codes if input is 1
    beq $v0,2,exit # go to "exit" section of codes if input is 2
    beq $v0,0,end # go to "end" section of codes if input is 0
    la $a0,statement6 #load statement6 into $a0
    li $v0,4 #call code for print statement2
    syscall
    j start

如何使用汇编语言处理错误的数据类型,以便在用户输入错误数据类型(或非int)的输入时程序不会结束。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用读取文本而不是特定数据类型的系统调用,然后在将文本转换为值时检查文本中是否有正确的格式和字符。