MIPS中的char数组

时间:2012-04-05 00:12:05

标签: mips

如何在MIPS中创建char数组并访问这些字符?我正在做一个项目,其中一部分就是这样做。我理解如何使用整数并且无法在线找到关于如何处理chars的任何参考,特别是我试图移植...

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

编辑:如果有人可以提供一个例子如何打印出其中一个项目,那将非常有帮助(你可以根据自己的意愿修改代码)。因为我只是得到一个内存地址错误。

1 个答案:

答案 0 :(得分:11)

static char   hexdigits[16] = "0123456789ABCDEF";

可以翻译成:

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

或者

.data
hexdigits: .ascii "0123456789ABCDEF"

我们可以使用

访问元素
la    $t0, hexdigits
lb    $t1, 0($t0)        # $t1 = hexdigits[0]
lb    $t2, 1($t0)        # $t2 = hexdigits[1]

您可以使用系统调用打印元素(如果您的模拟器支持它。大部分都可以)

la    $t0, hexdigits          # address of the first element
lb    $a0, 10($t0)            # hexdigits[10] (which is 'A')
li    $v0, 11                 # I will assume syscall 11 is printchar (most simulators support it)
syscall                       # issue a system call