MIPS中的字符数组

MIPS中的字符数组,mips,Mips,如何创建字符数组并在MIPS中访问这些字符?我正在做一个项目,其中一部分就是这样做。我知道如何处理整数,但在网上找不到任何关于如何处理字符的参考资料,特别是我正在尝试移植 static char hexdigits[16] = "0123456789ABCDEF"; 以下是我失败的尝试: hexarray: .word '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' #declare memory space

如何创建字符数组并在MIPS中访问这些字符?我正在做一个项目,其中一部分就是这样做。我知道如何处理整数,但在网上找不到任何关于如何处理字符的参考资料,特别是我正在尝试移植

static char   hexdigits[16] = "0123456789ABCDEF";
以下是我失败的尝试:

hexarray: .word '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' #declare memory space for our hex array
编辑:如果有人可以提供一个例子,如何打印出这些项目之一,这将是非常有帮助的(你可以修改代码,我有任何你想要的)。因为我刚刚得到一个内存地址错误

static char   hexdigits[16] = "0123456789ABCDEF";
可译为:

.data
hexdigits: .byte '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'

我们可以使用

la    $t0, hexdigits
lb    $t1, 0($t0)        # $t1 = hexdigits[0]
lb    $t2, 1($t0)        # $t2 = hexdigits[1]
您可以使用系统调用打印元素(如果您的模拟器支持它,大多数都支持)

可译为:

.data
hexdigits: .byte '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'

我们可以使用

la    $t0, hexdigits
lb    $t1, 0($t0)        # $t1 = hexdigits[0]
lb    $t2, 1($t0)        # $t2 = hexdigits[1]
您可以使用系统调用打印元素(如果您的模拟器支持它,大多数都支持)


也许可以使用.asciiz而不是.word'0123456789ABCDEF'将hexarray转换为字符串,然后您可以使用lb循环并比较它们的ascii值或您需要对其执行的任何操作。我只是尝试在给定某个I(它在循环中)的情况下读取hexarray[I]值是的,如果您不被迫使用.word,然后使用.asciiz字符串对我来说最有意义。你可以用lb得到这个值。我现在也在上组装课,所以我不太确定。您可能需要先使用la(加载地址)然后使用lb(加载字节),但我记得以前没有使用加载地址就这样做了。也许可以使用.asciiz而不是.word“0123456789ABCDEF”将hexarray转换为字符串,然后您可以使用lb循环并比较它们的ascii值或您需要使用它执行的任何操作。我只是尝试读取hexarray[I]的值给定一个特定的i(它在一个循环中)是的,如果你不是被迫使用.word,那么使用.asciiz字符串对我来说是最有意义的。你可以用lb得到这个值。我现在也在上组装课,所以我不太确定。您可能需要先使用la(加载地址),然后使用lb(加载字节),但我记得以前没有使用加载地址。