基本上,我想在MIPS中使用分支语句比较两个字符。虽然我不确定要使用什么指令。无论如何,我将展示我在C中为它写的伪代码。
The array M contains characters.
if(M[i] >= "0" && M[i] <= "9")
{
ascii_to_bin += M[i] - "0"
}
这只是if语句中的一个,但它包含了我目前的每一个问题。我不知道在条件语句中进行比较时使用哪些指令。此外,行$ascii_to_bin += M[i] - "0"
;我真的不知道如何在MIPS中进行字符算术。
答案 0 :(得分:0)
您可能知道,您可以对C(和C ++,Java等)中的字符进行算术运算的唯一原因是char
类型可以通过它们隐式转换为int
类型ASCII值。
然而,MIPS(和更广泛的汇编语言)没有类型的概念;包含“字符”的变量的任何概念都由程序员强加,而不是由机器强加。
那是什么意思?这意味着您直接使用整数值。如果你从内存中提取你知道的字符a
,那么实际使用ASCII值97
。你可以把它比作任何其他整数(因为它是任何其他整数)。
所以你的if语句看起来大致如下(在伪代码中):
If M[i] >= 48 and M[i] <= 57 then:
ascii_to_bin += M[i] - 48