比较MIPS中的字符,并进行字符算术

时间:2014-10-05 03:22:28

标签: mips

基本上,我想在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中进行字符算术。

1 个答案:

答案 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