问题描述
所以我将用户提供的二进制数转换为其十进制等效值。我毫无问题地完成了转换,但现在我正在尝试验证输入。如果用户输入除 1
或 0
之外的任何字符,我想分支到一个标签,告诉用户他们的输入不正确。这就是我现在所拥有的:
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
然后使用相同的代码