如何在MIPS中使用ASCII表?

问题描述

所以我将用户提供的二进制数转换为其十进制等效值。我毫无问题地完成了转换,但现在我正在尝试验证输入。如果用户输入除 10 之外的任何字符,我想分支到一个标签,告诉用户他们的输入不正确。这就是我现在所拥有的:

ValidateInput:
        lb $s1,userNumber($t8)
        beq $s1,Calculate
        bgt $s1,'1',InvalidInput
        blt $s1,'0',InvalidInput
        addi $t8,$t8,1
        j ValidateInput

我以为我可以使用它们的 ASCII 表值来验证输入,但现在它认为我尝试的任何输入都不正确。即使我只输入 1 和 0。对此的任何帮助将不胜感激。

解决方法

所以,我认为你的逻辑是正确的。如果数字大于 1 或小于 0,我们必须分支到 InvalidInput 函数。但我认为 bgt 和 blt 不能正常处理字符串字符。

您可以尝试按照以下步骤将输入更改为 int:

Convert String of ASCII digits to int in MIPS/Assembler

然后使用相同的代码

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...