MIPS中的char数组

jfi*_*isk 0 mips

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

static char   hexdigits[16] = "0123456789ABCDEF";
Run Code Online (Sandbox Code Playgroud)

这是我失败的尝试:

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
Run Code Online (Sandbox Code Playgroud)

编辑:如果有人可以提供一个例子如何打印出其中一个项目,这将是非常有帮助的(你可以修改我想要的任何代码).因为我只是得到一个内存地址错误.

Wiz*_*Wiz 12

static char   hexdigits[16] = "0123456789ABCDEF";
Run Code Online (Sandbox Code Playgroud)

可以翻译成:

.data
hexdigits: .byte '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
Run Code Online (Sandbox Code Playgroud)

要么

.data
hexdigits: .ascii "0123456789ABCDEF"
Run Code Online (Sandbox Code Playgroud)

我们可以使用访问元素

la    $t0, hexdigits
lb    $t1, 0($t0)        # $t1 = hexdigits[0]
lb    $t2, 1($t0)        # $t2 = hexdigits[1]
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)